X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fcore%2Fspi%2Fdata%2FAbstractDOMStoreTreeChangePublisher.java;h=886331d14493b753534926852573e1f96cb94ab6;hp=74938efcd77d5a9669f7ea5a00e92cb1d7ad3867;hb=aaea3e9a92ae9d6fac04c4a065db4b35cbca9ed0;hpb=e301ed83b10c2665cda02ffd06153e1565a2bb39 diff --git a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTreeChangePublisher.java b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTreeChangePublisher.java index 74938efcd7..886331d144 100644 --- a/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTreeChangePublisher.java +++ b/opendaylight/md-sal/sal-dom-spi/src/main/java/org/opendaylight/controller/sal/core/spi/data/AbstractDOMStoreTreeChangePublisher.java @@ -9,7 +9,7 @@ package org.opendaylight.controller.sal.core.spi.data; import java.util.Collection; import java.util.List; -import javax.annotation.Nonnull; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.controller.md.sal.dom.api.DOMDataTreeChangeListener; import org.opendaylight.controller.md.sal.dom.spi.AbstractDOMDataTreeChangeListenerRegistration; import org.opendaylight.mdsal.dom.spi.AbstractRegistrationTree; @@ -25,59 +25,69 @@ import org.slf4j.LoggerFactory; /** * Abstract base class for {@link DOMStoreTreeChangePublisher} implementations. + * + * @deprecated Use {@link org.opendaylight.mdsal.dom.spi.store.AbstractDOMStoreTreeChangePublisher} instead. */ -public abstract class AbstractDOMStoreTreeChangePublisher extends AbstractRegistrationTree> implements DOMStoreTreeChangePublisher { +@Deprecated(forRemoval = true) +public abstract class AbstractDOMStoreTreeChangePublisher + extends AbstractRegistrationTree> + implements DOMStoreTreeChangePublisher { private static final Logger LOG = LoggerFactory.getLogger(AbstractDOMStoreTreeChangePublisher.class); /** - * Callback for subclass to notify specified registrations of a candidate at a specified path. This method is guaranteed - * to be only called from within {@link #processCandidateTree(DataTreeCandidate)}. + * Callback for subclass to notify specified registrations of a candidate at a specified path. This method is + * guaranteed to be only called from within {@link #processCandidateTree(DataTreeCandidate)}. * * @param registrations Registrations which are affected by the candidate node * @param path Path of changed candidate node. Guaranteed to match the path specified by the registration * @param node Candidate node */ - protected abstract void notifyListeners(@Nonnull Collection> registrations, @Nonnull YangInstanceIdentifier path, @Nonnull DataTreeCandidateNode node); + protected abstract void notifyListeners(@NonNull Collection> + registrations, @NonNull YangInstanceIdentifier path, @NonNull DataTreeCandidateNode node); /** * Callback notifying the subclass that the specified registration is being closed and it's user no longer - * wishes to receive notifications. This notification is invoked while the {@link org.opendaylight.yangtools.concepts.ListenerRegistration#close()} + * wishes to receive notifications. This notification is invoked while the + * {@link org.opendaylight.yangtools.concepts.ListenerRegistration#close()} * method is executing. Subclasses can use this callback to properly remove any delayed notifications pending * towards the registration. * * @param registration Registration which is being closed */ - protected abstract void registrationRemoved(@Nonnull AbstractDOMDataTreeChangeListenerRegistration registration); + protected abstract void registrationRemoved(@NonNull AbstractDOMDataTreeChangeListenerRegistration registration); /** * Process a candidate tree with respect to registered listeners. * * @param candidate candidate three which needs to be processed */ - protected final void processCandidateTree(@Nonnull final DataTreeCandidate candidate) { + protected final void processCandidateTree(final @NonNull DataTreeCandidate candidate) { final DataTreeCandidateNode node = candidate.getRootNode(); if (node.getModificationType() == ModificationType.UNMODIFIED) { LOG.debug("Skipping unmodified candidate {}", candidate); return; } - try (final RegistrationTreeSnapshot> snapshot = takeSnapshot()) { + try (RegistrationTreeSnapshot> snapshot = takeSnapshot()) { lookupAndNotify(candidate.getRootPath().getPathArguments(), 0, snapshot.getRootNode(), candidate); } } @Override - public final AbstractDOMDataTreeChangeListenerRegistration registerTreeChangeListener(final YangInstanceIdentifier treeId, final L listener) { + public final AbstractDOMDataTreeChangeListenerRegistration + registerTreeChangeListener(final YangInstanceIdentifier treeId, final L listener) { // Take the write lock takeLock(); try { - final RegistrationTreeNode> node = findNodeFor(treeId.getPathArguments()); - final AbstractDOMDataTreeChangeListenerRegistration reg = new AbstractDOMDataTreeChangeListenerRegistration(listener) { - @Override - protected void removeRegistration() { - AbstractDOMStoreTreeChangePublisher.this.removeRegistration(node, this); - registrationRemoved(this); - } + final RegistrationTreeNode> node = + findNodeFor(treeId.getPathArguments()); + final AbstractDOMDataTreeChangeListenerRegistration reg = + new AbstractDOMDataTreeChangeListenerRegistration(listener) { + @Override + protected void removeRegistration() { + AbstractDOMStoreTreeChangePublisher.this.removeRegistration(node, this); + registrationRemoved(this); + } }; addRegistration(node, reg); @@ -88,16 +98,20 @@ public abstract class AbstractDOMStoreTreeChangePublisher extends AbstractRegist } } - private void lookupAndNotify(final List args, final int offset, final RegistrationTreeNode> node, final DataTreeCandidate candidate) { + private void lookupAndNotify(final List args, final int offset, + final RegistrationTreeNode> node, + final DataTreeCandidate candidate) { if (args.size() != offset) { final PathArgument arg = args.get(offset); - final RegistrationTreeNode> exactChild = node.getExactChild(arg); + final RegistrationTreeNode> exactChild = + node.getExactChild(arg); if (exactChild != null) { lookupAndNotify(args, offset + 1, exactChild, candidate); } - for (RegistrationTreeNode> c : node.getInexactChildren(arg)) { + for (RegistrationTreeNode> c : + node.getInexactChildren(arg)) { lookupAndNotify(args, offset + 1, c, candidate); } } else { @@ -105,7 +119,9 @@ public abstract class AbstractDOMStoreTreeChangePublisher extends AbstractRegist } } - private void notifyNode(final YangInstanceIdentifier path, final RegistrationTreeNode> regNode, final DataTreeCandidateNode candNode) { + private void notifyNode(final YangInstanceIdentifier path, + final RegistrationTreeNode> regNode, + final DataTreeCandidateNode candNode) { if (candNode.getModificationType() == ModificationType.UNMODIFIED) { LOG.debug("Skipping unmodified candidate {}", path); return; @@ -118,12 +134,14 @@ public abstract class AbstractDOMStoreTreeChangePublisher extends AbstractRegist for (DataTreeCandidateNode candChild : candNode.getChildNodes()) { if (candChild.getModificationType() != ModificationType.UNMODIFIED) { - final RegistrationTreeNode> regChild = regNode.getExactChild(candChild.getIdentifier()); + final RegistrationTreeNode> regChild = + regNode.getExactChild(candChild.getIdentifier()); if (regChild != null) { notifyNode(path.node(candChild.getIdentifier()), regChild, candChild); } - for (RegistrationTreeNode> rc : regNode.getInexactChildren(candChild.getIdentifier())) { + for (RegistrationTreeNode> rc : + regNode.getInexactChildren(candChild.getIdentifier())) { notifyNode(path.node(candChild.getIdentifier()), rc, candChild); } }