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%2FFeatureStatementSupport.java;h=7b78289ef6691a255da318400159675133fd8f12;hb=e5e06d81bed0a7cb520e94a4b018d0e2bb7f0c62;hp=1e10c6a3117e39e98a977e8105b975f0ab5df9b9;hpb=43657f12c39e61d51d178e99075e5b0e3eea4b24;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/FeatureStatementSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/FeatureStatementSupport.java index 1e10c6a311..7b78289ef6 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/FeatureStatementSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/FeatureStatementSupport.java @@ -11,14 +11,17 @@ import com.google.common.collect.ImmutableList; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.model.api.Status; 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.FeatureEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement; import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement; +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.model.spi.meta.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder; +import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration; import org.opendaylight.yangtools.yang.parser.spi.FeatureNamespace; import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport; import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current; @@ -29,21 +32,16 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator; public final class FeatureStatementSupport extends AbstractQNameStatementSupport { - private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder( - YangStmtMapping.FEATURE) - .addOptional(YangStmtMapping.DESCRIPTION) - .addAny(YangStmtMapping.IF_FEATURE) - .addOptional(YangStmtMapping.STATUS) - .addOptional(YangStmtMapping.REFERENCE) - .build(); - private static final FeatureStatementSupport INSTANCE = new FeatureStatementSupport(); + private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = + SubstatementValidator.builder(YangStmtMapping.FEATURE) + .addOptional(YangStmtMapping.DESCRIPTION) + .addAny(YangStmtMapping.IF_FEATURE) + .addOptional(YangStmtMapping.STATUS) + .addOptional(YangStmtMapping.REFERENCE) + .build(); - private FeatureStatementSupport() { - super(YangStmtMapping.FEATURE, StatementPolicy.reject()); - } - - public static FeatureStatementSupport getInstance() { - return INSTANCE; + public FeatureStatementSupport(final YangParserConfiguration config) { + super(YangStmtMapping.FEATURE, StatementPolicy.reject(), config, SUBSTATEMENT_VALIDATOR); } @Override @@ -57,17 +55,18 @@ public final class FeatureStatementSupport stmt.addContext(FeatureNamespace.class, stmt.getArgument(), stmt); } - @Override - protected SubstatementValidator getSubstatementValidator() { - return SUBSTATEMENT_VALIDATOR; - } - @Override protected FeatureStatement createDeclared(final StmtContext ctx, final ImmutableList> substatements) { return DeclaredStatements.createFeature(ctx.getArgument(), substatements); } + @Override + protected FeatureStatement attachDeclarationReference(final FeatureStatement stmt, + final DeclarationReference reference) { + return DeclaredStatementDecorators.decorateFeature(stmt, reference); + } + @Override protected FeatureEffectiveStatement createEffective(final Current stmt, final ImmutableList> substatements) { @@ -80,4 +79,4 @@ public final class FeatureStatementSupport .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT)) .toFlags(); } -} \ No newline at end of file +}