X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Freactor%2FNamespaceBehaviourWithListeners.java;h=5f77fd4aaf4c3ec9c60ce4a010728621e24499e7;hb=82af449e4ef07d80490e79484d0402b81009541e;hp=1f10c18a96bcc33a7d1e00d3f5e49836af7b9bb8;hpb=b6e9bb9ff439eb0e905d8ccf61e15a5a3b2bf444;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java index 1f10c18a96..5f77fd4aaf 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceBehaviourWithListeners.java @@ -34,11 +34,15 @@ abstract class NamespaceBehaviourWithListeners delegate; - private final List> derivedNamespaces = new ArrayList<>(); + protected final NamespaceBehaviour delegate; + private final List> derivedNamespaces = new ArrayList<>(); protected NamespaceBehaviourWithListeners(final NamespaceBehaviour delegate) { @@ -48,15 +52,13 @@ abstract class NamespaceBehaviourWithListeners listener); - protected abstract Iterator> getMutableListeners(K key); - protected abstract boolean isRequestedValue(ValueAddedListener listener, NamespaceStorageNode storage, V value); @Override - public void addTo(final NamespaceStorageNode storage, final K key, final V value) { - delegate.addTo(storage, key, value); + public abstract void addTo(final NamespaceStorageNode storage, final K key, final V value); - Iterator> keyListeners = getMutableListeners(key); + protected void notifyListeners(final NamespaceStorageNode storage, Iterator> keyListeners, + final V value) { List> toNotify = new ArrayList<>(); while (keyListeners.hasNext()) { ValueAddedListener listener = keyListeners.next(); @@ -65,11 +67,14 @@ abstract class NamespaceBehaviourWithListeners listener : toNotify) { - listener.onValueAdded(key, value); + for (ValueAddedListener listener : toNotify) { + listener.trigger(value); } - for (VirtualNamespaceContext derived : derivedNamespaces) { - derived.addTo(storage, null, value); + } + + protected void notifyDerivedNamespaces(final NamespaceStorageNode storage, final K key, final V value) { + for (VirtualNamespaceContext derived : derivedNamespaces) { + derived.addedToSourceNamespace(storage, key, value); } } @@ -77,7 +82,7 @@ abstract class NamespaceBehaviourWithListeners namespace) { + final void addDerivedNamespace(VirtualNamespaceContext namespace) { derivedNamespaces.add(namespace); }