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%2Ftype%2FDecimal64SpecificationSupport.java;h=a71d6ef70e6b8d24484d25bf56845301a36ed23b;hb=2d8edd5622078f454592ef120e627f59a5d05c42;hp=6075243965aeaf60b5c98d37c6cf0e41d7284aa5;hpb=7d1461b8704a4fa5f8865f6abd0fa5830bbdf980;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/Decimal64SpecificationSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/Decimal64SpecificationSupport.java index 6075243965..a71d6ef70e 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/Decimal64SpecificationSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/Decimal64SpecificationSupport.java @@ -8,36 +8,32 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.type; import com.google.common.collect.ImmutableList; +import org.opendaylight.yangtools.yang.common.QName; 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.FractionDigitsEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.RangeEffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.Decimal64Specification; -import org.opendaylight.yangtools.yang.model.util.type.BaseTypes; -import org.opendaylight.yangtools.yang.model.util.type.DecimalTypeBuilder; -import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStatementSupport; +import org.opendaylight.yangtools.yang.model.parser.api.YangParserConfiguration; +import org.opendaylight.yangtools.yang.model.ri.type.BaseTypes; +import org.opendaylight.yangtools.yang.model.ri.type.DecimalTypeBuilder; import org.opendaylight.yangtools.yang.parser.spi.meta.CommonStmtCtx; 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.SubstatementValidator; import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; -final class Decimal64SpecificationSupport extends AbstractStatementSupport> { - private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder( - YangStmtMapping.TYPE) - .addMandatory(YangStmtMapping.FRACTION_DIGITS) - .addOptional(YangStmtMapping.RANGE) - .build(); +final class Decimal64SpecificationSupport extends AbstractTypeSupport { + private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = + SubstatementValidator.builder(YangStmtMapping.TYPE) + .addMandatory(YangStmtMapping.FRACTION_DIGITS) + .addOptional(YangStmtMapping.RANGE) + .build(); - Decimal64SpecificationSupport() { - super(YangStmtMapping.TYPE, StatementPolicy.legacyDeclaredCopy()); - } - - @Override - public String parseArgumentValue(final StmtContext ctx, final String value) { - return value; + Decimal64SpecificationSupport(final YangParserConfiguration config) { + super(config); } @Override @@ -46,19 +42,23 @@ final class Decimal64SpecificationSupport extends AbstractStatementSupport ctx, + protected Decimal64Specification createDeclared(final StmtContext ctx, final ImmutableList> substatements) { - return new Decimal64SpecificationImpl(ctx.getRawArgument(), substatements); + if (substatements.isEmpty()) { + throw noFracDigits(ctx); + } + return new Decimal64SpecificationImpl(ctx.getRawArgument(), ctx.getArgument(), substatements); } @Override - protected Decimal64Specification createEmptyDeclared(final StmtContext ctx) { - throw noFracDigits(ctx); + protected Decimal64Specification attachDeclarationReference(final Decimal64Specification stmt, + final DeclarationReference reference) { + return new RefDecimal64Specification(stmt, reference); } @Override - protected EffectiveStatement createEffective( - final Current stmt, + protected EffectiveStatement createEffective( + final Current stmt, final ImmutableList> substatements) { if (substatements.isEmpty()) { throw noFracDigits(stmt);