From 3c66a20cca00b3bffb9807000400ad88affea6d7 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 10 Nov 2016 13:49:36 +0100 Subject: [PATCH] BUG-5717: eliminate StmtContext.substatements() There is a single caller, which really wants to get the declared belongs-to statement. Convert the caller and eliminate the method, making StatementContextBase.substatements a purely-local collection lending itself to refactoring. Change-Id: I980c255eb426558a6a535683ccc8179082919c37 Signed-off-by: Robert Varga --- .../yangtools/yang/parser/spi/meta/StmtContext.java | 2 -- .../parser/stmt/reactor/StatementContextBase.java | 12 ++---------- .../yangtools/yang/parser/stmt/rfc6020/Utils.java | 3 ++- 3 files changed, 4 insertions(+), 13 deletions(-) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java index 2bd24600ae..593969cc78 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java @@ -84,8 +84,6 @@ public interface StmtContext, E extends Effect @Nonnull Collection> effectiveSubstatements(); - Collection> substatements(); - D buildDeclared(); E buildEffective(); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java index 36ab6a2ad6..9d27131c64 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java @@ -22,8 +22,8 @@ import java.util.Collection; import java.util.Collections; import java.util.EnumMap; import java.util.EventListener; +import java.util.HashMap; import java.util.Iterator; -import java.util.LinkedHashMap; import java.util.Map; import javax.annotation.Nonnull; import org.opendaylight.yangtools.concepts.Identifiable; @@ -69,7 +69,7 @@ public abstract class StatementContextBase, E if (potential == null) { potential = new SubstatementContext(StatementContextBase.this, this); if (substatements.isEmpty()) { - substatements = new LinkedHashMap<>(1); + substatements = new HashMap<>(1); } substatements.put(createIdentifier(), potential); getDefinition().onStatementAdded(potential); @@ -293,14 +293,6 @@ public abstract class StatementContextBase, E return maybeWrap(declared); } - /** - * @return collection of all substatements - */ - @Override - public Collection> substatements() { - return maybeWrap(substatements.values()); - } - @Override public Collection> effectiveSubstatements() { return maybeWrap(effective); diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/Utils.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/Utils.java index 10d5e09e10..716a48fa9a 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/Utils.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/Utils.java @@ -555,7 +555,8 @@ public final class Utils { if (StmtContextUtils.producesDeclared(rootCtx, ModuleStatement.class)) { qNameModule = rootCtx.getFromNamespace(ModuleCtxToModuleQName.class, rootCtx); } else if (StmtContextUtils.producesDeclared(rootCtx, SubmoduleStatement.class)) { - final String belongsToModuleName = firstAttributeOf(rootCtx.substatements(), BelongsToStatement.class); + final String belongsToModuleName = firstAttributeOf(rootCtx.declaredSubstatements(), + BelongsToStatement.class); qNameModule = rootCtx.getFromNamespace(ModuleNameToModuleQName.class, belongsToModuleName); } else { qNameModule = null; -- 2.36.6