Do not force materialization when not needed
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / config / EmptyConfigEffectiveStatement.java
index 4d74b79270b92b981bdd1d5f93c7b7739fcb9b66..63b0dd4f978addddb671aeaf018b9f95c0cb8f69 100644 (file)
@@ -7,68 +7,13 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.config;
 
-import com.google.common.collect.ImmutableList;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Optional;
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
-import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
-import org.opendaylight.yangtools.yang.model.api.meta.StatementSource;
 import org.opendaylight.yangtools.yang.model.api.stmt.ConfigEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ConfigStatement;
+import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractDeclaredEffectiveStatement.DefaultArgument;
 
-abstract class EmptyConfigEffectiveStatement implements ConfigEffectiveStatement {
-    static final EmptyConfigEffectiveStatement FALSE = new EmptyConfigEffectiveStatement() {
-        @Override
-        public ConfigStatement getDeclared() {
-            return EmptyConfigStatement.FALSE;
-        }
-    };
-
-    static final EmptyConfigEffectiveStatement TRUE = new EmptyConfigEffectiveStatement() {
-        @Override
-        public ConfigStatement getDeclared() {
-            return EmptyConfigStatement.TRUE;
-        }
-    };
-
-    private EmptyConfigEffectiveStatement() {
-        // Hidden
-    }
-
-    @Override
-    public final StatementDefinition statementDefinition() {
-        return getDeclared().statementDefinition();
-    }
-
-    @Override
-    public final Boolean argument() {
-        return getDeclared().argument();
-    }
-
-    @Override
-    public final StatementSource getStatementSource() {
-        return getDeclared().getStatementSource();
+final class EmptyConfigEffectiveStatement extends DefaultArgument<Boolean, ConfigStatement>
+        implements ConfigEffectiveStatement {
+    EmptyConfigEffectiveStatement(final ConfigStatement declared) {
+        super(declared);
     }
-
-    @Override
-    public final <K, V, N extends IdentifierNamespace<K, V>> Optional<? extends V> get(final Class<N> namespace,
-            final K identifier) {
-        throw new UnsupportedOperationException("Not implemented yet.");
-    }
-
-    @Override
-    public final <K, V, N extends IdentifierNamespace<K, V>> Map<K, V> getAll(final Class<N> namespace) {
-        throw new UnsupportedOperationException("Not implemented yet.");
-    }
-
-    @Override
-    public final Collection<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
-        return ImmutableList.of();
-    }
-
-    @Override
-    public abstract @NonNull ConfigStatement getDeclared();
 }