Bug 7051 - Refactoring of implicit case statements creation
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / spi / meta / AbstractStatementSupport.java
index 4f5c6b3a412cf0a11b6a152f894a47d56804531a..161c33987079c7383b0d28f23964c74551d1f854 100644 (file)
@@ -15,16 +15,11 @@ import org.opendaylight.yangtools.yang.common.QName;
 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.parser.spi.SubstatementValidator;
-import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference;
-import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase;
-import org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementDefinitionContext;
 
 /**
+ * Class providing necessary support for processing a YANG statement.
  *
- * Class providing necessary support for processing YANG statement.
- *
- * This class is intended to be subclassed by developers, which want to
+ * This class is intended to be subclassed by developers, who want to
  * introduce support of statement to parser.
  *
  * @param <A>
@@ -73,10 +68,8 @@ public abstract class AbstractStatementSupport<A, D extends DeclaredStatement<A>
     }
 
     @Override
-    public Optional<StatementContextBase<?, ?, ?>> beforeSubStatementCreated(final StmtContext.Mutable<?, ?, ?> stmt,
-            final int offset, final StatementDefinitionContext<?, ?, ?> def, final StatementSourceReference ref,
-            final String argument) {
-        // NOOP for most implementations and also no implicit statements
+    public Optional<StatementSupport<?, ?, ?>> getImplicitParentFor(final StatementDefinition stmtDef) {
+        // NOOP for most implementations and also no implicit parent
         return Optional.empty();
     }
 
@@ -141,6 +134,20 @@ public abstract class AbstractStatementSupport<A, D extends DeclaredStatement<A>
         return getPublicView().isArgumentYinElement();
     }
 
+    @Override
+    public boolean hasArgumentSpecificSupports() {
+        // Most of statement supports don't have any argument specific
+        // supports, so return 'false'.
+        return false;
+    }
+
+    @Override
+    public StatementSupport<?, ?, ?> getSupportSpecificForArgument(final String argument) {
+        // Most of statement supports don't have any argument specific
+        // supports, so return null.
+        return null;
+    }
+
     /**
      * Returns corresponding substatement validator of a statement support
      *