Lock down AbstractResumedStatement.substatements access 02/99002/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 15 Dec 2021 04:23:41 +0000 (05:23 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 15 Dec 2021 04:29:46 +0000 (05:29 +0100)
We are indirecly using mutableDeclaredSubstatements(), and that method
is not final. It is not overridden anywhere, either. So let us make that
strong assumption by making the method final and accessing substatements
directly for their Stream.

JIRA: YANGTOOLS-1383
Change-Id: I51c025c3195fdb9ca61f5dee394707f72defb854
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

index f5b33582799fafbab1d14b39e795f26ce64e21e1..ad26af0a58b73f7bcdd1dde659fe04233a60649b 100644 (file)
@@ -97,7 +97,7 @@ abstract class AbstractResumedStatement<A, D extends DeclaredStatement<A>, E ext
     }
 
     @Override
-    public Collection<? extends StatementContextBase<?, ?, ?>> mutableDeclaredSubstatements() {
+    public final Collection<? extends StatementContextBase<?, ?, ?>> mutableDeclaredSubstatements() {
         return substatements;
     }
 
@@ -217,7 +217,7 @@ abstract class AbstractResumedStatement<A, D extends DeclaredStatement<A>, E ext
 
     @Override
     final Stream<? extends @NonNull StmtContext<?, ?, ?>> streamDeclared() {
-        return declaredSubstatements().stream().filter(StmtContext::isSupportedToBuildEffective);
+        return substatements.stream().filter(StmtContext::isSupportedToBuildEffective);
     }
 
     @Override