Expose substatement lists 40/98840/1
authorRobert Varga <robert.varga@pantheon.tech>
Sat, 4 Dec 2021 05:42:33 +0000 (06:42 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Sat, 4 Dec 2021 05:42:33 +0000 (06:42 +0100)
DeclaredStatement.declaredSubstatements() and
EffectiveStatement.effectiveSubstatements() should be exposing a List
instead of a Collection to make things easier on users.

Also update yang-model-{spi,ri} to promise an ImmutableList, as that
is what they provide.

Change-Id: I459e98a1072f1ad9f720b9aa1614ac9b75d7328b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
13 files changed:
model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/DeclaredStatement.java
model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/EffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/decl/RegularKeyStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/decl/RegularOrderedByStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/decl/RegularPathStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/decl/RegularStatusStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/TypedefEffectiveStatementImpl.java
model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/AbstractDeclaredStatement.java
model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/AbstractEffectiveStatement.java
model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/AbstractEffectiveUnknownSchmemaNode.java
model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/ForwardingDeclaredStatement.java
parser/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/MaxAccessStatementImpl.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/type/BuiltinEffectiveStatement.java

index 0f45ed79ae3fd964a96c3e628146d97e2eb20cac..639e52cef6e335cf56db4df79d81e51535718e4e 100644 (file)
@@ -12,6 +12,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.annotations.Beta;
 import com.google.common.collect.Collections2;
 import java.util.Collection;
+import java.util.List;
 import java.util.Optional;
 import java.util.stream.Stream;
 import org.eclipse.jdt.annotation.NonNull;
@@ -37,7 +38,7 @@ public interface DeclaredStatement<A> extends ModelStatement<A> {
      *
      * @return Collection of statements, which were explicitly declared in source of model.
      */
-    @NonNull Collection<? extends DeclaredStatement<?>> declaredSubstatements();
+    @NonNull List<? extends DeclaredStatement<?>> declaredSubstatements();
 
     /**
      * Returns collection of explicitly declared child statements, while preserving its original ordering from original
index 80ae61b961c860c1dd7b2a0823ee2cecbe283dcb..ed4201e4a5f45f6318e4f129ef785ee390f8de64 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.yangtools.yang.model.api.meta;
 
 import com.google.common.annotations.Beta;
-import java.util.Collection;
+import java.util.List;
 import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Stream;
@@ -62,7 +62,7 @@ public interface EffectiveStatement<A, D extends DeclaredStatement<A>> extends M
      *
      * @return collection of all effective substatements.
      */
-    @NonNull Collection<? extends @NonNull EffectiveStatement<?, ?>> effectiveSubstatements();
+    @NonNull List<? extends @NonNull EffectiveStatement<?, ?>> effectiveSubstatements();
 
     /**
      * Find the first effective substatement of specified type.
index d4ebfc7bbc29cee835218536bc3a6ed0ef52dc89..ab830de93def9978395bf10ada3d801985e0f1c5 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl;
 
 import com.google.common.collect.ImmutableList;
-import java.util.Collection;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -24,7 +23,7 @@ public final class RegularKeyStatement extends AbstractKeyStatement {
     }
 
     @Override
-    public Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+    public ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
         return unmaskList(substatements);
     }
 }
index a7861703fdce38eb518c298b782542d4c9b94faf..2ba1d4e26895f28748e3131f16a579b29527eb5d 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl;
 
 import com.google.common.collect.ImmutableList;
-import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.Ordering;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -23,7 +22,7 @@ public final class RegularOrderedByStatement extends AbstractOrderedByStatement
     }
 
     @Override
-    public Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+    public ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
         return unmaskList(substatements);
     }
 }
index acb924d21002e2414e11a88f1f5e46f9555bdf08..fab8dbdab416f8e590b058f64aaeae60d18d5200 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl;
 
 import com.google.common.collect.ImmutableList;
-import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.PathExpression;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -23,7 +22,7 @@ public final class RegularPathStatement extends EmptyPathStatement {
     }
 
     @Override
-    public Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+    public ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
         return unmaskList(substatements);
     }
 }
index e4f5863881a47e0debb68f86a20eadd9efb02c3c..6f6968ea8ae0dcc0a043239a477dddf488ae7c26 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.yangtools.yang.model.ri.stmt.impl.decl;
 
 import com.google.common.collect.ImmutableList;
-import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
@@ -23,7 +22,7 @@ public final class RegularStatusStatement extends AbstractStatusStatement {
     }
 
     @Override
-    public Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+    public ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
         return unmaskList(substatements);
     }
 }
index fffda854ed8c45ca0f0cc51e6f2bfcf26048ba53..c193ad8f6423444e368c1e6992fb48bccd69ec28 100644 (file)
@@ -11,7 +11,6 @@ import com.google.common.collect.ImmutableList;
 import java.lang.invoke.MethodHandles;
 import java.lang.invoke.MethodHandles.Lookup;
 import java.lang.invoke.VarHandle;
-import java.util.Collection;
 import java.util.Map;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
@@ -140,7 +139,7 @@ public final class TypedefEffectiveStatementImpl extends WithSubstatements<QName
         }
 
         @Override
-        public Collection<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
+        public ImmutableList<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
             return TypedefEffectiveStatementImpl.this.effectiveSubstatements();
         }
 
index 3c3ecdf3cc53cb0c6e26a8f65085703f9a3b4d10..c6a3ec0e027bd23fc329f3d37060e59538af3f0c 100644 (file)
@@ -12,7 +12,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.annotations.Beta;
 import com.google.common.collect.ImmutableList;
-import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -31,7 +30,7 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
     }
 
     @Override
-    public Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+    public ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
         // Default to reduce load on subclasses and keep the number of implementations down
         return ImmutableList.of();
     }
@@ -61,7 +60,7 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
             }
 
             @Override
-            public final Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+            public final ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
                 return unmaskList(substatements);
             }
         }
@@ -89,7 +88,7 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
             }
 
             @Override
-            public final Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+            public final ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
                 return unmaskList(substatements);
             }
         }
@@ -122,7 +121,7 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
             }
 
             @Override
-            public final Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+            public final ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
                 return unmaskList(substatements);
             }
         }
@@ -148,7 +147,7 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
             }
 
             @Override
-            public final Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+            public final ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
                 return unmaskList(substatements);
             }
         }
@@ -177,7 +176,7 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
             }
 
             @Override
-            public final Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+            public final ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
                 return unmaskList(substatements);
             }
         }
@@ -208,7 +207,7 @@ public abstract class AbstractDeclaredStatement<A> extends AbstractModelStatemen
             }
 
             @Override
-            public final Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+            public final ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
                 return unmaskList(substatements);
             }
         }
index 21c5c69da920aabd7a10f5a3858741a78a9a9767..71a27a383a759890983af56c6abaef607d1d21c7 100644 (file)
@@ -55,7 +55,7 @@ abstract class AbstractEffectiveStatement<A, D extends DeclaredStatement<A>>
     }
 
     @Override
-    public Collection<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
+    public ImmutableList<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
         return ImmutableList.of();
     }
 
index da6ccf2727bcf7d25b0e7088578ae604c08f6ad4..9e649c696d109d4dc69315658121702e204614ef 100644 (file)
@@ -58,7 +58,7 @@ public abstract class AbstractEffectiveUnknownSchmemaNode<A, D extends UnknownSt
     }
 
     @Override
-    public final Collection<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
+    public final ImmutableList<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
         return substatements;
     }
 
index 6c50fdf4056bf6f69a1b101a17b0828f75393d0c..5ed27974b3b5367a1557f1100deebe74650297a1 100644 (file)
@@ -8,7 +8,7 @@
 package org.opendaylight.yangtools.yang.model.spi.meta;
 
 import com.google.common.annotations.Beta;
-import java.util.Collection;
+import java.util.List;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclarationReference;
@@ -26,7 +26,7 @@ public abstract class ForwardingDeclaredStatement<A, D extends DeclaredStatement
     }
 
     @Override
-    public Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+    public List<? extends DeclaredStatement<?>> declaredSubstatements() {
         return delegate().declaredSubstatements();
     }
 
index 5c19c43222a6a0ffe1a690a3bc2df1933d2f1a96..6e90f5b76a0f59d69595d6aa21a5b0d0fcb6def4 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.yangtools.rfc6643.parser;
 import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
-import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.rfc6643.model.api.MaxAccess;
 import org.opendaylight.yangtools.rfc6643.model.api.MaxAccessStatement;
@@ -38,7 +37,7 @@ final class MaxAccessStatementImpl extends AbstractDeclaredStatement<MaxAccess>
     }
 
     @Override
-    public Collection<? extends DeclaredStatement<?>> declaredSubstatements() {
+    public ImmutableList<? extends DeclaredStatement<?>> declaredSubstatements() {
         return unmaskList(substatements);
     }
 }
index 1b2d13588849025775ef2c78a1bf5002224c3898..53947036a0772ab2f6acd885ff6fa078d846da9e 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
-import java.util.Collection;
 import java.util.Map;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
@@ -72,7 +71,7 @@ enum BuiltinEffectiveStatement implements TypeEffectiveStatement<TypeStatement>
     }
 
     @Override
-    public final Collection<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
+    public final ImmutableList<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
         return ImmutableList.of();
     }