import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import java.util.function.Consumer;
-import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener;
+import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
*
* @author Thomas Pantelis
*/
-public class ShardDataTreeChangePublisherActor
- extends ShardDataTreeNotificationPublisherActor<ShardDataTreeChangeListenerPublisher> {
+public final class ShardDataTreeChangePublisherActor
+ extends ShardDataTreeNotificationPublisherActor<DefaultShardDataTreeChangeListenerPublisher> {
private ShardDataTreeChangePublisherActor(final String name, final String logContext) {
- super(new DefaultShardDataTreeChangeListenerPublisher(), name, logContext);
+ super(new DefaultShardDataTreeChangeListenerPublisher(logContext), name, logContext);
}
@Override
- protected void handleReceive(Object message) {
+ protected void handleReceive(final Object message) {
if (message instanceof RegisterListener) {
RegisterListener reg = (RegisterListener)message;
+ LOG.debug("{}: Received {}", logContext(), reg);
if (reg.initialState.isPresent()) {
DefaultShardDataTreeChangeListenerPublisher.notifySingleListener(reg.path, reg.listener,
- reg.initialState.get());
+ reg.initialState.get(), logContext());
+ } else {
+ reg.listener.onInitialData();
}
- publisher().registerTreeChangeListener(reg.path, reg.listener, Optional.absent(), reg.onRegistration);
+ publisher().registerTreeChangeListener(reg.path, reg.listener, reg.onRegistration);
} else {
super.handleReceive(message);
}
this.initialState = Preconditions.checkNotNull(initialState);
this.onRegistration = Preconditions.checkNotNull(onRegistration);
}
+
+ @Override
+ public String toString() {
+ return "RegisterListener [path=" + path + ", listener=" + listener + ", initialState present="
+ + initialState.isPresent() + "]";
+ }
}
}