YANGTOOLS-706: reorganize statement definitions
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / leaf_list / LeafListStatementImpl.java
@@ -5,14 +5,12 @@
  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
  * and is available at http://www.eclipse.org/legal/epl-v10.html
  */
-package org.opendaylight.yangtools.yang.parser.stmt.rfc6020;
+package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf_list;
 
 import java.util.Collection;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.YangStmtMapping;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.DefaultStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionStatement;
@@ -28,67 +26,11 @@ import org.opendaylight.yangtools.yang.model.api.stmt.TypeStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnitsStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.WhenStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractDeclaredStatement;
-import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SubstatementValidator;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective.LeafListEffectiveStatementImpl;
-
-public class LeafListStatementImpl extends AbstractDeclaredStatement<QName> implements LeafListStatement {
-    private static final SubstatementValidator SUBSTATEMENT_VALIDATOR = SubstatementValidator.builder(YangStmtMapping
-            .LEAF_LIST)
-            .addOptional(YangStmtMapping.CONFIG)
-            .addOptional(YangStmtMapping.DESCRIPTION)
-            .addAny(YangStmtMapping.IF_FEATURE)
-            .addOptional(YangStmtMapping.MIN_ELEMENTS)
-            .addOptional(YangStmtMapping.MAX_ELEMENTS)
-            .addAny(YangStmtMapping.MUST)
-            .addOptional(YangStmtMapping.ORDERED_BY)
-            .addOptional(YangStmtMapping.REFERENCE)
-            .addOptional(YangStmtMapping.STATUS)
-            .addMandatory(YangStmtMapping.TYPE)
-            .addOptional(YangStmtMapping.UNITS)
-            .addOptional(YangStmtMapping.WHEN)
-            .build();
-
-    protected LeafListStatementImpl(final StmtContext<QName, LeafListStatement, ?> context) {
-        super(context);
-    }
 
-    public static class Definition
-            extends AbstractQNameStatementSupport<LeafListStatement, EffectiveStatement<QName, LeafListStatement>> {
-
-        public Definition() {
-            super(YangStmtMapping.LEAF_LIST);
-        }
-
-        @Override
-        public void onStatementAdded(
-                final Mutable<QName, LeafListStatement, EffectiveStatement<QName, LeafListStatement>> stmt) {
-            stmt.getParentContext().addToNs(ChildSchemaNodes.class, stmt.getStatementArgument(), stmt);
-        }
-
-        @Override
-        public QName parseArgumentValue(final StmtContext<?, ?, ?> ctx, final String value) {
-            return StmtContextUtils.qnameFromArgument(ctx, value);
-        }
-
-        @Override
-        public LeafListStatement createDeclared(final StmtContext<QName, LeafListStatement, ?> ctx) {
-            return new LeafListStatementImpl(ctx);
-        }
-
-        @Override
-        public EffectiveStatement<QName, LeafListStatement> createEffective(
-                final StmtContext<QName, LeafListStatement, EffectiveStatement<QName, LeafListStatement>> ctx) {
-            return new LeafListEffectiveStatementImpl(ctx);
-        }
-
-        @Override
-        protected SubstatementValidator getSubstatementValidator() {
-            return SUBSTATEMENT_VALIDATOR;
-        }
+final class LeafListStatementImpl extends AbstractDeclaredStatement<QName> implements LeafListStatement {
+    LeafListStatementImpl(final StmtContext<QName, LeafListStatement, ?> context) {
+        super(context);
     }
 
     @Nonnull
@@ -121,7 +63,7 @@ public class LeafListStatementImpl extends AbstractDeclaredStatement<QName> impl
     }
 
     @Override
-    public final Collection<? extends DefaultStatement> getDefaults() {
+    public Collection<? extends DefaultStatement> getDefaults() {
         return allDeclared(DefaultStatement.class);
     }