+/**
+ * Actor for a DataChangeListener.
+ *
+ * @deprecated Replaced by {@link DataTreeChangeListener}
+ */
+@Deprecated
+public class DataChangeListener extends AbstractUntypedActor {
+ private final AsyncDataChangeListener<YangInstanceIdentifier, NormalizedNode<?, ?>> listener;
+ private final YangInstanceIdentifier registeredPath;
+ private boolean notificationsEnabled = false;
+ private long notificationCount;
+
+ public DataChangeListener(AsyncDataChangeListener<YangInstanceIdentifier, NormalizedNode<?, ?>> listener,
+ final YangInstanceIdentifier registeredPath) {
+ this.listener = Preconditions.checkNotNull(listener, "listener should not be null");
+ this.registeredPath = Preconditions.checkNotNull(registeredPath);
+ }
+
+ @Override
+ public void handleReceive(Object message) {
+ if (message instanceof DataChanged) {
+ dataChanged(message);
+ } else if (message instanceof EnableNotification) {
+ enableNotification((EnableNotification) message);
+ } else if (message instanceof GetInfo) {
+ getSender().tell(new DataTreeListenerInfo(listener.toString(), registeredPath.toString(),
+ notificationsEnabled, notificationCount), getSelf());
+ } else {
+ unknownMessage(message);
+ }
+ }
+
+ private void enableNotification(EnableNotification message) {
+ notificationsEnabled = message.isEnabled();
+ LOG.debug("{} notifications for listener {}", notificationsEnabled ? "Enabled" : "Disabled",
+ listener);