public void notifyObservers(Activity activity) { for (ActionCommand<?> observer : getObservers()) { observer.update(activity); } }
@Override protected ActionCommand<?> createEntity(JSONArray args) { try { ActionCommand<?> result = null; int counter = 0; String actionType = args.getString(counter++); String idStr = args.getString(counter++); String name = args.getString(counter++); String description = args.getString(counter++); if ("CONFIGURATION".equals(actionType)) { Configuration configuration = new Configuration(); String settingStr = args.getString(counter++); Double setting = Double.parseDouble(settingStr); configuration.setSetting(setting); String settingType = args.getString(counter++); ConfigurationType type = ConfigurationType.valueOf(settingType); configuration.setType(type); switch (type) { case SCREEN: result = new ScreenConfigurationCommand(configuration); break; case VOLUME: result = new VolumeConfigurationCommand(configuration); break; default: break; } } else { Notification notification = new Notification(); String sendTo = args.getString(counter++); notification.setSendTo(sendTo); String notificationTypeStr = args.getString(counter++); NotificationType type = NotificationType.valueOf(notificationTypeStr); notification.setType(type); String message = args.getString(counter++); notification.setMessage(message); switch (type) { case SMS: result = new SmsNotificationCommand(notification); break; case EMAIL: result = new EmailNotificationCommand(notification); break; case ALERT: result = new AlertNotificationCommand(notification); break; default: break; } } if (idStr != null && !(idStr.trim().length() == 0)) { Integer id = Integer.parseInt(idStr); result.setId(id); } result.setName(name); result.setDescription(description); return result; } catch (JSONException e) { throw new RuntimeException(e); } }