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%2Fmeta%2FBitStatementSupport.java;h=14457bd0457e2be853132348c6179cb033e8c06a;hb=e5e06d81bed0a7cb520e94a4b018d0e2bb7f0c62;hp=d71163d9348f164c95751913a5524937ac8b443c;hpb=43657f12c39e61d51d178e99075e5b0e3eea4b24;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/BitStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/BitStatementSupport.java index d71163d934..14457bd045 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/BitStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/BitStatementSupport.java @@ -13,12 +13,15 @@ import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableList; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.model.api.YangStmtMapping; +import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.BitEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement; +import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatementDecorators; import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements; import org.opendaylight.yangtools.yang.model.ri.stmt.EffectiveStatements; +import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; @@ -27,35 +30,32 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; @Beta public final class BitStatementSupport extends AbstractStatementSupport { - private static final @NonNull BitStatementSupport RFC6020_INSTANCE = new BitStatementSupport( + private static final SubstatementValidator RFC6020_VALIDATOR = SubstatementValidator.builder(YangStmtMapping.BIT) .addOptional(YangStmtMapping.DESCRIPTION) .addOptional(YangStmtMapping.REFERENCE) .addOptional(YangStmtMapping.STATUS) .addOptional(YangStmtMapping.POSITION) - .build()); - private static final @NonNull BitStatementSupport RFC7950_INSTANCE = new BitStatementSupport( + .build(); + private static final SubstatementValidator RFC7950_VALIDATOR = SubstatementValidator.builder(YangStmtMapping.BIT) .addOptional(YangStmtMapping.DESCRIPTION) .addAny(YangStmtMapping.IF_FEATURE) .addOptional(YangStmtMapping.REFERENCE) .addOptional(YangStmtMapping.STATUS) .addOptional(YangStmtMapping.POSITION) - .build()); + .build(); - private final SubstatementValidator validator; - - private BitStatementSupport(final SubstatementValidator validator) { - super(YangStmtMapping.BIT, StatementPolicy.contextIndependent()); - this.validator = requireNonNull(validator); + private BitStatementSupport(final YangParserConfiguration config, final SubstatementValidator validator) { + super(YangStmtMapping.BIT, StatementPolicy.contextIndependent(), config, requireNonNull(validator)); } - public static @NonNull BitStatementSupport rfc6020Instance() { - return RFC6020_INSTANCE; + public static @NonNull BitStatementSupport rfc6020Instance(final YangParserConfiguration config) { + return new BitStatementSupport(config, RFC6020_VALIDATOR); } - public static @NonNull BitStatementSupport rfc7950Instance() { - return RFC7950_INSTANCE; + public static @NonNull BitStatementSupport rfc7950Instance(final YangParserConfiguration config) { + return new BitStatementSupport(config, RFC7950_VALIDATOR); } @Override @@ -64,17 +64,17 @@ public final class BitStatementSupport extends AbstractStatementSupport ctx, final ImmutableList> substatements) { return DeclaredStatements.createBit(ctx.getArgument(), substatements); } + @Override + protected BitStatement attachDeclarationReference(final BitStatement stmt, final DeclarationReference reference) { + return DeclaredStatementDecorators.decorateBit(stmt, reference); + } + @Override protected BitEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) {