import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeAwareEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeAwareEffectiveStatement.Namespace;
+import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeAwareEffectiveStatement.DataTreeNamespace;
import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
import org.slf4j.Logger;
private static int codecsForChildren(final JSONCodecFactory lazy, final SchemaInferenceStack stack,
final DataTreeAwareEffectiveStatement<?, ?> parent) {
int ret = 0;
- for (var entry : parent.getAll(Namespace.class).entrySet()) {
+ for (var entry : parent.getAll(DataTreeNamespace.class).entrySet()) {
final var child = entry.getValue();
if (child instanceof DataTreeAwareEffectiveStatement) {
stack.enterDataTree(entry.getKey());
*
* @param <A> Argument type
* @param <D> Class representing declared version of this statement.
- * @author Robert Varga
*/
@Beta
public interface DataTreeAwareEffectiveStatement<A, D extends DeclaredStatement<A>>
extends SchemaTreeAwareEffectiveStatement<A, D> {
/**
- * Namespace of {@code data node}s. This is a subtree of {@link SchemaTreeAwareEffectiveStatement.Namespace} in that
- * all data nodes are also schema nodes. The structure of the tree is different, though, as {@code choice}
- * and {@code case} statements are glossed over and they do not contribute to the tree hierarchy -- only their
- * children do.
+ * Namespace of {@code data node}s. This is a subtree of
+ * {@link SchemaTreeAwareEffectiveStatement.SchemaTreeNamespace} in that all data nodes are also schema nodes. The
+ * structure of the tree is different, though, as {@code choice} and {@code case} statements are glossed over and
+ * they do not contribute to the tree hierarchy -- only their children do.
*
* <p>
* This corresponds to the {@code data tree} view of a YANG-defined data.
*/
@NonNullByDefault
- abstract class Namespace extends EffectiveStatementNamespace<DataTreeEffectiveStatement<?>> {
- private Namespace() {
+ abstract class DataTreeNamespace extends EffectiveStatementNamespace<DataTreeEffectiveStatement<?>> {
+ private DataTreeNamespace() {
// Should never be instantiated
}
}
* @throws NullPointerException if {@code qname} is null
*/
default @NonNull Optional<DataTreeEffectiveStatement<?>> findDataTreeNode(final @NonNull QName qname) {
- return get(Namespace.class, requireNonNull(qname));
+ return get(DataTreeNamespace.class, requireNonNull(qname));
}
/**
/**
* Common interface grouping all {@link EffectiveStatement}s which are accessible via
- * {@link DataTreeAwareEffectiveStatement.Namespace}. This such statement corresponds to a {@code data node}.
+ * {@link DataTreeAwareEffectiveStatement.DataTreeNamespace}. This such statement corresponds to a {@code data node}.
*
* <p>
* This interface could be named {@code SchemaNodeEffectiveStatement}, but that could induce a notion that it has
* always be preferred and DataSchemaNode is to be treated as deprecated whenever possible.
*
* @param <D> Declared statement type
- * @author Robert Varga
*/
@Beta
public interface DataTreeEffectiveStatement<D extends DeclaredStatement<QName>>
* Namespace of {@code schema node}s defined within this node.
*/
@NonNullByDefault
- abstract class Namespace extends EffectiveStatementNamespace<SchemaTreeEffectiveStatement<?>> {
- private Namespace() {
+ abstract class SchemaTreeNamespace extends EffectiveStatementNamespace<SchemaTreeEffectiveStatement<?>> {
+ private SchemaTreeNamespace() {
// Should never be instantiated
}
}
* @throws NullPointerException if {@code qname} is null
*/
default @NonNull Optional<SchemaTreeEffectiveStatement<?>> findSchemaTreeNode(final @NonNull QName qname) {
- return get(Namespace.class, requireNonNull(qname));
+ return get(SchemaTreeNamespace.class, requireNonNull(qname));
}
/**
/**
* Common interface grouping all {@link EffectiveStatement}s which are accessible via
- * {@link SchemaTreeAwareEffectiveStatement.Namespace}. This such statement corresponds to a {@code schema node}.
+ * {@link SchemaTreeAwareEffectiveStatement.SchemaTreeNamespace}. This such statement corresponds to a
+ * {@code schema node}.
*
* <p>
* This interface could be named {@code SchemaNodeEffectiveStatement}, but that could induce a notion that it has
* always be preferred and SchemaNode is to be treated as deprecated whenever possible.
*
* @param <D> Declared statement type
- * @author Robert Varga
*/
@Beta
public interface SchemaTreeEffectiveStatement<D extends DeclaredStatement<QName>>
default Optional<ActionDefinition> findAction(final QName qname) {
// 'action' identifier must never collide with another element, hence if we look it up and it ends up being
// an ActionDefinition, we have found a match.
- return get(Namespace.class, qname)
+ return get(SchemaTreeNamespace.class, qname)
.flatMap(child -> child instanceof ActionDefinition ? Optional.of((ActionDefinition) child)
: Optional.empty());
}
default Optional<NotificationDefinition> findNotification(final QName qname) {
// 'notification' identifier must never collide with another element, hence if we look it up and it ends up
// being an NotificationDefinition, we have found a match.
- return get(Namespace.class, qname)
+ return get(SchemaTreeNamespace.class, qname)
.flatMap(child -> child instanceof NotificationDefinition ? Optional.of((NotificationDefinition) child)
: Optional.empty());
}
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeAwareEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeAwareEffectiveStatement.DataTreeNamespace;
import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeAwareEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeAwareEffectiveStatement.SchemaTreeNamespace;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.TypedefNamespace;
@SuppressWarnings("unchecked")
protected <K, V, N extends IdentifierNamespace<K, V>> Optional<? extends Map<K, V>> getNamespaceContents(
final Class<N> namespace) {
- if (SchemaTreeAwareEffectiveStatement.Namespace.class.equals(namespace)) {
+ if (SchemaTreeNamespace.class.equals(namespace)) {
return Optional.of((Map<K, V>) schemaTreeNamespace());
}
return super.getNamespaceContents(namespace);
@SuppressWarnings("unchecked")
protected <K, V, N extends IdentifierNamespace<K, V>> Optional<? extends Map<K, V>> getNamespaceContents(
final Class<N> namespace) {
- if (DataTreeAwareEffectiveStatement.Namespace.class.equals(namespace)) {
+ if (DataTreeNamespace.class.equals(namespace)) {
return Optional.of((Map<K, V>) dataTreeNamespace());
}
return super.getNamespaceContents(namespace);
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeAwareEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeAwareEffectiveStatement.DataTreeNamespace;
import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeAwareEffectiveStatement;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeAwareEffectiveStatement.SchemaTreeNamespace;
import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement;
@Beta
@SuppressWarnings("unchecked")
protected <K, V, N extends IdentifierNamespace<K, V>> Optional<? extends Map<K, V>> getNamespaceContents(
final Class<N> namespace) {
- if (SchemaTreeAwareEffectiveStatement.Namespace.class.equals(namespace)) {
+ if (SchemaTreeNamespace.class.equals(namespace)) {
return Optional.of((Map<K, V>) schemaTreeNamespace());
}
return super.getNamespaceContents(namespace);
@SuppressWarnings("unchecked")
protected <K, V, N extends IdentifierNamespace<K, V>> Optional<? extends Map<K, V>> getNamespaceContents(
final Class<N> namespace) {
- if (DataTreeAwareEffectiveStatement.Namespace.class.equals(namespace)) {
+ if (DataTreeNamespace.class.equals(namespace)) {
return Optional.of((Map<K, V>) dataTreeNamespace());
}
return super.getNamespaceContents(namespace);
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
import org.opendaylight.yangtools.yang.model.api.stmt.ContainerEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeAwareEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeAwareEffectiveStatement;
import org.opendaylight.yangtools.yang.model.spi.meta.AbstractEffectiveUnknownSchmemaNode;
import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
@Override
protected <K, V, N extends IdentifierNamespace<K, V>> Optional<? extends Map<K, V>> getNamespaceContents(
final Class<N> namespace) {
- if (SchemaTreeAwareEffectiveStatement.Namespace.class.equals(namespace)
- || DataTreeAwareEffectiveStatement.Namespace.class.equals(namespace)) {
+ if (SchemaTreeNamespace.class.equals(namespace) || DataTreeNamespace.class.equals(namespace)) {
@SuppressWarnings("unchecked")
final Map<K, V> ns = (Map<K, V>)Map.of(container.argument(), container);
return Optional.of(ns);