Refactor yang-model-api child traversal return types
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / identity / IdentityEffectiveStatementImpl.java
index 8a1ec9431d127a45af655f614369bffbaa20f687..0da50e5ed7bc3d46debad6daff1eb70ac637dc2e 100644 (file)
@@ -11,6 +11,7 @@ import static com.google.common.base.Preconditions.checkState;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.collect.ImmutableSet;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
@@ -19,7 +20,6 @@ import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveSchemaNode;
@@ -29,12 +29,11 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
 final class IdentityEffectiveStatementImpl extends AbstractEffectiveSchemaNode<IdentityStatement>
         implements IdentityEffectiveStatement, IdentitySchemaNode, MutableStatement {
-    private final Set<IdentitySchemaNode> derivedIdentities;
+    private final ImmutableSet<IdentitySchemaNode> derivedIdentities;
     private @NonNull Set<IdentitySchemaNode> baseIdentities;
     private boolean sealed;
 
-    IdentityEffectiveStatementImpl(
-            final StmtContext<QName, IdentityStatement, EffectiveStatement<QName, IdentityStatement>> ctx) {
+    IdentityEffectiveStatementImpl(final StmtContext<QName, IdentityStatement, IdentityEffectiveStatement> ctx) {
         super(ctx);
 
         this.baseIdentities = new HashSet<>();
@@ -43,7 +42,7 @@ final class IdentityEffectiveStatementImpl extends AbstractEffectiveSchemaNode<I
         // initDerivedIdentities
         final Set<IdentitySchemaNode> derivedIdentitiesInit = new HashSet<>();
         final List<StmtContext<?, ?, ?>> derivedIdentitiesCtxList = ctx.getFromNamespace(
-                DerivedIdentitiesNamespace.class, ctx.getStatementArgument());
+                DerivedIdentitiesNamespace.class, ctx.coerceStatementArgument());
         if (derivedIdentitiesCtxList == null) {
             this.derivedIdentities = ImmutableSet.of();
             return;
@@ -63,13 +62,13 @@ final class IdentityEffectiveStatementImpl extends AbstractEffectiveSchemaNode<I
     }
 
     @Override
-    public Set<IdentitySchemaNode> getBaseIdentities() {
+    public Collection<? extends IdentitySchemaNode> getBaseIdentities() {
         checkState(sealed, "Attempt to get base identities from unsealed identity effective statement %s", getQName());
         return baseIdentities;
     }
 
     @Override
-    public Set<IdentitySchemaNode> getDerivedIdentities() {
+    public Collection<? extends IdentitySchemaNode> getDerivedIdentities() {
         return Collections.unmodifiableSet(derivedIdentities);
     }