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%2FAbstractLeafrefSpecificationSupport.java;h=774a3a1e9f59551638ca79822186ce746c35dd08;hb=11806151529a522cf0a27b85e210d1eec433a464;hp=6fdc3b41263f9efee2991392ef78dcaaddc6f3c6;hpb=5db72610e7358baa1f5c9dd85abc9e93f3c8b020;p=yangtools.git diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractLeafrefSpecificationSupport.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractLeafrefSpecificationSupport.java index 6fdc3b4126..774a3a1e9f 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractLeafrefSpecificationSupport.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/AbstractLeafrefSpecificationSupport.java @@ -16,27 +16,22 @@ import org.opendaylight.yangtools.yang.model.api.stmt.RequireInstanceEffectiveSt import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement.LeafrefSpecification; import org.opendaylight.yangtools.yang.model.util.type.BaseTypes; import org.opendaylight.yangtools.yang.model.util.type.LeafrefTypeBuilder; -import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStatementSupport; +import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractStringStatementSupport; 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.source.SourceException; -abstract class AbstractLeafrefSpecificationSupport - extends BaseStatementSupport> { +abstract class AbstractLeafrefSpecificationSupport extends AbstractStringStatementSupport> { AbstractLeafrefSpecificationSupport() { - super(YangStmtMapping.TYPE); - } - - @Override - public final String parseArgumentValue(final StmtContext ctx, final String value) { - return value; + super(YangStmtMapping.TYPE, StatementPolicy.exactReplica()); } @Override protected final LeafrefSpecification createDeclared(final StmtContext ctx, final ImmutableList> substatements) { - return new LeafrefSpecificationImpl(ctx.coerceRawStatementArgument(), substatements); + return new LeafrefSpecificationImpl(ctx.getRawArgument(), substatements); } @Override @@ -52,7 +47,7 @@ abstract class AbstractLeafrefSpecificationSupport throw noPath(stmt); } - final LeafrefTypeBuilder builder = BaseTypes.leafrefTypeBuilder(stmt.getSchemaPath()); + final LeafrefTypeBuilder builder = BaseTypes.leafrefTypeBuilder(stmt.argumentAsTypeQName()); for (final EffectiveStatement subStmt : substatements) { if (subStmt instanceof PathEffectiveStatement) { @@ -72,6 +67,6 @@ abstract class AbstractLeafrefSpecificationSupport * When the type is "union", the "type" statement (Section 7.4) MUST be * present. */ - return new SourceException("A path statement has to be present", stmt.sourceReference()); + return new SourceException("A path statement has to be present", stmt); } } \ No newline at end of file