*/
package org.opendaylight.controller.cluster.datastore;
+import static java.util.Objects.requireNonNull;
+
import akka.actor.Props;
-import com.google.common.base.Optional;
-import com.google.common.base.Preconditions;
+import java.util.Optional;
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;
+import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
/**
* Actor used to generate and publish DataTreeChange notifications.
*
* @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(logContext), name, logContext);
}
@Override
- protected void handleReceive(Object message) {
- if (message instanceof RegisterListener) {
- RegisterListener reg = (RegisterListener)message;
+ protected void handleReceive(final Object message) {
+ if (message instanceof RegisterListener reg) {
LOG.debug("{}: Received {}", logContext(), reg);
if (reg.initialState.isPresent()) {
DefaultShardDataTreeChangeListenerPublisher.notifySingleListener(reg.path, reg.listener,
- reg.initialState.get(), logContext());
+ reg.initialState.orElseThrow(), 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);
}
RegisterListener(final YangInstanceIdentifier path, final DOMDataTreeChangeListener listener,
final Optional<DataTreeCandidate> initialState,
final Consumer<ListenerRegistration<DOMDataTreeChangeListener>> onRegistration) {
- this.path = Preconditions.checkNotNull(path);
- this.listener = Preconditions.checkNotNull(listener);
- this.initialState = Preconditions.checkNotNull(initialState);
- this.onRegistration = Preconditions.checkNotNull(onRegistration);
+ this.path = requireNonNull(path);
+ this.listener = requireNonNull(listener);
+ this.initialState = requireNonNull(initialState);
+ this.onRegistration = requireNonNull(onRegistration);
}
@Override