From 4929fb6d63325fcbcbd72c16758a44ba19c3d20d Mon Sep 17 00:00:00 2001 From: "miroslav.kovac" Date: Fri, 30 Oct 2020 17:29:28 +0100 Subject: [PATCH] Use StmtContext.findSubstatementArgument() for isConfiguration() We are only interested in having the appropriate argument, hence we can use provided utility to not force the StmtContext to be materialized. JIRA: YANGTOOLS-1156 Change-Id: Idf292794225792afd8df1019c9106362a94ed5a4 Signed-off-by: miroslav.kovac Signed-off-by: Robert Varga --- .../yang/parser/stmt/reactor/StatementContextBase.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java index ec9059eb77..02fb8d222e 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java @@ -44,7 +44,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition; import org.opendaylight.yangtools.yang.model.api.meta.StatementSource; import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement; -import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement; +import org.opendaylight.yangtools.yang.model.api.stmt.ConfigEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.DeviationStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier; @@ -968,11 +968,10 @@ public abstract class StatementContextBase, E return true; } - final StmtContext configStatement = StmtContextUtils.findFirstSubstatement(this, - ConfigStatement.class); final boolean isConfig; - if (configStatement != null) { - isConfig = configStatement.coerceStatementArgument(); + final Optional optConfig = findSubstatementArgument(ConfigEffectiveStatement.class); + if (optConfig.isPresent()) { + isConfig = optConfig.orElseThrow(); if (isConfig) { // Validity check: if parent is config=false this cannot be a config=true InferenceException.throwIf(!parent.isConfiguration(), getStatementSourceReference(), -- 2.36.6