Reformulate StatementContextFactory.createEffective()
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / BaseImplicitStatementSupport.java
index a5a0b53ba1ca4bf53fdfbbe40affd4c49ef842c8..56f5de02e639e4465335fadb1db664ed1a9a310c 100644 (file)
@@ -16,7 +16,7 @@ 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.meta.StatementSource;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
+import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 
 /**
  * A massively-misnamed superclass for statements which are both schema tree participants and can be created as implicit
@@ -33,29 +33,22 @@ public abstract class BaseImplicitStatementSupport<D extends DeclaredStatement<Q
     }
 
     @Override
-    protected final E createEffective(
-            final StmtContext<QName, D, E> ctx,
-            final D declared, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        final StatementSource source = ctx.getStatementSource();
-        switch (ctx.getStatementSource()) {
+    protected E createEffective(final Current<QName, D> stmt,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        final StatementSource source = stmt.source();
+        switch (source) {
             case CONTEXT:
-                return createUndeclaredEffective(ctx, substatements);
+                return createUndeclaredEffective(stmt, substatements);
             case DECLARATION:
-                return createDeclaredEffective(ctx, substatements, declared);
+                return createDeclaredEffective(stmt, substatements);
             default:
                 throw new IllegalStateException("Unhandled statement source " + source);
         }
     }
 
-    @Override
-    protected final E createEmptyEffective(final StmtContext<QName, D, E> ctx, final D declared) {
-        return createEffective(ctx, declared, ImmutableList.of());
-    }
-
-    protected abstract @NonNull E createDeclaredEffective(@NonNull StmtContext<QName, D, E> ctx,
-            @NonNull ImmutableList<? extends EffectiveStatement<?, ?>> substatements, @NonNull D declared);
-
-    protected abstract @NonNull E createUndeclaredEffective(@NonNull StmtContext<QName, D, E> ctx,
+    protected abstract @NonNull E createDeclaredEffective(@NonNull Current<QName, D> stmt,
             @NonNull ImmutableList<? extends EffectiveStatement<?, ?>> substatements);
 
+    protected abstract @NonNull E createUndeclaredEffective(@NonNull Current<QName, D> stmt,
+            @NonNull ImmutableList<? extends EffectiveStatement<?, ?>> substatements);
 }