X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fspi%2Fmeta%2FNamespaceBehaviour.java;h=25d440954780cc5cd9b2f7105718d9ea7d6f62ac;hb=6682a8e2a8c02ed7a66bddb8b7a86009ffbbb98d;hp=b4470938f968ed9eed20d6cd20e6956ebaceddbf;hpb=92c583f7e46e1d7fda8c5b0f50bb84de7072d374;p=yangtools.git diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java index b4470938f9..25d4409547 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/NamespaceBehaviour.java @@ -9,6 +9,7 @@ package org.opendaylight.yangtools.yang.parser.spi.meta; import static java.util.Objects.requireNonNull; +import com.google.common.annotations.Beta; import com.google.common.base.MoreObjects.ToStringHelper; import com.google.common.base.Verify; import java.util.Map; @@ -17,7 +18,12 @@ import java.util.Optional; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.yangtools.concepts.AbstractIdentifiable; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; +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.SchemaTreeAwareEffectiveStatement; +import org.opendaylight.yangtools.yang.parser.spi.SchemaTreeNamespace; /** * Definition / implementation of specific Identifier Namespace behaviour. A namespace behaviour is built on top @@ -43,7 +49,7 @@ public abstract class NamespaceBehaviour + * This method must not change its mind about a child's presence -- once it returns non-present, it has to be + * always returning non-present. + * + *

+ * The results produced by this method are expected to be consistent with + * {@link SchemaTreeAwareEffectiveStatement#findSchemaTreeNode(QName)} and + * {@link SchemaTreeNamespace#getFrom(NamespaceStorageNode, QName)}. + * + * @param qname node identifier of the child being requested + * @return Requested child, if it is present. + * @throws NullPointerException in {@code qname} is null + */ + , E extends EffectiveStatement> + @Nullable StmtContext requestSchemaTreeChild(QName qname); + } + protected NamespaceBehaviour(final Class identifier) { super(identifier); } @@ -253,7 +289,7 @@ public abstract class NamespaceBehaviour> extends NamespaceBehaviour { - StorageNodeType storageType; + private final StorageNodeType storageType; StorageSpecific(final Class identifier, final StorageNodeType type) { super(identifier);