Centralize substatement validators
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / meta / PositionStatementSupport.java
index fd4f43ee2e5e11290ac40c9191e022618be2fa6d..66f10df1dc9a491add1fcf6982cbf2f82db094cb 100644 (file)
@@ -10,13 +10,15 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
 import com.google.common.collect.ImmutableList;
 import org.opendaylight.yangtools.yang.common.Uint32;
 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.PositionEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.PositionStatement;
-import org.opendaylight.yangtools.yang.model.parser.api.YangParserConfiguration;
+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.parser.api.YangParserConfiguration;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractInternedStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
@@ -28,7 +30,7 @@ public final class PositionStatementSupport
         SubstatementValidator.builder(YangStmtMapping.POSITION).build();
 
     public PositionStatementSupport(final YangParserConfiguration config) {
-        super(YangStmtMapping.POSITION, StatementPolicy.contextIndependent(), config);
+        super(YangStmtMapping.POSITION, StatementPolicy.contextIndependent(), config, SUBSTATEMENT_VALIDATOR);
     }
 
     @Override
@@ -40,11 +42,6 @@ public final class PositionStatementSupport
         }
     }
 
-    @Override
-    protected SubstatementValidator getSubstatementValidator() {
-        return SUBSTATEMENT_VALIDATOR;
-    }
-
     @Override
     protected PositionStatement createDeclared(final Uint32 argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
@@ -56,6 +53,12 @@ public final class PositionStatementSupport
         return DeclaredStatements.createPosition(argument, ImmutableList.of());
     }
 
+    @Override
+    protected PositionStatement attachDeclarationReference(final PositionStatement stmt,
+            final DeclarationReference reference) {
+        return DeclaredStatementDecorators.decoratePosition(stmt, reference);
+    }
+
     @Override
     protected PositionEffectiveStatement createEffective(final PositionStatement declared,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
@@ -66,4 +69,4 @@ public final class PositionStatementSupport
     protected PositionEffectiveStatement createEmptyEffective(final PositionStatement declared) {
         return EffectiveStatements.createPosition(declared);
     }
-}
\ No newline at end of file
+}