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;
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;
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<>();
// 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;
}
@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);
}