Integrate {Inference,Source}Exception with CommonStmtCtx
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / leaf / LeafStatementSupport.java
index e8fdff1d61c60f287467f9fad78ba0aa3961bf79..7d779a7d7521b7e053e71d79229c83e118dbb46d 100644 (file)
@@ -70,27 +70,25 @@ public final class LeafStatementSupport extends BaseSchemaTreeStatementSupport<L
     @Override
     protected LeafStatement createDeclared(final StmtContext<QName, LeafStatement, ?> ctx,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
-        return new RegularLeafStatement(ctx.coerceStatementArgument(), substatements);
+        return new RegularLeafStatement(ctx.getArgument(), substatements);
     }
 
     @Override
     protected LeafStatement createEmptyDeclared(final StmtContext<QName, LeafStatement, ?> ctx) {
-        return new EmptyLeafStatement(ctx.coerceStatementArgument());
+        return new EmptyLeafStatement(ctx.getArgument());
     }
 
     @Override
     protected LeafEffectiveStatement createEffective(final Current<QName, LeafStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         final TypeEffectiveStatement<?> typeStmt = SourceException.throwIfNull(
-            findFirstStatement(substatements, TypeEffectiveStatement.class), stmt.sourceReference(),
-                "Leaf is missing a 'type' statement");
+            findFirstStatement(substatements, TypeEffectiveStatement.class), stmt,
+            "Leaf is missing a 'type' statement");
         final String dflt = findFirstArgument(substatements, DefaultEffectiveStatement.class, null);
         SourceException.throwIf(
-            EffectiveStmtUtils.hasDefaultValueMarkedWithIfFeature(stmt.yangVersion(), typeStmt, dflt),
-            stmt.sourceReference(),
+            EffectiveStmtUtils.hasDefaultValueMarkedWithIfFeature(stmt.yangVersion(), typeStmt, dflt), stmt,
             "Leaf '%s' has default value '%s' marked with an if-feature statement.", stmt.argument(), dflt);
 
-        final SchemaPath path = stmt.getSchemaPath();
         final LeafSchemaNode original = (LeafSchemaNode) stmt.original();
         final int flags = new FlagsBuilder()
                 .setHistory(stmt.history())
@@ -100,6 +98,7 @@ public final class LeafStatementSupport extends BaseSchemaTreeStatementSupport<L
                 .toFlags();
 
         final LeafStatement declared = stmt.declared();
+        final SchemaPath path = stmt.wrapSchemaPath();
         return original == null ? new EmptyLeafEffectiveStatement(declared, path, flags, substatements)
                 : new RegularLeafEffectiveStatement(declared, path, flags, substatements, original);
     }