Remove hashCode()/equals() from SchemaNode implementations
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / uses / UsesEffectiveStatementImpl.java
index a16b92a94bad287ebcfa69413fd208890123546e..cd927bad8bc25387f844427252b8c0116e7a215c 100644 (file)
@@ -7,15 +7,12 @@
  */
 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.Collection;
 import java.util.HashMap;
 import java.util.LinkedHashSet;
-import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
@@ -25,9 +22,9 @@ 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;
 import org.opendaylight.yangtools.yang.model.api.stmt.GroupingStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
 import org.opendaylight.yangtools.yang.model.api.stmt.UsesEffectiveStatement;
@@ -43,31 +40,25 @@ final class UsesEffectiveStatementImpl extends AbstractEffectiveDocumentedNode<Q
         implements UsesEffectiveStatement, UsesNode {
     private final @NonNull SchemaPath groupingPath;
     private final boolean addedByUses;
-    private final @NonNull Map<SchemaPath, SchemaNode> refines;
-    private final @NonNull Set<AugmentationSchemaNode> augmentations;
-    private final @NonNull List<UnknownSchemaNode> unknownNodes;
+    private final @NonNull ImmutableMap<SchemaPath, SchemaNode> refines;
+    private final @NonNull ImmutableSet<AugmentationSchemaNode> augmentations;
     private final @Nullable RevisionAwareXPath whenCondition;
 
-    UsesEffectiveStatementImpl(final StmtContext<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> ctx) {
+    UsesEffectiveStatementImpl(final StmtContext<QName, UsesStatement, UsesEffectiveStatement> ctx) {
         super(ctx);
 
         // initGroupingPath
-        final StmtContext<?, GroupingStatement, EffectiveStatement<QName, GroupingStatement>> grpCtx =
-                ctx.getFromNamespace(GroupingNamespace.class, ctx.getStatementArgument());
+        final StmtContext<?, GroupingStatement, GroupingEffectiveStatement> grpCtx =
+                ctx.getFromNamespace(GroupingNamespace.class, ctx.coerceStatementArgument());
         this.groupingPath = grpCtx.getSchemaPath().get();
 
         // initCopyType
         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);
@@ -78,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);
 
@@ -91,7 +81,7 @@ final class UsesEffectiveStatementImpl extends AbstractEffectiveDocumentedNode<Q
     }
 
     @Override
-    public Set<AugmentationSchemaNode> getAugmentations() {
+    public Collection<? extends AugmentationSchemaNode> getAugmentations() {
         return augmentations;
     }
 
@@ -112,40 +102,11 @@ final class UsesEffectiveStatementImpl extends AbstractEffectiveDocumentedNode<Q
         return refines;
     }
 
-    @Override
-    public List<UnknownSchemaNode> getUnknownSchemaNodes() {
-        return unknownNodes;
-    }
-
     @Override
     public Optional<RevisionAwareXPath> getWhenCondition() {
         return Optional.ofNullable(whenCondition);
     }
 
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + Objects.hashCode(groupingPath);
-        result = prime * result + Objects.hashCode(augmentations);
-        return result;
-    }
-
-    @Override
-    public boolean equals(final Object obj) {
-        if (this == obj) {
-            return true;
-        }
-        if (obj == null) {
-            return false;
-        }
-        if (getClass() != obj.getClass()) {
-            return false;
-        }
-        final UsesEffectiveStatementImpl other = (UsesEffectiveStatementImpl) obj;
-        return Objects.equals(groupingPath, other.groupingPath) && Objects.equals(augmentations, other.augmentations);
-    }
-
     @Override
     public String toString() {
         return UsesEffectiveStatementImpl.class.getSimpleName() + "[groupingPath=" + groupingPath + "]";