public static Topic getChannel(final Subscription subscription) { Assert.notNull(subscription); switch (subscription.getType()) { case DATA: return buildTopic(PubSubChannelPrefix.data, ((DataSubscription) subscription).getProviderId(), ((DataSubscription) subscription).getSensorId()); case ORDER: return buildTopic(PubSubChannelPrefix.order, ((OrderSubscription) subscription).getOwnerEntityId(), ((OrderSubscription) subscription).getSensorId()); case ALARM: return buildTopic(PubSubChannelPrefix.alarm, ((AlarmSubscription) subscription).getAlertId()); default: throw new IllegalArgumentException("Unknown subscription type:" + subscription.getType()); } }
private void checkTargetResourceState(final Subscription subscription) { Assert.notNull(subscription); switch (subscription.getType()) { case DATA: checkSensorState(((DataSubscription) subscription).getProviderId(), ((DataSubscription) subscription).getSensorId()); break; case ORDER: checkSensorState(((OrderSubscription) subscription).getOwnerEntityId(), ((OrderSubscription) subscription).getSensorId()); break; case ALARM: checkAlertState(((AlarmSubscription) subscription).getAlertId()); break; default: throw new IllegalArgumentException("Unknown subscription type:" + subscription.getType()); } }
private SubscriptionMessage parseSubscriptionToSubscribeMessage(final Subscription subscription) { final SubscriptionMessage message = new SubscriptionMessage(); message.setType(subscription.getType().toString()); if (subscription.getNotificationParams() != null) { message.setEndpoint(subscription.getNotificationParams().getEndpoint()); message.setMaxRetries(subscription.getNotificationParams().getMaxRetries()); message.setRetryDelay(subscription.getNotificationParams().getRetryDelay()); } switch (subscription.getType()) { case DATA: message.setProvider(((DataSubscription) subscription).getProviderId()); message.setSensor(((DataSubscription) subscription).getSensorId()); break; case ALARM: message.setAlert(((AlarmSubscription) subscription).getAlertId()); break; case ORDER: message.setProvider(((OrderSubscription) subscription).getOwnerEntityId()); message.setSensor(((OrderSubscription) subscription).getSensorId()); break; } return message; }