From 23fa427731dafe9db484f48bcdfe28ba20b5fd32 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Fri, 30 Oct 2020 10:08:51 +0100 Subject: [PATCH] Clarify NamespaceStorageSupport.getParentNamespaceStorage() This override does seemingly nothing, but in fact splits invocation groups to two -- those going to SourceSpecificContext and those going to a NamespaceStorageSupport subclass. More specifically, if a caller knows it is talking to NamespaceStorageSupport, JIT does will not consider SourceSpecificContext an implementation. Furthermore, SourceSpecificContext, as an implementation class, guarantees it will return BuildGlobalContext. Change-Id: Ia285f9d7745a9c114d3dd3214c2b82a651db3ce0 Signed-off-by: Robert Varga --- .../yang/parser/stmt/reactor/NamespaceStorageSupport.java | 8 ++++++++ .../yang/parser/stmt/reactor/SourceSpecificContext.java | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceStorageSupport.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceStorageSupport.java index eb6dd6a320..ddf97aa68d 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceStorageSupport.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/NamespaceStorageSupport.java @@ -26,6 +26,14 @@ abstract class NamespaceStorageSupport implements NamespaceStorageNode { private Map, Map> namespaces = ImmutableMap.of(); + /** + * {@inheritDoc} + * + *

+ * This method override provides bimorphic invocation on this method invocation between + * {@link SourceSpecificContext} and the more general {@link NamespaceStorageSupport}. We typically do not expect + * the two accesses to overlap. + */ @Override public abstract NamespaceStorageNode getParentNamespaceStorage(); diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java index f278afcd56..7b717fbeec 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java @@ -274,7 +274,7 @@ final class SourceSpecificContext implements NamespaceStorageNode, NamespaceBeha } @Override - public NamespaceStorageNode getParentNamespaceStorage() { + public BuildGlobalContext getParentNamespaceStorage() { return globalContext; } -- 2.36.6