Centralize unknownNodes 59/85959/10
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 25 Nov 2019 12:54:17 +0000 (13:54 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 27 Nov 2019 00:34:43 +0000 (01:34 +0100)
We have a number of statements which collect unknown nodes, which
are specified by DocumentedNode. Centralize them as close as possible
in the utility class hierarchy.

JIRA: YANGTOOLS-1040
Change-Id: I337fb684b557269926e641d86d6afd609b2dce57
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
14 files changed:
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveDocumentedNode.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveDocumentedNodeWithoutStatus.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveModule.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveSchemaNode.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveSimpleDataNodeContainer.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/UnknownEffectiveStatementBase.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/augment/AugmentEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/bit/BitEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/enum_/EnumEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/grouping/GroupingEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/NotificationEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/refine/RefineEffectiveStatementImpl.java
yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/uses/UsesEffectiveStatementImpl.java

index 5f09391c7bd802dafc9fce84c74d4b97885f0347..6e9608032ffe36e4696c33e2545ac5f0c36b3bd9 100644 (file)
@@ -7,16 +7,22 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt;
 
+import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.List;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.model.api.DocumentedNode;
 import org.opendaylight.yangtools.yang.model.api.Status;
+import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 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.stmt.StatusEffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
 // FIXME: 5.0.0: rename to AbstractEffectiveDocumentedNodeWithStatus
 public abstract class AbstractEffectiveDocumentedNode<A, D extends DeclaredStatement<A>>
         extends AbstractEffectiveDocumentedNodeWithoutStatus<A, D> implements DocumentedNode.WithStatus {
+    private final @NonNull ImmutableList<UnknownSchemaNode> unknownNodes;
     private final @NonNull Status status;
 
     /**
@@ -28,10 +34,23 @@ public abstract class AbstractEffectiveDocumentedNode<A, D extends DeclaredState
     protected AbstractEffectiveDocumentedNode(final StmtContext<A, D, ?> ctx) {
         super(ctx);
         status = findFirstEffectiveSubstatementArgument(StatusEffectiveStatement.class).orElse(Status.CURRENT);
+
+        final List<UnknownSchemaNode> unknownNodesInit = new ArrayList<>();
+        for (final EffectiveStatement<?, ?> stmt : effectiveSubstatements()) {
+            if (stmt instanceof UnknownSchemaNode) {
+                unknownNodesInit.add((UnknownSchemaNode) stmt);
+            }
+        }
+        unknownNodes = ImmutableList.copyOf(unknownNodesInit);
     }
 
     @Override
     public final Status getStatus() {
         return status;
     }
+
+    @Override
+    public final ImmutableList<UnknownSchemaNode> getUnknownSchemaNodes() {
+        return unknownNodes;
+    }
 }
index 6ac2a48aec708d7866e828e398b34283536e2119..c9951354aeaeb443ff0fdb9a01b2e7bd69e24a2d 100644 (file)
@@ -17,7 +17,7 @@ import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceEffectiveStatemen
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
 @Beta
-//FIXME: 5.0.0: rename to AbstractEffectiveDocumentedNode
+// FIXME: 5.0.0: rename to AbstractEffectiveDocumentedNode
 public abstract class AbstractEffectiveDocumentedNodeWithoutStatus<A, D extends DeclaredStatement<A>>
         extends DeclaredEffectiveStatementBase<A, D> implements DocumentedNode {
 
index 85721fee9a7de9465a996d22d1f1fb6527be0466..d2da6974d1c91009d85eaf340b78e1b9a9bb6f29 100644 (file)
@@ -41,7 +41,6 @@ import org.opendaylight.yangtools.yang.model.api.ModuleImport;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
@@ -72,7 +71,6 @@ public abstract class AbstractEffectiveModule<D extends DeclaredStatement<String
     private final ImmutableSet<Deviation> deviations;
     private final ImmutableList<ExtensionDefinition> extensionNodes;
     private final ImmutableSet<IdentitySchemaNode> identities;
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownNodes;
     private final ImmutableMap<QName, DataSchemaNode> childNodes;
     private final ImmutableSet<GroupingDefinition> groupings;
     private final ImmutableSet<UsesNode> uses;
@@ -96,7 +94,6 @@ public abstract class AbstractEffectiveModule<D extends DeclaredStatement<String
         this.contact = findFirstEffectiveSubstatementArgument(ContactEffectiveStatement.class)
                 .orElse(null);
 
-        final List<UnknownSchemaNode> unknownNodesInit = new ArrayList<>();
         final Set<AugmentationSchemaNode> augmentationsInit = new LinkedHashSet<>();
         final Set<ModuleImport> importsInit = new HashSet<>();
         final Set<NotificationDefinition> notificationsInit = new HashSet<>();
@@ -113,9 +110,6 @@ public abstract class AbstractEffectiveModule<D extends DeclaredStatement<String
         final Set<DataSchemaNode> mutablePublicChildNodes = new LinkedHashSet<>();
 
         for (final EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
-            if (effectiveStatement instanceof UnknownSchemaNode) {
-                unknownNodesInit.add((UnknownSchemaNode) effectiveStatement);
-            }
             if (effectiveStatement instanceof AugmentationSchemaNode) {
                 augmentationsInit.add((AugmentationSchemaNode) effectiveStatement);
             }
@@ -164,7 +158,6 @@ public abstract class AbstractEffectiveModule<D extends DeclaredStatement<String
             }
         }
 
-        this.unknownNodes = ImmutableList.copyOf(unknownNodesInit);
         this.augmentations = ImmutableSet.copyOf(augmentationsInit);
         this.imports = ImmutableSet.copyOf(importsInit);
         this.notifications = ImmutableSet.copyOf(notificationsInit);
@@ -179,7 +172,6 @@ public abstract class AbstractEffectiveModule<D extends DeclaredStatement<String
         this.publicChildNodes = ImmutableSet.copyOf(mutablePublicChildNodes);
         this.typeDefinitions = ImmutableSet.copyOf(mutableTypeDefinitions);
         this.uses = ImmutableSet.copyOf(mutableUses);
-
     }
 
     @Override
@@ -257,11 +249,6 @@ public abstract class AbstractEffectiveModule<D extends DeclaredStatement<String
         return identities;
     }
 
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownNodes;
-    }
-
     @Override
     public final Set<TypeDefinition<?>> getTypeDefinitions() {
         return typeDefinitions;
index 2c6533116ad19dca93908694923de451989975fc..38fd53e1d2636046f30c2eb68e072438b89c2c35 100644 (file)
@@ -7,34 +7,21 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt;
 
-import com.google.common.collect.ImmutableList;
-import java.util.List;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
 public abstract class AbstractEffectiveSchemaNode<D extends DeclaredStatement<QName>> extends
         AbstractSchemaEffectiveDocumentedNode<QName, D> implements SchemaNode {
 
     private final @NonNull SchemaPath path;
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownNodes;
 
     protected AbstractEffectiveSchemaNode(final StmtContext<QName, D, ?> ctx) {
         super(ctx);
         this.path = ctx.getSchemaPath().get();
-
-        ImmutableList.Builder<UnknownSchemaNode> listBuilder = new ImmutableList.Builder<>();
-        for (EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
-            if (effectiveStatement instanceof UnknownSchemaNode) {
-                listBuilder.add((UnknownSchemaNode) effectiveStatement);
-            }
-        }
-        this.unknownNodes = listBuilder.build();
     }
 
     @Override
@@ -46,9 +33,4 @@ public abstract class AbstractEffectiveSchemaNode<D extends DeclaredStatement<QN
     public final SchemaPath getPath() {
         return path;
     }
-
-    @Override
-    public final List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownNodes;
-    }
 }
index b208c2359c8a3cb15d18790fa83cec46f1927495..2a663e37d57ecc4ee17dfc6d1b95803831441778 100644 (file)
@@ -7,11 +7,8 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt;
 
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
-import java.util.ArrayList;
 import java.util.LinkedHashSet;
-import java.util.List;
 import java.util.Optional;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
@@ -21,7 +18,6 @@ import org.opendaylight.yangtools.yang.model.api.AugmentationTarget;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 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.stmt.WhenEffectiveStatement;
@@ -33,7 +29,6 @@ public abstract class AbstractEffectiveSimpleDataNodeContainer<D extends Declare
         AbstractEffectiveDocumentedDataNodeContainer<QName, D> implements AugmentationTarget, DataSchemaNode {
 
     private final ImmutableSet<AugmentationSchemaNode> augmentations;
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownNodes;
     private final RevisionAwareXPath whenCondition;
     private final @NonNull SchemaPath path;
     private final boolean configuration;
@@ -50,17 +45,12 @@ public abstract class AbstractEffectiveSimpleDataNodeContainer<D extends Declare
 
         // initSubstatementCollectionsAndFields
 
-        List<UnknownSchemaNode> unknownNodesInit = new ArrayList<>();
         Set<AugmentationSchemaNode> augmentationsInit = new LinkedHashSet<>();
         for (EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
-            if (effectiveStatement instanceof UnknownSchemaNode) {
-                unknownNodesInit.add((UnknownSchemaNode) effectiveStatement);
-            }
             if (effectiveStatement instanceof AugmentationSchemaNode) {
                 augmentationsInit.add((AugmentationSchemaNode) effectiveStatement);
             }
         }
-        this.unknownNodes = ImmutableList.copyOf(unknownNodesInit);
         this.augmentations = ImmutableSet.copyOf(augmentationsInit);
 
         // initCopyType
@@ -106,11 +96,6 @@ public abstract class AbstractEffectiveSimpleDataNodeContainer<D extends Declare
         return augmentations;
     }
 
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownNodes;
-    }
-
     @Override
     public final Optional<RevisionAwareXPath> getWhenCondition() {
         return Optional.ofNullable(whenCondition);
index 487f0049e74e1ccff5245ace8838efd8d1f85116..fae8bd2d555b7e102da970b9189e595d92dae9d8 100644 (file)
@@ -8,10 +8,6 @@
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt;
 
 import com.google.common.base.Preconditions;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableList.Builder;
-import java.util.List;
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
@@ -31,7 +27,6 @@ public abstract class UnknownEffectiveStatementBase<A, D extends UnknownStatemen
     private final boolean addedByAugmentation;
 
     private final ExtensionDefinition extension;
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownNodes;
     private final QName nodeType;
     private final String nodeParameter;
 
@@ -63,15 +58,6 @@ public abstract class UnknownEffectiveStatementBase<A, D extends UnknownStatemen
         }
 
         nodeParameter = ctx.rawStatementArgument() == null ? "" : ctx.rawStatementArgument();
-
-        // TODO init other fields (see Bug1412Test)
-        final Builder<UnknownSchemaNode> builder = ImmutableList.builder();
-        for (final EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
-            if (effectiveStatement instanceof UnknownSchemaNode) {
-                builder.add((UnknownSchemaNode) effectiveStatement);
-            }
-        }
-        unknownNodes = builder.build();
     }
 
     @Deprecated
@@ -101,11 +87,6 @@ public abstract class UnknownEffectiveStatementBase<A, D extends UnknownStatemen
         return extension;
     }
 
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownNodes;
-    }
-
     @Override
     public String toString() {
         final QName type = getNodeType();
index 524329ec25a33003f326d104c29c791faf955522..e0067589f476515b7881037c80237512e0d1664b 100644 (file)
@@ -14,7 +14,6 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import java.net.URI;
 import java.util.Collection;
-import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
@@ -50,7 +49,6 @@ final class AugmentEffectiveStatementImpl
     private final Revision revision;
     private final @NonNull ImmutableSet<ActionDefinition> actions;
     private final @NonNull ImmutableSet<NotificationDefinition> notifications;
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownNodes;
     private final RevisionAwareXPath whenCondition;
     private final AugmentationSchemaNode copyOf;
 
@@ -76,14 +74,11 @@ final class AugmentEffectiveStatementImpl
                 actionsBuilder.add((ActionDefinition) effectiveStatement);
             } else if (effectiveStatement instanceof NotificationDefinition) {
                 notificationsBuilder.add((NotificationDefinition) effectiveStatement);
-            } else if (effectiveStatement instanceof UnknownSchemaNode) {
-                listBuilder.add((UnknownSchemaNode) effectiveStatement);
             }
         }
 
         this.actions = actionsBuilder.build();
         this.notifications = notificationsBuilder.build();
-        this.unknownNodes = listBuilder.build();
     }
 
     @Override
@@ -116,11 +111,6 @@ final class AugmentEffectiveStatementImpl
         return Optional.ofNullable(whenCondition);
     }
 
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownNodes;
-    }
-
     @Override
     public URI getNamespace() {
         return namespace;
index 304642e10d084339a985c7803314afff0c7bb2fa..aa3d46e0d4a65e445fc591f599debee71e450551 100644 (file)
@@ -7,14 +7,9 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.bit;
 
-import com.google.common.collect.ImmutableList;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Objects;
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BitEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.BitStatement;
@@ -30,7 +25,6 @@ public final class BitEffectiveStatementImpl extends AbstractEffectiveDocumented
     private final QName qname;
     private final SchemaPath schemaPath;
     private final Long declaredPosition;
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownSchemaNodes;
 
     BitEffectiveStatementImpl(final StmtContext<QName, BitStatement, ?> ctx) {
         super(ctx);
@@ -38,19 +32,14 @@ public final class BitEffectiveStatementImpl extends AbstractEffectiveDocumented
         qname = ctx.getStatementArgument();
         schemaPath = ctx.getSchemaPath().get();
 
-        final List<UnknownSchemaNode> unknownSchemaNodesInit = new ArrayList<>();
         Long declaredPositionInit = null;
         for (final EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
             if (effectiveStatement instanceof PositionEffectiveStatement) {
                 declaredPositionInit = ((PositionEffectiveStatement) effectiveStatement).argument();
             }
-            if (effectiveStatement instanceof UnknownSchemaNode) {
-                unknownSchemaNodesInit.add((UnknownSchemaNode) effectiveStatement);
-            }
         }
 
         declaredPosition = declaredPositionInit;
-        unknownSchemaNodes = ImmutableList.copyOf(unknownSchemaNodesInit);
     }
 
     public Long getDeclaredPosition() {
@@ -69,11 +58,6 @@ public final class BitEffectiveStatementImpl extends AbstractEffectiveDocumented
         return schemaPath;
     }
 
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownSchemaNodes;
-    }
-
     @Override
     public int hashCode() {
         final int prime = 31;
@@ -81,7 +65,7 @@ public final class BitEffectiveStatementImpl extends AbstractEffectiveDocumented
         result = prime * result + qname.hashCode();
         result = prime * result + schemaPath.hashCode();
         result = prime * result + Objects.hashCode(declaredPosition);
-        result = prime * result + Objects.hashCode(unknownSchemaNodes);
+        result = prime * result + getUnknownSchemaNodes().hashCode();
         return result;
     }
 
index 7a57031f2e36d2c852093f86f28537adc79f845f..e9957f179083db0c0eae44323967a929832164dd 100644 (file)
@@ -7,11 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.enum_;
 
-import com.google.common.collect.ImmutableList;
-import java.util.ArrayList;
-import java.util.List;
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.EnumEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.EnumStatement;
@@ -22,7 +17,6 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 // FIXME: 5.0.0: hide this class
 public final class EnumEffectiveStatementImpl extends AbstractEffectiveDocumentedNode<String, EnumStatement>
         implements EnumEffectiveStatement {
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownSchemaNodes;
     private final String name;
     private final Integer declaredValue;
 
@@ -31,19 +25,14 @@ public final class EnumEffectiveStatementImpl extends AbstractEffectiveDocumente
 
         name = ctx.rawStatementArgument();
 
-        final List<UnknownSchemaNode> unknownSchemaNodesInit = new ArrayList<>();
         Integer declaredValueInit = null;
         for (final EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
             if (effectiveStatement instanceof ValueEffectiveStatement) {
                 declaredValueInit = ((ValueEffectiveStatement) effectiveStatement).argument();
             }
-            if (effectiveStatement instanceof UnknownSchemaNode) {
-                unknownSchemaNodesInit.add((UnknownSchemaNode) effectiveStatement);
-            }
         }
 
         declaredValue = declaredValueInit;
-        unknownSchemaNodes = ImmutableList.copyOf(unknownSchemaNodesInit);
     }
 
     public String getName() {
@@ -53,9 +42,4 @@ public final class EnumEffectiveStatementImpl extends AbstractEffectiveDocumente
     public Integer getDeclaredValue() {
         return declaredValue;
     }
-
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownSchemaNodes;
-    }
 }
\ No newline at end of file
index 13e0824e8b75b2612b632e4882455eed5ecb90db..7c70922e7270275b8da8c450e798b8a137f38228 100644 (file)
@@ -7,12 +7,9 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.extension;
 
-import com.google.common.collect.ImmutableList;
 import java.util.ArrayDeque;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Deque;
-import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
@@ -21,7 +18,6 @@ import org.opendaylight.yangtools.util.RecursiveObjectLeaker;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ExtensionEffectiveStatement;
@@ -70,7 +66,6 @@ final class ExtensionEffectiveStatementImpl extends AbstractEffectiveDocumentedN
     private final @Nullable String argument;
     private final @NonNull SchemaPath schemaPath;
 
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownNodes;
     private final boolean yin;
 
     private ExtensionEffectiveStatementImpl(
@@ -79,14 +74,6 @@ final class ExtensionEffectiveStatementImpl extends AbstractEffectiveDocumentedN
         this.qname = ctx.coerceStatementArgument();
         this.schemaPath = ctx.getSchemaPath().get();
 
-        final List<UnknownSchemaNode> unknownNodesInit = new ArrayList<>();
-        for (EffectiveStatement<?, ?> unknownNode : effectiveSubstatements()) {
-            if (unknownNode instanceof UnknownSchemaNode) {
-                unknownNodesInit.add((UnknownSchemaNode) unknownNode);
-            }
-        }
-        this.unknownNodes = ImmutableList.copyOf(unknownNodesInit);
-
         // initFields
         final Optional<ArgumentEffectiveStatement> optArgumentSubstatement = findFirstEffectiveSubstatement(
             ArgumentEffectiveStatement.class);
@@ -145,11 +132,6 @@ final class ExtensionEffectiveStatementImpl extends AbstractEffectiveDocumentedN
         return schemaPath;
     }
 
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownNodes;
-    }
-
     @Override
     public String getArgument() {
         return argument;
@@ -196,7 +178,7 @@ final class ExtensionEffectiveStatementImpl extends AbstractEffectiveDocumentedN
                     + "argument=" + argument
                     + ", qname=" + qname
                     + ", schemaPath=" + schemaPath
-                    + ", extensionSchemaNodes=" + unknownNodes
+                    + ", extensionSchemaNodes=" + getUnknownSchemaNodes()
                     + ", yin=" + yin
                     + "]";
         } finally {
index af6447ede45e98e6500de8c5364903f34e30e84e..34d698070e6ba3dee6ccb898f067d03bb3cbb3ed 100644 (file)
@@ -7,9 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.grouping;
 
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
-import java.util.List;
 import java.util.Objects;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
@@ -18,7 +16,6 @@ import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
@@ -38,7 +35,6 @@ final class GroupingEffectiveStatementImpl
     private final boolean addedByUses;
     private final @NonNull ImmutableSet<ActionDefinition> actions;
     private final @NonNull ImmutableSet<NotificationDefinition> notifications;
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownNodes;
 
     GroupingEffectiveStatementImpl(
             final StmtContext<QName, GroupingStatement, EffectiveStatement<QName, GroupingStatement>> ctx) {
@@ -50,24 +46,17 @@ final class GroupingEffectiveStatementImpl
 
         final ImmutableSet.Builder<ActionDefinition> actionsBuilder = ImmutableSet.builder();
         final ImmutableSet.Builder<NotificationDefinition> notificationsBuilder = ImmutableSet.builder();
-        final ImmutableList.Builder<UnknownSchemaNode> b = ImmutableList.builder();
         for (final EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
             if (effectiveStatement instanceof ActionDefinition) {
                 actionsBuilder.add((ActionDefinition) effectiveStatement);
             }
-
             if (effectiveStatement instanceof NotificationDefinition) {
                 notificationsBuilder.add((NotificationDefinition) effectiveStatement);
             }
-
-            if (effectiveStatement instanceof UnknownSchemaNode) {
-                b.add((UnknownSchemaNode) effectiveStatement);
-            }
         }
 
         this.actions = actionsBuilder.build();
         this.notifications = notificationsBuilder.build();
-        unknownNodes = b.build();
     }
 
     @Override
@@ -95,11 +84,6 @@ final class GroupingEffectiveStatementImpl
         return notifications;
     }
 
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownNodes;
-    }
-
     @Override
     public int hashCode() {
         final int prime = 31;
index 687c6931a7e054dac82cbb0d5918b525c32b4020..477806ae9f7f26f821dc0e3c71092e84efb7c765 100644 (file)
@@ -7,12 +7,9 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.notification;
 
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.LinkedHashSet;
-import java.util.List;
 import java.util.Objects;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
@@ -21,7 +18,6 @@ import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NotificationEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.NotificationStatement;
@@ -36,7 +32,6 @@ final class NotificationEffectiveStatementImpl
     private final @NonNull QName qname;
     private final @NonNull SchemaPath path;
     private final ImmutableSet<AugmentationSchemaNode> augmentations;
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownNodes;
     private final boolean augmenting;
     private final boolean addedByUses;
     private final ImmutableSet<MustDefinition> mustConstraints;
@@ -48,19 +43,13 @@ final class NotificationEffectiveStatementImpl
         this.path = ctx.getSchemaPath().get();
 
         // initSubstatementCollections
-        final List<UnknownSchemaNode> unknownNodesInit = new ArrayList<>();
         final Set<AugmentationSchemaNode> augmentationsInit = new LinkedHashSet<>();
         for (final EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
-            if (effectiveStatement instanceof UnknownSchemaNode) {
-                final UnknownSchemaNode unknownNode = (UnknownSchemaNode) effectiveStatement;
-                unknownNodesInit.add(unknownNode);
-            }
             if (effectiveStatement instanceof AugmentationSchemaNode) {
                 final AugmentationSchemaNode augmentationSchema = (AugmentationSchemaNode) effectiveStatement;
                 augmentationsInit.add(augmentationSchema);
             }
         }
-        this.unknownNodes = ImmutableList.copyOf(unknownNodesInit);
         this.augmentations = ImmutableSet.copyOf(augmentationsInit);
         this.mustConstraints = ImmutableSet.copyOf(this.allSubstatementsOfType(MustDefinition.class));
 
@@ -95,11 +84,6 @@ final class NotificationEffectiveStatementImpl
         return augmentations;
     }
 
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownNodes;
-    }
-
     @Deprecated
     @Override
     public boolean isAugmenting() {
index b55e33158bd8e93c8f42e670bcbdcb3aa39f9bb9..6d2880b208c446ce96f327e1f3fb7eafcca96b7e 100644 (file)
@@ -9,14 +9,10 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine;
 
 import static com.google.common.base.Verify.verifyNotNull;
 
-import com.google.common.collect.ImmutableList;
-import java.util.List;
-import java.util.stream.Collectors;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.stmt.RefineEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
@@ -30,7 +26,6 @@ public final class RefineEffectiveStatementImpl
 
     private final @NonNull QName qname;
     private final @NonNull SchemaPath path;
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownNodes;
     private final SchemaNode refineTargetNode;
 
     RefineEffectiveStatementImpl(final StmtContext<SchemaNodeIdentifier, RefineStatement, ?> ctx) {
@@ -38,12 +33,6 @@ public final class RefineEffectiveStatementImpl
         qname = verifyNotNull(ctx.coerceStatementArgument().getLastComponent());
         path = ctx.getSchemaPath().get();
         refineTargetNode = (SchemaNode) ctx.getEffectOfStatement().iterator().next().buildEffective();
-
-        // initSubstatementCollectionsAndFields
-        this.unknownNodes = ImmutableList.copyOf(effectiveSubstatements().stream()
-            .filter(UnknownSchemaNode.class::isInstance)
-            .map(UnknownSchemaNode.class::cast)
-            .collect(Collectors.toList()));
     }
 
     public SchemaNode getRefineTargetNode() {
@@ -59,9 +48,4 @@ public final class RefineEffectiveStatementImpl
     public SchemaPath getPath() {
         return path;
     }
-
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownNodes;
-    }
 }
\ No newline at end of file
index 8ccf4fc0d23df1d79159e6eb4ca57fa9b7513d19..cc5000b7389820c143055460e5394076faa0c028 100644 (file)
@@ -7,13 +7,10 @@
  */
 package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.uses;
 
-import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
-import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.LinkedHashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
@@ -25,7 +22,6 @@ import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingEffectiveStatement;
@@ -46,7 +42,6 @@ final class UsesEffectiveStatementImpl extends AbstractEffectiveDocumentedNode<Q
     private final boolean addedByUses;
     private final @NonNull ImmutableMap<SchemaPath, SchemaNode> refines;
     private final @NonNull ImmutableSet<AugmentationSchemaNode> augmentations;
-    private final @NonNull ImmutableList<UnknownSchemaNode> unknownNodes;
     private final @Nullable RevisionAwareXPath whenCondition;
 
     UsesEffectiveStatementImpl(final StmtContext<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> ctx) {
@@ -61,14 +56,9 @@ final class UsesEffectiveStatementImpl extends AbstractEffectiveDocumentedNode<Q
         addedByUses = ctx.getCopyHistory().contains(CopyType.ADDED_BY_USES);
 
         // initSubstatementCollections
-        final List<UnknownSchemaNode> unknownNodesInit = new ArrayList<>();
         final Set<AugmentationSchemaNode> augmentationsInit = new LinkedHashSet<>();
         final Map<SchemaPath, SchemaNode> refinesInit = new HashMap<>();
         for (final EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
-            if (effectiveStatement instanceof UnknownSchemaNode) {
-                final UnknownSchemaNode unknownNode = (UnknownSchemaNode) effectiveStatement;
-                unknownNodesInit.add(unknownNode);
-            }
             if (effectiveStatement instanceof AugmentationSchemaNode) {
                 final AugmentationSchemaNode augmentationSchema = (AugmentationSchemaNode) effectiveStatement;
                 augmentationsInit.add(augmentationSchema);
@@ -79,7 +69,6 @@ final class UsesEffectiveStatementImpl extends AbstractEffectiveDocumentedNode<Q
                 refinesInit.put(identifier.asSchemaPath(), refineStmt.getRefineTargetNode());
             }
         }
-        this.unknownNodes = ImmutableList.copyOf(unknownNodesInit);
         this.augmentations = ImmutableSet.copyOf(augmentationsInit);
         this.refines = ImmutableMap.copyOf(refinesInit);
 
@@ -113,11 +102,6 @@ final class UsesEffectiveStatementImpl extends AbstractEffectiveDocumentedNode<Q
         return refines;
     }
 
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownNodes;
-    }
-
     @Override
     public Optional<RevisionAwareXPath> getWhenCondition() {
         return Optional.ofNullable(whenCondition);