import static java.util.Objects.requireNonNull;
import com.google.common.annotations.Beta;
-import com.google.common.base.MoreObjects;
import com.google.common.collect.Collections2;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap.Builder;
import org.opendaylight.yangtools.concepts.SemVer;
import org.opendaylight.yangtools.openconfig.model.api.OpenConfigVersionEffectiveStatement;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.common.UnqualifiedQName;
+import org.opendaylight.yangtools.yang.common.UnresolvedQName.Unqualified;
import org.opendaylight.yangtools.yang.common.YangVersion;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.stmt.TypedefEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.YangVersionEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.compat.NotificationNodeContainerCompat;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultWithDataTree.WithSubstatements;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultWithDataTree.WithTypedefNamespace;
import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.DocumentedNodeMixin;
import org.opendaylight.yangtools.yang.parser.spi.meta.CommonStmtCtx;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
@Beta
-public abstract class AbstractEffectiveModule<D extends DeclaredStatement<UnqualifiedQName>,
- E extends DataTreeAwareEffectiveStatement<UnqualifiedQName, D>>
- extends WithSubstatements<UnqualifiedQName, D, E>
- implements ModuleLike, DocumentedNodeMixin<UnqualifiedQName, D>,
- NotificationNodeContainerCompat<UnqualifiedQName, D, E> {
+public abstract class AbstractEffectiveModule<D extends DeclaredStatement<Unqualified>,
+ E extends DataTreeAwareEffectiveStatement<Unqualified, D>>
+ extends WithTypedefNamespace<Unqualified, D>
+ implements ModuleLike, DocumentedNodeMixin<Unqualified, D>, NotificationNodeContainerCompat<Unqualified, D, E> {
private final String prefix;
private final ImmutableSet<GroupingDefinition> groupings;
private final ImmutableSet<UsesNode> uses;
private final ImmutableSet<TypeDefinition<?>> typeDefinitions;
- protected AbstractEffectiveModule(final Current<UnqualifiedQName, D> stmt,
+ protected AbstractEffectiveModule(final Current<Unqualified, D> stmt,
final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final String prefix) {
super(stmt.declared(), substatements);
}
@Override
- public UnqualifiedQName argument() {
+ public Unqualified argument() {
return getDeclared().argument();
}
return findFirstEffectiveSubstatementArgument(OpenConfigVersionEffectiveStatement.class);
}
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this).omitNullValues()
- .add("name", getName())
- .add("namespace", getNamespace())
- .add("revision", getRevision().orElse(null))
- .add("prefix", prefix)
- .add("yangVersion", getYangVersion())
- .toString();
- }
-
protected static final @NonNull String findPrefix(final CommonStmtCtx stmt,
final Collection<? extends EffectiveStatement<?, ?>> substatements, final String type, final String name) {
return substatements.stream()