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=ade7c48e5083688264ce64ae1ada1c7a7d2faf64;hpb=83393e1bcd170c194961e97c14a46e30d85fbc22;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 ade7c48e50..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 @@ -107,6 +113,36 @@ 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);