X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Frfc6020%2Feffective%2FCaseEffectiveStatementImpl.java;h=8bfab0a13bc8d8b67dcb9ccb59d8b5fb79f36cea;hb=97057a1d88bbb085992799a933fd07315d223138;hp=36d2a13726de043aa2227c3f8bdbcdfa4f9c49b3;hpb=6ba98a2fab390cafe7a98e466189ea8df09cdeb9;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/CaseEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/CaseEffectiveStatementImpl.java index 36d2a13726..8bfab0a13b 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/CaseEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/CaseEffectiveStatementImpl.java @@ -8,6 +8,7 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective; import com.google.common.base.Optional; +import java.util.Collection; import java.util.Objects; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode; @@ -15,16 +16,34 @@ import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.CaseStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; +import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase; public final class CaseEffectiveStatementImpl extends AbstractEffectiveSimpleDataNodeContainer implements ChoiceCaseNode, DerivableSchemaNode { private final ChoiceCaseNode original; + private final boolean configuration; public CaseEffectiveStatementImpl( final StmtContext> ctx) { super(ctx); this.original = ctx.getOriginalCtx() == null ? null : (ChoiceCaseNode) ctx.getOriginalCtx().buildEffective(); + + if (ctx.isConfiguration()) { + configuration = isAtLeastOneChildConfiguration(ctx.declaredSubstatements()) || + isAtLeastOneChildConfiguration(ctx.effectiveSubstatements()); + } else { + configuration = false; + } + } + + private boolean isAtLeastOneChildConfiguration(Collection> substatements) { + for (StatementContextBase substatement : substatements) { + if (substatement.isConfiguration()) { + return true; + } + } + return false; } @Override @@ -32,6 +51,11 @@ public final class CaseEffectiveStatementImpl extends AbstractEffectiveSimpleDat return Optional.fromNullable(original); } + @Override + public boolean isConfiguration() { + return configuration; + } + @Override public int hashCode() { final int prime = 31;