From 51f9da79af36ecdb376514bdd86d1d3ff0a2a61d Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 30 Jul 2018 19:00:03 +0200 Subject: [PATCH] Revert "Add SchemaTreeAwareEffectiveStatement" This reverts commit eae57f9cd4605c5b13a24d843c0e4278d8b5deb2. Change-Id: If651cc6d925c1f9ea616a75ffd426a49666b5ee1 Signed-off-by: Robert Varga --- .../model/api/meta/EffectiveStatement.java | 11 +-- .../api/stmt/ActionEffectiveStatement.java | 4 +- .../api/stmt/AnydataEffectiveStatement.java | 4 +- .../api/stmt/AnyxmlEffectiveStatement.java | 4 +- .../api/stmt/CaseEffectiveStatement.java | 4 +- .../api/stmt/ChoiceEffectiveStatement.java | 4 +- .../api/stmt/ContainerEffectiveStatement.java | 4 +- .../api/stmt/InputEffectiveStatement.java | 4 +- .../api/stmt/LeafEffectiveStatement.java | 4 +- .../api/stmt/LeafListEffectiveStatement.java | 4 +- .../api/stmt/ListEffectiveStatement.java | 4 +- .../api/stmt/ModuleEffectiveStatement.java | 3 +- .../stmt/NotificationEffectiveStatement.java | 4 +- .../api/stmt/OutputEffectiveStatement.java | 4 +- .../model/api/stmt/RpcEffectiveStatement.java | 4 +- .../SchemaTreeAwareEffectiveStatement.java | 56 --------------- .../stmt/SchemaTreeEffectiveStatement.java | 33 --------- ...tEffectiveDocumentedDataNodeContainer.java | 2 +- .../rfc7950/stmt/AbstractEffectiveModule.java | 2 +- .../stmt/AbstractEffectiveSchemaNode.java | 2 +- ...AbstractSchemaEffectiveDocumentedNode.java | 70 ------------------- .../stmt/UnknownEffectiveStatementBase.java | 2 +- 22 files changed, 42 insertions(+), 191 deletions(-) delete mode 100644 yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaTreeAwareEffectiveStatement.java delete mode 100644 yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaTreeEffectiveStatement.java delete mode 100644 yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractSchemaEffectiveDocumentedNode.java diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/EffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/EffectiveStatement.java index cb50dc9ca6..4d0a7f9f5d 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/EffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/meta/EffectiveStatement.java @@ -22,10 +22,13 @@ import org.eclipse.jdt.annotation.NonNull; /** * Effective model statement which should be used to derive application behaviour. * - * @param Argument type ({@link Void} if statement does not have argument.) - * @param Class representing declared version of this statement. + * @param + * Argument type ({@link Void} if statement does not have argument.) + * @param + * Class representing declared version of this statement. */ -public interface EffectiveStatement> extends ModelStatement { +public interface EffectiveStatement> extends ModelStatement { + /** * Returns statement, which was explicit declaration of this effective * statement. @@ -34,7 +37,7 @@ public interface EffectiveStatement> extends M * statement or null if statement was inferred from context. */ @Nullable - D getDeclared(); + S getDeclared(); /** * Returns value associated with supplied identifier. diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ActionEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ActionEffectiveStatement.java index d3dc0725ab..f45ead8dbc 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ActionEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ActionEffectiveStatement.java @@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface ActionEffectiveStatement extends SchemaTreeEffectiveStatement, - SchemaTreeAwareEffectiveStatement { +public interface ActionEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AnydataEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AnydataEffectiveStatement.java index 798d2ab187..b4265a2cae 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AnydataEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AnydataEffectiveStatement.java @@ -8,8 +8,10 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface AnydataEffectiveStatement extends SchemaTreeEffectiveStatement { +public interface AnydataEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AnyxmlEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AnyxmlEffectiveStatement.java index 20756ba96f..cd6a50a5b3 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AnyxmlEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/AnyxmlEffectiveStatement.java @@ -8,8 +8,10 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface AnyxmlEffectiveStatement extends SchemaTreeEffectiveStatement { +public interface AnyxmlEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/CaseEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/CaseEffectiveStatement.java index 1f9a675d3e..60d25b3fc6 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/CaseEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/CaseEffectiveStatement.java @@ -8,10 +8,8 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; -import org.opendaylight.yangtools.yang.common.QName; @Beta -public interface CaseEffectiveStatement extends SchemaTreeEffectiveStatement, - SchemaTreeAwareEffectiveStatement { +public interface CaseEffectiveStatement extends NamespacedEffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ChoiceEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ChoiceEffectiveStatement.java index 6c555623fc..08d9346778 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ChoiceEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ChoiceEffectiveStatement.java @@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface ChoiceEffectiveStatement extends SchemaTreeEffectiveStatement, - SchemaTreeAwareEffectiveStatement { +public interface ChoiceEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ContainerEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ContainerEffectiveStatement.java index f1b2481f7b..1dba8165fb 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ContainerEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ContainerEffectiveStatement.java @@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface ContainerEffectiveStatement extends SchemaTreeEffectiveStatement, - SchemaTreeAwareEffectiveStatement { +public interface ContainerEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/InputEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/InputEffectiveStatement.java index b131e6b6aa..dd28bcaab8 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/InputEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/InputEffectiveStatement.java @@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface InputEffectiveStatement extends SchemaTreeEffectiveStatement, - SchemaTreeAwareEffectiveStatement { +public interface InputEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LeafEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LeafEffectiveStatement.java index dc97dd200f..313988b577 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LeafEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LeafEffectiveStatement.java @@ -8,8 +8,10 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface LeafEffectiveStatement extends SchemaTreeEffectiveStatement { +public interface LeafEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LeafListEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LeafListEffectiveStatement.java index f113b28ae5..de168a1452 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LeafListEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/LeafListEffectiveStatement.java @@ -8,8 +8,10 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface LeafListEffectiveStatement extends SchemaTreeEffectiveStatement { +public interface LeafListEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ListEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ListEffectiveStatement.java index 0ebad88b58..30aa63666c 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ListEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ListEffectiveStatement.java @@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface ListEffectiveStatement extends SchemaTreeEffectiveStatement, - SchemaTreeAwareEffectiveStatement { +public interface ListEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ModuleEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ModuleEffectiveStatement.java index a77960d982..7eea1e0264 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ModuleEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/ModuleEffectiveStatement.java @@ -10,6 +10,7 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; /** @@ -20,7 +21,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; // an ordinary String. We really want this to be a QName, so that we do not need the localQNameModule // bit, but that may be problematic with ModuleStatement, which is getting created before we even know // the namespace :( A type capture of the string may just be sufficient. -public interface ModuleEffectiveStatement extends SchemaTreeAwareEffectiveStatement { +public interface ModuleEffectiveStatement extends EffectiveStatement { /** * Namespace mapping all known prefixes in a module to their modules. Note this namespace includes the module * in which it is instantiated. diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NotificationEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NotificationEffectiveStatement.java index 2479d01ca9..7c32365fe4 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NotificationEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/NotificationEffectiveStatement.java @@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface NotificationEffectiveStatement extends SchemaTreeEffectiveStatement, - SchemaTreeAwareEffectiveStatement { +public interface NotificationEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OutputEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OutputEffectiveStatement.java index c7fe425ced..79bca05481 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OutputEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/OutputEffectiveStatement.java @@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface OutputEffectiveStatement extends SchemaTreeEffectiveStatement, - SchemaTreeAwareEffectiveStatement { +public interface OutputEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RpcEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RpcEffectiveStatement.java index 6612cd5bd6..61af9e36f8 100644 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RpcEffectiveStatement.java +++ b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/RpcEffectiveStatement.java @@ -9,9 +9,9 @@ package org.opendaylight.yangtools.yang.model.api.stmt; import com.google.common.annotations.Beta; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; @Beta -public interface RpcEffectiveStatement extends SchemaTreeEffectiveStatement, - SchemaTreeAwareEffectiveStatement { +public interface RpcEffectiveStatement extends EffectiveStatement { } diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaTreeAwareEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaTreeAwareEffectiveStatement.java deleted file mode 100644 index 89ba9d8043..0000000000 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaTreeAwareEffectiveStatement.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.yangtools.yang.model.api.stmt; - -import static java.util.Objects.requireNonNull; - -import com.google.common.annotations.Beta; -import java.util.Optional; -import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.jdt.annotation.NonNullByDefault; -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; - -/** - * Interface implemented by all {@link EffectiveStatement}s which can contain a {@code schema tree} child. This tree - * can be walked using {@link SchemaNodeIdentifier}, looking up each component of - * {@link SchemaNodeIdentifier#getPathFromRoot()} using {@link #findSchemaTreeNode(QName)}. - * - * @param Argument type - * @param Class representing declared version of this statement. - * @author Robert Varga - */ -@Beta -public interface SchemaTreeAwareEffectiveStatement> extends EffectiveStatement { - /** - * Namespace of {@code schema node}s defined within this node. - * - * @param Child statement type - * @author Robert Varga - */ - @NonNullByDefault - abstract class Namespace> extends EffectiveStatementNamespace { - private Namespace() { - // Should never be instantiated - } - } - - /** - * Find a {@code schema tree} child {@link SchemaTreeEffectiveStatement}, as identified by its QName argument. - * - * @param qname Child identifier - * @return Schema tree child, or empty - * @throws NullPointerException if {@code qname} is null - */ - // FIXME: make sure this namespace is populated - default > @NonNull Optional findSchemaTreeNode( - final @NonNull QName qname) { - return Optional.ofNullable(get(Namespace.class, requireNonNull(qname))); - } -} diff --git a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaTreeEffectiveStatement.java b/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaTreeEffectiveStatement.java deleted file mode 100644 index 9468c2b7ac..0000000000 --- a/yang/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/stmt/SchemaTreeEffectiveStatement.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.yangtools.yang.model.api.stmt; - -import com.google.common.annotations.Beta; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.api.SchemaNode; -import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; -import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; - -/** - * Common interface grouping all {@link EffectiveStatement}s which are accessible via - * {@link SchemaTreeAwareEffectiveStatement.Namespace}. This such statement corresponds to a {@code schema node}. - * - *

- * This interface could be named {@code SchemaNodeEffectiveStatement}, but that could induce a notion that it has - * something to do with {@link SchemaNode} -- which it has not. SchemaNode semantics are wrong in may aspects - * and while implementations of this interface may also implement SchemaNode, the semantics of this interface should - * always be preferred and SchemaNode is to be treated as deprecated whenever possible. - * - * @param Declared statement type - * @author Robert Varga - */ -@Beta -public interface SchemaTreeEffectiveStatement> - extends NamespacedEffectiveStatement { - -} diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveDocumentedDataNodeContainer.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveDocumentedDataNodeContainer.java index ad8dea7b8e..e230ab7064 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveDocumentedDataNodeContainer.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveDocumentedDataNodeContainer.java @@ -35,7 +35,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; import org.opendaylight.yangtools.yang.parser.spi.source.AugmentToChoiceNamespace; public abstract class AbstractEffectiveDocumentedDataNodeContainer> - extends AbstractSchemaEffectiveDocumentedNode implements DataNodeContainer { + extends AbstractEffectiveDocumentedNode implements DataNodeContainer { private final Map childNodes; private final Set groupings; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveModule.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveModule.java index 22148d3024..6621bc20f8 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveModule.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveModule.java @@ -69,7 +69,7 @@ import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; @Beta public abstract class AbstractEffectiveModule> extends - AbstractSchemaEffectiveDocumentedNode implements Module, MutableStatement { + AbstractEffectiveDocumentedNode implements Module, MutableStatement { private final String name; private final String prefix; private final YangVersion yangVersion; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveSchemaNode.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveSchemaNode.java index 11b441531e..18f9c91fb9 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveSchemaNode.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractEffectiveSchemaNode.java @@ -19,7 +19,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; public abstract class AbstractEffectiveSchemaNode> extends - AbstractSchemaEffectiveDocumentedNode implements SchemaNode { + AbstractEffectiveDocumentedNode implements SchemaNode { private final SchemaPath path; private final List unknownNodes; diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractSchemaEffectiveDocumentedNode.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractSchemaEffectiveDocumentedNode.java deleted file mode 100644 index a3ccf19a05..0000000000 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/AbstractSchemaEffectiveDocumentedNode.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2018 Pantheon Technologies, s.r.o. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * terms of the Eclipse Public License v1.0 which accompanies this distribution, - * and is available at http://www.eclipse.org/legal/epl-v10.html - */ -package org.opendaylight.yangtools.yang.parser.rfc7950.stmt; - -import com.google.common.annotations.Beta; -import com.google.common.collect.ImmutableMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Optional; -import org.opendaylight.yangtools.yang.common.QName; -import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; -import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; -import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeAwareEffectiveStatement; -import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeEffectiveStatement; -import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.spi.source.SourceException; -import org.opendaylight.yangtools.yang.parser.spi.source.StatementSourceReference; - -/** - * An {@link AbstractEffectiveDocumentedNode} which can optionally support {@link SchemaTreeAwareEffectiveStatement}. - * - * @param Argument type ({@link Void} if statement does not have argument.) - * @param Class representing declared version of this statement. - * @author Robert Varga - */ -@Beta -public abstract class AbstractSchemaEffectiveDocumentedNode> - extends AbstractEffectiveDocumentedNode { - - private final Map> schemaTreeNamespace; - - protected AbstractSchemaEffectiveDocumentedNode(final StmtContext ctx) { - super(ctx); - - if (this instanceof SchemaTreeAwareEffectiveStatement) { - final StatementSourceReference ref = ctx.getStatementSourceReference(); - final Map> schemaChildren = new LinkedHashMap<>(); - streamEffectiveSubstatements(SchemaTreeEffectiveStatement.class).forEach(child -> { - putChild(schemaChildren, child, ref, "schema"); - }); - schemaTreeNamespace = ImmutableMap.copyOf(schemaChildren); - } else { - schemaTreeNamespace = ImmutableMap.of(); - } - } - - @Override - @SuppressWarnings("unchecked") - protected > Optional> getNamespaceContents( - final Class namespace) { - if (this instanceof SchemaTreeAwareEffectiveStatement - && SchemaTreeAwareEffectiveStatement.Namespace.class.equals(namespace)) { - return Optional.of((Map) schemaTreeNamespace); - } - return super.getNamespaceContents(namespace); - } - - private static > void putChild(final Map map, - final T child, final StatementSourceReference ref, final String tree) { - final QName id = child.getIdentifier(); - final T prev = map.putIfAbsent(id, child); - SourceException.throwIf(prev != null, ref, - "Cannot add %s tree child with name %s, a conflicting child already exists", tree, id); - } -} diff --git a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/UnknownEffectiveStatementBase.java b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/UnknownEffectiveStatementBase.java index c38505adc7..6f768095ce 100644 --- a/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/UnknownEffectiveStatementBase.java +++ b/yang/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/UnknownEffectiveStatementBase.java @@ -25,7 +25,7 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.CopyType; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; public abstract class UnknownEffectiveStatementBase> - extends AbstractSchemaEffectiveDocumentedNode implements UnknownSchemaNode { + extends AbstractEffectiveDocumentedNode implements UnknownSchemaNode { private final boolean addedByUses; private final boolean addedByAugmentation; -- 2.36.6