Split out yang-model-ri
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / leaf / LeafStatementSupport.java
index fc47a83c885774e898f9283b4fbd99a9bbdfba45..b92301b4e938d59e9c734d281edee1e3a6e375c1 100644 (file)
@@ -11,7 +11,6 @@ import com.google.common.collect.ImmutableList;
 import java.util.Collection;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -22,9 +21,10 @@ import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MandatoryEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement;
-import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseSchemaTreeStatementSupport;
+import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStatementMixins.EffectiveStatementWithFlags.FlagsBuilder;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.EffectiveStmtUtils;
+import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractSchemaTreeStatementSupport;
 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.StmtContext.Mutable;
@@ -32,7 +32,8 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
-public final class LeafStatementSupport extends BaseSchemaTreeStatementSupport<LeafStatement, LeafEffectiveStatement> {
+public final class LeafStatementSupport
+        extends AbstractSchemaTreeStatementSupport<LeafStatement, LeafEffectiveStatement> {
     private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping
         .LEAF)
         .addOptional(YangStmtMapping.CONFIG)
@@ -71,18 +72,18 @@ 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.getArgument(), substatements);
+        return DeclaredStatements.createLeaf(ctx.getArgument(), substatements);
     }
 
     @Override
     protected LeafStatement createEmptyDeclared(final StmtContext<QName, LeafStatement, ?> ctx) {
-        return new EmptyLeafStatement(ctx.getArgument());
+        return DeclaredStatements.createLeaf(ctx.getArgument());
     }
 
     @Override
     public LeafEffectiveStatement copyEffective(final Current<QName, LeafStatement> stmt,
             final LeafEffectiveStatement original) {
-        return new RegularLeafEffectiveStatement((AbstractLeafEffectiveStatement) original, stmt.wrapSchemaPath(),
+        return new RegularLeafEffectiveStatement((AbstractLeafEffectiveStatement) original, stmt.effectivePath(),
             computeFlags(stmt, original.effectiveSubstatements()), (LeafSchemaNode) stmt.original());
     }
 
@@ -100,9 +101,8 @@ public final class LeafStatementSupport extends BaseSchemaTreeStatementSupport<L
         final LeafSchemaNode original = (LeafSchemaNode) stmt.original();
         final int flags = computeFlags(stmt, substatements);
         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);
+        return original == null ? new EmptyLeafEffectiveStatement(declared, stmt.effectivePath(), flags, substatements)
+                : new RegularLeafEffectiveStatement(declared, stmt.effectivePath(), flags, substatements, original);
     }
 
     private static int computeFlags(final Current<?, ?> stmt,