Move UnrecognizedStatement implementations
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / extension / ModelDefinedStatementDefinition.java
index aa55c67ab2e83a7086a695ffd2b0a89353ca578d..ba235e08f46a3cb927d51cc84d31e028a04084f7 100644 (file)
@@ -7,58 +7,36 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension;
 
-import static java.util.Objects.requireNonNull;
-
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
+import org.eclipse.jdt.annotation.NonNullByDefault;
+import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.meta.AbstractStatementDefinition;
 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.meta.StatementDefinition;
-import org.opendaylight.yangtools.yang.model.api.stmt.UnrecognizedEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnrecognizedStatement;
 
 /**
  * Public definition for statements declared by extensions. This class is instantiated for every extension that is seen
  * to be declared in a model.
  */
-final class ModelDefinedStatementDefinition implements StatementDefinition {
-    private final QName statementName;
-    private final QName argumentName;
-    private final boolean yinElement;
-
-    ModelDefinedStatementDefinition(final QName statementName, final QName argumentName, final boolean yinElement) {
-        this.statementName = requireNonNull(statementName);
-        this.argumentName = argumentName;
-        this.yinElement = yinElement;
+@NonNullByDefault
+final class ModelDefinedStatementDefinition extends AbstractStatementDefinition {
+    ModelDefinedStatementDefinition(final QName statementName) {
+        super(statementName);
     }
 
-    @Nonnull
-    @Override
-    public QName getStatementName() {
-        return statementName;
+    ModelDefinedStatementDefinition(final QName statementName, final @Nullable QName argumentName,
+            final boolean yinElement) {
+        super(statementName, yinElement, argumentName);
     }
 
-    @Nullable
-    @Override
-    public QName getArgumentName() {
-        return argumentName;
-    }
-
-    @Nonnull
     @Override
     public Class<? extends DeclaredStatement<?>> getDeclaredRepresentationClass() {
         return UnrecognizedStatement.class;
     }
 
-    @Nonnull
     @Override
     public Class<? extends EffectiveStatement<?, ?>> getEffectiveRepresentationClass() {
         return UnrecognizedEffectiveStatement.class;
     }
-
-    @Override
-    public boolean isArgumentYinElement() {
-        return yinElement;
-    }
-}
\ No newline at end of file
+}