Centralize substatement validators
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / meta / MinElementsStatementSupport.java
index dd7b469cfe246fc45a07ac0bc09feab165678032..bc19dc3b0fb512fa913e91315dfcdb83b17ddbce 100644 (file)
@@ -9,13 +9,15 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.meta;
 
 import com.google.common.collect.ImmutableList;
 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.MinElementsEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.MinElementsStatement;
-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;
@@ -27,7 +29,7 @@ public final class MinElementsStatementSupport
         SubstatementValidator.builder(YangStmtMapping.MIN_ELEMENTS).build();
 
     public MinElementsStatementSupport(final YangParserConfiguration config) {
-        super(YangStmtMapping.MIN_ELEMENTS, StatementPolicy.contextIndependent(), config);
+        super(YangStmtMapping.MIN_ELEMENTS, StatementPolicy.contextIndependent(), config, SUBSTATEMENT_VALIDATOR);
     }
 
     @Override
@@ -39,17 +41,18 @@ public final class MinElementsStatementSupport
         }
     }
 
-    @Override
-    protected SubstatementValidator getSubstatementValidator() {
-        return SUBSTATEMENT_VALIDATOR;
-    }
-
     @Override
     protected MinElementsStatement createDeclared(final Integer argument,
             final ImmutableList<? extends DeclaredStatement<?>> substatements) {
         return DeclaredStatements.createMinElements(argument, substatements);
     }
 
+    @Override
+    protected MinElementsStatement attachDeclarationReference(final MinElementsStatement stmt,
+            final DeclarationReference reference) {
+        return DeclaredStatementDecorators.decorateMinElements(stmt, reference);
+    }
+
     @Override
     protected MinElementsStatement createEmptyDeclared(final Integer argument) {
         return DeclaredStatements.createMinElements(argument);
@@ -65,4 +68,4 @@ public final class MinElementsStatementSupport
     protected MinElementsEffectiveStatement createEmptyEffective(final MinElementsStatement declared) {
         return EffectiveStatements.createMinElements(declared);
     }
-}
\ No newline at end of file
+}