X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-inmemory-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fstore%2Finmemory%2FAbstractDOMShardTreeChangePublisher.java;h=250494180c62bdcae2807ebc97956a11581714ef;hb=10dafc8feda2e05d9d775937114480acdde8cee5;hp=307c8ca2086122d7a78fc74318f53dc66a48e8a0;hpb=ef2e752b9a2a1ee05c8f6544b3e8dac362fdb730;p=mdsal.git diff --git a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/AbstractDOMShardTreeChangePublisher.java b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/AbstractDOMShardTreeChangePublisher.java index 307c8ca208..250494180c 100644 --- a/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/AbstractDOMShardTreeChangePublisher.java +++ b/dom/mdsal-dom-inmemory-datastore/src/main/java/org/opendaylight/mdsal/dom/store/inmemory/AbstractDOMShardTreeChangePublisher.java @@ -46,7 +46,8 @@ import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMa import org.slf4j.Logger; import org.slf4j.LoggerFactory; -abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeChangePublisher implements DOMStoreTreeChangePublisher { +abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeChangePublisher + implements DOMStoreTreeChangePublisher { private static final Logger LOG = LoggerFactory.getLogger(AbstractDOMShardTreeChangePublisher.class); @@ -63,7 +64,8 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC } @Override - public AbstractDOMDataTreeChangeListenerRegistration registerTreeChangeListener(final YangInstanceIdentifier path, final L listener) { + public AbstractDOMDataTreeChangeListenerRegistration + registerTreeChangeListener(final YangInstanceIdentifier path, final L listener) { takeLock(); try { return setupListenerContext(path, listener); @@ -72,7 +74,8 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC } } - private AbstractDOMDataTreeChangeListenerRegistration setupListenerContext(final YangInstanceIdentifier listenerPath, final L listener) { + private AbstractDOMDataTreeChangeListenerRegistration + setupListenerContext(final YangInstanceIdentifier listenerPath, final L listener) { // we need to register the listener registration path based on the shards root // we have to strip the shard path from the listener path and then register YangInstanceIdentifier strippedIdentifier = listenerPath; @@ -80,8 +83,10 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC strippedIdentifier = YangInstanceIdentifier.create(stripShardPath(listenerPath)); } - final DOMDataTreeListenerWithSubshards subshardListener = new DOMDataTreeListenerWithSubshards(dataTree, strippedIdentifier, listener); - final AbstractDOMDataTreeChangeListenerRegistration reg = setupContextWithoutSubshards(strippedIdentifier, subshardListener); + final DOMDataTreeListenerWithSubshards subshardListener = + new DOMDataTreeListenerWithSubshards(dataTree, strippedIdentifier, listener); + final AbstractDOMDataTreeChangeListenerRegistration reg = + setupContextWithoutSubshards(strippedIdentifier, subshardListener); for (final ChildShardContext maybeAffected : childShards.values()) { if (listenerPath.contains(maybeAffected.getPrefix().getRootIdentifier())) { @@ -91,8 +96,10 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC subshardListener.addSubshard(maybeAffected); } else if (maybeAffected.getPrefix().getRootIdentifier().contains(listenerPath)) { // bind path is inside subshard - // TODO can this happen? seems like in ShardedDOMDataTree we are already registering to the lowest shard possible - throw new UnsupportedOperationException("Listener should be registered directly into initialDataChangeEvent subshard"); + // TODO can this happen? seems like in ShardedDOMDataTree we are + // already registering to the lowest shard possible + throw new UnsupportedOperationException("Listener should be registered directly " + + "into initialDataChangeEvent subshard"); } } @@ -101,7 +108,8 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC return reg; } - private void initialDataChangeEvent(final YangInstanceIdentifier listenerPath, final L listener) { + private void initialDataChangeEvent( + final YangInstanceIdentifier listenerPath, final L listener) { // FIXME Add support for wildcard listeners final Optional> preExistingData = dataTree.takeSnapshot() .readNode(YangInstanceIdentifier.create(stripShardPath(listenerPath))); @@ -113,7 +121,7 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC "Expected DataContainer node, but was {}", data.getClass()); // if we are listening on root of some shard we still get // empty normalized node, root is always present - if (((DataContainerNode) data).getValue().isEmpty()) { + if (((DataContainerNode) data).getValue().isEmpty()) { initialCandidate = DataTreeCandidates.newDataTreeCandidate(listenerPath, new EmptyDataTreeCandidateNode(data.getIdentifier())); } else { @@ -128,8 +136,8 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC listener.onDataTreeChanged(Collections.singleton(initialCandidate)); } - private NormalizedNode translateRootShardIdentifierToListenerPath(final YangInstanceIdentifier listenerPath, - final NormalizedNode node) { + private static NormalizedNode translateRootShardIdentifierToListenerPath( + final YangInstanceIdentifier listenerPath, final NormalizedNode node) { if (listenerPath.isEmpty()) { return node; } @@ -146,10 +154,15 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC return nodeBuilder.build(); } - private AbstractDOMDataTreeChangeListenerRegistration setupContextWithoutSubshards(final YangInstanceIdentifier listenerPath, final DOMDataTreeListenerWithSubshards listener) { + private AbstractDOMDataTreeChangeListenerRegistration + setupContextWithoutSubshards(final YangInstanceIdentifier listenerPath, + final DOMDataTreeListenerWithSubshards listener) { LOG.debug("Registering root listener at {}", listenerPath); - final RegistrationTreeNode> node = findNodeFor(listenerPath.getPathArguments()); - final AbstractDOMDataTreeChangeListenerRegistration registration = new AbstractDOMDataTreeChangeListenerRegistration((L) listener) { + final RegistrationTreeNode> node = + findNodeFor(listenerPath.getPathArguments()); + @SuppressWarnings("unchecked") + final AbstractDOMDataTreeChangeListenerRegistration registration = + new AbstractDOMDataTreeChangeListenerRegistration((L) listener) { @Override protected void removeRegistration() { listener.close(); @@ -200,7 +213,7 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC @Override public void onDataTreeChanged(@Nonnull final Collection changes) { - LOG.debug("Received data changed {}", changes.iterator().next()); + LOG.debug("Received data changed {}", changes); delegate.onDataTreeChanged(changes); } @@ -218,8 +231,9 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC final DOMStoreTreeChangePublisher listenableShard = (DOMStoreTreeChangePublisher) context.getShard(); // since this is going into subshard we want to listen for ALL changes in the subshard registrations.put(context.getPrefix().getRootIdentifier(), - listenableShard.registerTreeChangeListener(context.getPrefix().getRootIdentifier(), - changes -> onDataTreeChanged(context.getPrefix().getRootIdentifier(), changes))); + listenableShard.registerTreeChangeListener( + context.getPrefix().getRootIdentifier(), changes -> onDataTreeChanged( + context.getPrefix().getRootIdentifier(), changes))); } void close() { @@ -262,8 +276,7 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC private final PathArgument identifier; EmptyDataTreeCandidateNode(final PathArgument identifier) { - Preconditions.checkNotNull(identifier, "Identifier should not be null"); - this.identifier = identifier; + this.identifier = Preconditions.checkNotNull(identifier, "Identifier should not be null"); } @Nonnull @@ -275,7 +288,7 @@ abstract class AbstractDOMShardTreeChangePublisher extends AbstractDOMStoreTreeC @Nonnull @Override public Collection getChildNodes() { - return Collections.emptySet(); + return Collections.emptySet(); } @Nullable