X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-rfc7950%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Frfc7950%2Fstmt%2Fleaf%2FLeafStatementSupport.java;h=b92301b4e938d59e9c734d281edee1e3a6e375c1;hb=7fd1abd03d792989653a05052e723b1516a9e554;hp=961d14f4ad940fce32fed3d1ecd40380a86a7bce;hpb=1e9cce8bcaaffeecede6dd676c69265650ecdcab;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/LeafStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/LeafStatementSupport.java index 961d14f4ad..b92301b4e9 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/LeafStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf/LeafStatementSupport.java @@ -8,9 +8,9 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf; import com.google.common.collect.ImmutableList; +import java.util.Collection; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode; -import org.opendaylight.yangtools.yang.model.api.SchemaPath; import org.opendaylight.yangtools.yang.model.api.Status; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; @@ -21,9 +21,10 @@ import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement; import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseSchemaTreeStatementSupport; +import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils; +import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable; @@ -31,7 +32,8 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; -public final class LeafStatementSupport extends BaseSchemaTreeStatementSupport { +public final class LeafStatementSupport + extends AbstractSchemaTreeStatementSupport { private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping .LEAF) .addOptional(YangStmtMapping.CONFIG) @@ -49,7 +51,7 @@ public final class LeafStatementSupport extends BaseSchemaTreeStatementSupport ctx, final ImmutableList> substatements) { - return new RegularLeafStatement(ctx.getArgument(), substatements); + return DeclaredStatements.createLeaf(ctx.getArgument(), substatements); } @Override protected LeafStatement createEmptyDeclared(final StmtContext ctx) { - return new EmptyLeafStatement(ctx.getArgument()); + return DeclaredStatements.createLeaf(ctx.getArgument()); + } + + @Override + public LeafEffectiveStatement copyEffective(final Current stmt, + final LeafEffectiveStatement original) { + return new RegularLeafEffectiveStatement((AbstractLeafEffectiveStatement) original, stmt.effectivePath(), + computeFlags(stmt, original.effectiveSubstatements()), (LeafSchemaNode) stmt.original()); } @Override @@ -90,16 +99,19 @@ public final class LeafStatementSupport extends BaseSchemaTreeStatementSupport stmt, + final Collection> substatements) { + return new FlagsBuilder() + .setHistory(stmt.history()) + .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT)) + .setConfiguration(stmt.effectiveConfig().asNullable()) + .setMandatory(findFirstArgument(substatements, MandatoryEffectiveStatement.class, Boolean.FALSE)) + .toFlags(); } }