Hide AbstractResumedStatement.walkChildren() 99/98999/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 15 Dec 2021 02:46:40 +0000 (03:46 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 15 Dec 2021 02:53:51 +0000 (03:53 +0100)
We have slight (2-line) duplication due to how gadgets are exposed
to StatementContextWriter.

Introduce AbstractResumedStatement.declarationFinished(), which
performs the combination of walking children and calling endDeclared().

This allows us to completely hide endDeclared() and simplify the code a
bit -- including renaming endDeclared() to finishDeclaration().

Change-Id: I5cbc7aa98aa90b2cf92ef603e4b3b0ed34e1dc4c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/AbstractResumedStatement.java
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextWriter.java

index 926fc6e6d92c884eda0232b1c20ce15f0716bcf2..57bc6cf1ddb89277d01ee5f57f09183418061191 100644 (file)
@@ -266,7 +266,7 @@ abstract class AbstractResumedStatement<A, D extends DeclaredStatement<A>, E ext
      * @return Declared parent statement
      */
     final @Nullable AbstractResumedStatement<?, ?, ?> exitStatement(final ModelProcessingPhase phase) {
-        endDeclared(phase);
+        finishDeclaration(phase);
         final var parent = getParentContext();
         if (parent == null) {
             return null;
@@ -275,7 +275,7 @@ abstract class AbstractResumedStatement<A, D extends DeclaredStatement<A>, E ext
         var ret = verifyParent(parent);
         // Unwind all undeclared statements
         while (ret.origin() == StatementOrigin.CONTEXT) {
-            ret.endDeclared(phase);
+            ret.finishDeclaration(phase);
             ret = verifyParent(ret.getParentContext());
         }
         return ret;
@@ -293,12 +293,14 @@ abstract class AbstractResumedStatement<A, D extends DeclaredStatement<A>, E ext
         substatements = substatements.ensureCapacity(expectedSize);
     }
 
-    final void walkChildren(final ModelProcessingPhase phase) {
+    final void declarationFinished(final ModelProcessingPhase phase) {
+        finishChildrenDeclaration(phase);
+        finishDeclaration(phase);
+    }
+
+    private void finishChildrenDeclaration(final ModelProcessingPhase phase) {
         checkState(isFullyDefined());
-        substatements.forEach(stmt -> {
-            stmt.walkChildren(phase);
-            stmt.endDeclared(phase);
-        });
+        substatements.forEach(stmt -> stmt.declarationFinished(phase));
     }
 
     /**
@@ -306,7 +308,7 @@ abstract class AbstractResumedStatement<A, D extends DeclaredStatement<A>, E ext
      *
      * @param phase processing phase that ended
      */
-    final void endDeclared(final ModelProcessingPhase phase) {
+    private void finishDeclaration(final ModelProcessingPhase phase) {
         definition().onDeclarationFinished(this, phase);
     }
 
index 3bdd6a36b2b4aaedfe74349358c8a3ad7e069753..fd542e9cc0d0c49d01a529b9652ef9ffa5daab70 100644 (file)
@@ -48,8 +48,7 @@ final class StatementContextWriter implements StatementWriter {
 
     private void resumeStatement(final AbstractResumedStatement<?, ?, ?> child) {
         if (child.isFullyDefined()) {
-            child.walkChildren(phase);
-            child.endDeclared(phase);
+            child.declarationFinished(phase);
         } else {
             current = child;
         }