From fc17f39c478a20907bec485d1b9b38fdb9eba0c8 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 15 Dec 2021 05:16:11 +0100 Subject: [PATCH] Expose Iterator from effectiveChildrenToComplete() We are only ever iterating here, lower the contract exposed through here. Change-Id: Ief041380c5341956e2cf91491bbc05d1c4f08ca7 Signed-off-by: Robert Varga --- .../parser/stmt/reactor/AbstractResumedStatement.java | 5 +++-- .../parser/stmt/reactor/InferredStatementContext.java | 9 +++++---- .../yang/parser/stmt/reactor/StatementContextBase.java | 7 ++++--- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/AbstractResumedStatement.java b/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/AbstractResumedStatement.java index fcaf87d8f0..f5b3358279 100644 --- a/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/AbstractResumedStatement.java +++ b/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/AbstractResumedStatement.java @@ -14,6 +14,7 @@ import static java.util.Objects.requireNonNull; import com.google.common.collect.ImmutableList; import java.util.Collection; +import java.util.Iterator; import java.util.List; import java.util.Optional; import java.util.stream.Stream; @@ -210,8 +211,8 @@ abstract class AbstractResumedStatement, E ext } @Override - final Iterable> effectiveChildrenToComplete() { - return effective; + final Iterator> effectiveChildrenToComplete() { + return effective.iterator(); } @Override diff --git a/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java b/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java index 912e82bf43..c1e4386f21 100644 --- a/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java +++ b/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java @@ -15,6 +15,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.Streams; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.List; @@ -461,17 +462,17 @@ final class InferredStatementContext, E extend } @Override - Iterable> effectiveChildrenToComplete() { + Iterator> effectiveChildrenToComplete() { // When we have not initialized, there are no statements to catch up: we will catch up when we are copying // from prototype (which is already at ModelProcessingPhase.EFFECTIVE_MODEL). if (substatements == null) { - return ImmutableList.of(); + return Collections.emptyIterator(); } accessSubstatements(); if (substatements instanceof HashMap) { - return castMaterialized(substatements).values(); + return castMaterialized(substatements).values().iterator(); } else { - return castEffective(substatements); + return castEffective(substatements).iterator(); } } diff --git a/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java b/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java index 8375a46705..4663d2d5b1 100644 --- a/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java +++ b/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java @@ -358,7 +358,7 @@ abstract class StatementContextBase, E extends return resized; } - abstract Iterable> effectiveChildrenToComplete(); + abstract Iterator> effectiveChildrenToComplete(); // exposed for InferredStatementContext only final void ensureCompletedPhase(final Mutable stmt) { @@ -455,8 +455,9 @@ abstract class StatementContextBase, E extends for (final StatementContextBase child : mutableDeclaredSubstatements()) { finished &= child.tryToCompletePhase(targetOrder); } - for (final ReactorStmtCtx child : effectiveChildrenToComplete()) { - finished &= child.tryToCompletePhase(targetOrder); + final var it = effectiveChildrenToComplete(); + while (it.hasNext()) { + finished &= it.next().tryToCompletePhase(targetOrder); } return finished; } -- 2.36.6