Remove SchemaNode.getPath() 39/96839/28
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 8 Jul 2021 13:18:46 +0000 (15:18 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 2 Sep 2021 11:18:06 +0000 (13:18 +0200)
SchemaPath is costing us almost 20% of retained EffectiveModelContext
memory. This facility is deprecated with precious few remaining users,
convert all users and remove everything related to the
SchemaNode/SchemaPath link.

This saves additional 0/8/8/0 bytes from InferredStatementContext.

JIRA: YANGTOOLS-1066
Change-Id: I0034b19a754f544187341f757f60a1fe25cda191
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
95 files changed:
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/AbstractAsContainer.java
data/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ContainerSchemaNodes.java
model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaContext.java
model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaNode.java
model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaNodeDefaults.java [deleted file]
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/EffectiveStatements.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/AbstractIdentityEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/AbstractLeafEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/ActionEffectiveStatementImpl.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/CaseEffectiveStatementMixin.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/ChoiceEffectiveStatementImpl.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/ContainerEffectiveStatementImpl.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/DeclaredCaseEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/DeclaredInputEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/DeclaredOutputEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyAnydataEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyAnyxmlEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyFeatureEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyIdentityEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/EmptyLeafEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/ExtensionEffectiveStatementImpl.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/GroupingEffectiveStatementImpl.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/NotificationEffectiveStatementImpl.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularAnydataEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularAnyxmlEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularFeatureEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularIdentityEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RegularLeafEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/RpcEffectiveStatementImpl.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/TypedefEffectiveStatementImpl.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/UndeclaredCaseEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/UndeclaredInputEffectiveStatement.java
model/yang-model-ri/src/main/java/org/opendaylight/yangtools/yang/model/ri/stmt/impl/eff/UndeclaredOutputEffectiveStatement.java
model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/AbstractDeclaredEffectiveStatement.java
model/yang-model-spi/src/main/java/org/opendaylight/yangtools/yang/model/spi/meta/EffectiveStatementMixins.java
parser/openconfig-parser-support/src/main/java/org/opendaylight/yangtools/openconfig/parser/OpenConfigHashedValueEffectiveStatementImpl.java
parser/rfc6241-parser-support/src/main/java/org/opendaylight/yangtools/rfc6241/parser/GetFilterElementAttributesEffectiveStatementImpl.java
parser/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyAllEffectiveStatementImpl.java
parser/rfc6536-parser-support/src/main/java/org/opendaylight/yangtools/rfc6536/parser/DefaultDenyWriteEffectiveStatementImpl.java
parser/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/AliasEffectiveStatementImpl.java
parser/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/DefValEffectiveStatementImpl.java
parser/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/DisplayHintEffectiveStatementImpl.java
parser/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/ImpliedEffectiveStatementImpl.java
parser/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/MaxAccessEffectiveStatementImpl.java
parser/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/OidEffectiveStatementImpl.java
parser/rfc6643-parser-support/src/main/java/org/opendaylight/yangtools/rfc6643/parser/SubIdEffectiveStatementImpl.java
parser/rfc7952-parser-support/src/main/java/org/opendaylight/yangtools/rfc7952/parser/AnnotationEffectiveStatementImpl.java
parser/rfc8040-parser-support/src/main/java/org/opendaylight/yangtools/rfc8040/parser/YangDataEffectiveStatementImpl.java
parser/rfc8528-parser-support/src/main/java/org/opendaylight/yangtools/rfc8528/parser/MountPointEffectiveStatementImpl.java
parser/rfc8528-parser-support/src/main/java/org/opendaylight/yangtools/rfc8528/parser/MountPointStatementSupport.java
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReplicaStatementContext.java
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/openconfig/stmt/OpenConfigVersionEffectiveStatementImpl.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/extension/ExtensionStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf_list/AbstractLeafListEffectiveStatement.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf_list/AbstractNonEmptyLeafListEffectiveStatement.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf_list/EmptyLeafListEffectiveStatement.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf_list/LeafListStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf_list/RegularLeafListEffectiveStatement.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/leaf_list/SlimLeafListEffectiveStatement.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/AbstractListEffectiveStatement.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/EmptyListEffectiveStatement.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/ListStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/list/RegularListEffectiveStatement.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/ActionStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/AnydataStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/AnyxmlStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/CaseStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/ChoiceStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/ContainerStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/FeatureStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/GroupingStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/IdentityStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/InputStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/LeafStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/OutputStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/RpcStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/TypedefStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/notification/AbstractNotificationStatementSupport.java
parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/AugmentTest.java
parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveBuildTest.java
parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveModuleTest.java
parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/EffectiveSchemaContextTest.java
parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/GroupingTest.java
parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/StmtTestUtils.java
parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/UsesAugmentTest.java
parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserSimpleTest.java
parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/stmt/YangParserTest.java
parser/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionEffectiveStatementImpl.java
parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/AbstractSchemaTreeStatementSupport.java
parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/EffectiveStmtCtx.java
parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/SchemaPathSupport.java [deleted file]

index 5aff91f2c81500315cf320f35e330dcbfec199d7..1fcdd5c560cd18eea3457e6841d5a2c86c78a3a4 100644 (file)
@@ -18,7 +18,6 @@ import org.opendaylight.yangtools.yang.model.api.ContainerLike;
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
 import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
@@ -47,12 +46,6 @@ abstract class AbstractAsContainer extends ForwardingObject implements Container
         return delegate().getQName();
     }
 
-    @Override
-    @Deprecated
-    public final SchemaPath getPath() {
-        return delegate().getPath();
-    }
-
     @Deprecated
     @Override
     public final boolean isAugmenting() {
index dcc87fbcbb6ea858c27e612c857a8817647fbe83..0dd693a4a74a8a8e922ee0d39ab0a0f50a07a6fa 100644 (file)
@@ -29,7 +29,6 @@ import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.OutputSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
@@ -84,12 +83,6 @@ public final class ContainerSchemaNodes {
             return schemaNode.getQName();
         }
 
-        @Override
-        @Deprecated
-        public SchemaPath getPath() {
-            return schemaNode.getPath();
-        }
-
         @Override
         public Optional<String> getDescription() {
             return schemaNode.getDescription();
index 89774deb0d8384e9cddf4bdebc8b898b169f5540..37e120753f5d0212938028b1e3ab1f56c295e027 100644 (file)
@@ -262,12 +262,6 @@ public interface SchemaContext extends ContainerLike, Immutable {
         return NAME;
     }
 
-    @Override
-    @Deprecated
-    default SchemaPath getPath() {
-        return SchemaPath.ROOT;
-    }
-
     @Override
     @Deprecated
     default Status getStatus() {
index d4f70a1efe41a1bca707b76d1c04d671a0de42d1..9ba302f2f99436a8df91aa2a6e4deee9b4c5d387 100644 (file)
@@ -20,31 +20,4 @@ public interface SchemaNode extends DocumentedNode.WithStatus {
      * @return QName with the name of the schema node
      */
     @NonNull QName getQName();
-
-    /**
-     * Returns the schema path of the instance of the type {@code SchemaNode}.
-     *
-     * <p>
-     * The default implementation throws an {@link UnsupportedOperationException}.
-     *
-     * @return schema path of the schema node
-     * @throws UnsupportedOperationException when the implementation does not support per-node unique paths
-     * @deprecated The idea of identifying SchemaNodes through a global path does not work. There are two problems:
-     *             <ul>
-     *               <li>SchemaPath does not work because it does not discern namespaces, i.e. we do not known whether
-     *                   the {@code QName} refers to a {@code grouping}, a {@code typedef} or a {@code container}.
-     *               </li>
-     *               <li>Such a path needs to be maintained by each SchemaNode and requires us to instantiate each
-     *                   effective statement as a separate object (because {@link #getPath()} is effectively an
-     *                   identity within a given {@link EffectiveModelContext}.
-     *               </li>
-     *             </ul>
-     *             An alternative method of exchanging pointers to schema nodes (well, statements, really), exists in
-     *             the form of {@link EffectiveStatementInference} and its ecosystem. This method is scheduled for
-     *             removal in the next major release.
-     */
-    @Deprecated(forRemoval = true)
-    default @NonNull SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupported(this);
-    }
 }
diff --git a/model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaNodeDefaults.java b/model/yang-model-api/src/main/java/org/opendaylight/yangtools/yang/model/api/SchemaNodeDefaults.java
deleted file mode 100644 (file)
index c88c835..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2020 PANTHEON.tech, 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;
-
-import static com.google.common.base.Verify.verifyNotNull;
-
-import com.google.common.annotations.Beta;
-import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
-import org.opendaylight.yangtools.yang.common.QName;
-
-@Beta
-@NonNullByDefault
-public final class SchemaNodeDefaults {
-    private SchemaNodeDefaults() {
-        // Hidden on purpose
-    }
-
-    /**
-     * Report unsupported {@link SchemaNode#getPath()} implementation. This method is guaranteed to throw an
-     * {@link UnsupportedOperationException}.
-     *
-     * @param impl {@code this} object of invoking implementation
-     * @return Nothing
-     * @throws NullPointerException if {@code impl} is null
-     * @throws UnsupportedOperationException always
-     * @see SchemaNode#getPath()
-     */
-    // FIXME: 8.0.0: consider deprecating this method
-    public static SchemaPath throwUnsupported(final Object impl) {
-        throw new UnsupportedOperationException(impl.getClass() + " does not support SchemaNode.getPath()");
-    }
-
-    /**
-     * Report unsupported {@link SchemaNode#getPath()} implementation if provided path is null.
-     *
-     * @param impl {@code this} object of invoking implementation
-     * @param path A schema path
-     * @return {@code path} if non-null
-     * @throws NullPointerException if {@code impl} is null
-     * @throws UnsupportedOperationException if @{code path} is null
-     * @see SchemaNode#getPath()
-     */
-    // FIXME: 8.0.0: consider deprecating this method
-    public static SchemaPath throwUnsupportedIfNull(final Object impl, final @Nullable SchemaPath path) {
-        return path != null ? path : throwUnsupported(impl);
-    }
-
-    /**
-     * Extract {@link QName} from a path object.
-     *
-     * @param path Path handle
-     * @return Extracted QName
-     * @throws NullPointerException if {@code path} is null
-     * @throws IllegalArgumentException if {@code path} is not supported
-     */
-    // FIXME: 8.0.0: consider deprecating this method
-    public static QName extractQName(final Immutable path) {
-        if (path instanceof QName) {
-            return (QName) path;
-        } else if (path instanceof SchemaPath) {
-            return verifyNotNull(((SchemaPath) path).getLastComponent());
-        } else {
-            throw new IllegalArgumentException("Unhandled object " + path);
-        }
-    }
-
-    /**
-     * Extract {@link SchemaPath} from a path object.
-     *
-     * @param impl Implementation object
-     * @param path Path handle
-     * @return Extracted SchemaPath
-     * @throws UnsupportedOperationException if {@code path} does not hold a SchemaPath
-     */
-    // FIXME: 8.0.0: consider deprecating this method
-    public static SchemaPath extractPath(final Object impl, final Immutable path) {
-        return path instanceof SchemaPath ? (SchemaPath) path : SchemaNodeDefaults.throwUnsupported(impl);
-    }
-}
index 70510c3631c68a6a23061b0023d4de4a60467c0a..2911fd35036d4903b1a5448a508bf34d3bc20e38 100644 (file)
@@ -15,7 +15,6 @@ import com.google.common.collect.ImmutableSet;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
@@ -26,7 +25,6 @@ import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ActionEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ActionStatement;
@@ -280,56 +278,56 @@ public final class EffectiveStatements {
         // Hidden on purpose
     }
 
-    public static ActionEffectiveStatement copyAction(final ActionEffectiveStatement original, final Immutable path,
+    public static ActionEffectiveStatement copyAction(final ActionEffectiveStatement original, final QName argument,
             final int flags) {
         checkArgument(original instanceof ActionEffectiveStatementImpl, "Unsupported original %s", original);
-        return new ActionEffectiveStatementImpl((ActionEffectiveStatementImpl) original, path, flags);
+        return new ActionEffectiveStatementImpl((ActionEffectiveStatementImpl) original, argument, flags);
     }
 
-    public static ActionEffectiveStatement createAction(final ActionStatement declared, final Immutable path,
+    public static ActionEffectiveStatement createAction(final ActionStatement declared, final QName argument,
             final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
                 throws SubstatementIndexingException {
-        return new ActionEffectiveStatementImpl(declared, path, flags, substatements);
+        return new ActionEffectiveStatementImpl(declared, argument, flags, substatements);
     }
 
-    public static AnydataEffectiveStatement copyAnydata(final AnydataEffectiveStatement original, final Immutable path,
+    public static AnydataEffectiveStatement copyAnydata(final AnydataEffectiveStatement original, final QName argument,
             final int flags, final @Nullable AnydataSchemaNode newOriginal) {
         if (original instanceof RegularAnydataEffectiveStatement) {
-            return new RegularAnydataEffectiveStatement((RegularAnydataEffectiveStatement) original, path, flags,
+            return new RegularAnydataEffectiveStatement((RegularAnydataEffectiveStatement) original, argument, flags,
                 newOriginal);
         } else if (original instanceof EmptyAnydataEffectiveStatement) {
-            return new EmptyAnydataEffectiveStatement((EmptyAnydataEffectiveStatement) original, path, flags,
+            return new EmptyAnydataEffectiveStatement((EmptyAnydataEffectiveStatement) original, argument, flags,
                 newOriginal);
         } else {
             throw new IllegalArgumentException("Unsupported original " + original);
         }
     }
 
-    public static AnydataEffectiveStatement createAnydata(final AnydataStatement declared, final Immutable path,
+    public static AnydataEffectiveStatement createAnydata(final AnydataStatement declared, final QName argument,
             final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final @Nullable AnydataSchemaNode original) {
-        return substatements.isEmpty() ? new EmptyAnydataEffectiveStatement(declared, path, flags, original)
-            : new RegularAnydataEffectiveStatement(declared, path, flags, original, substatements);
+        return substatements.isEmpty() ? new EmptyAnydataEffectiveStatement(declared, argument, flags, original)
+            : new RegularAnydataEffectiveStatement(declared, argument, flags, original, substatements);
     }
 
-    public static AnyxmlEffectiveStatement copyAnyxml(final AnyxmlEffectiveStatement original, final Immutable path,
+    public static AnyxmlEffectiveStatement copyAnyxml(final AnyxmlEffectiveStatement original, final QName argument,
             final int flags, final @Nullable AnyxmlSchemaNode newOriginal) {
         if (original instanceof RegularAnyxmlEffectiveStatement) {
-            return new RegularAnyxmlEffectiveStatement((RegularAnyxmlEffectiveStatement) original, path, flags,
+            return new RegularAnyxmlEffectiveStatement((RegularAnyxmlEffectiveStatement) original, argument, flags,
                 newOriginal);
         } else if (original instanceof EmptyAnyxmlEffectiveStatement) {
-            return new EmptyAnyxmlEffectiveStatement((EmptyAnyxmlEffectiveStatement) original, path, flags,
+            return new EmptyAnyxmlEffectiveStatement((EmptyAnyxmlEffectiveStatement) original, argument, flags,
                 newOriginal);
         } else {
             throw new IllegalArgumentException("Unsupported original " + original);
         }
     }
 
-    public static AnyxmlEffectiveStatement createAnyxml(final AnyxmlStatement declared, final Immutable path,
+    public static AnyxmlEffectiveStatement createAnyxml(final AnyxmlStatement declared, final QName argument,
             final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final @Nullable AnyxmlSchemaNode original) {
-        return substatements.isEmpty() ? new EmptyAnyxmlEffectiveStatement(declared, path, flags, original)
-            : new RegularAnyxmlEffectiveStatement(declared, path, flags, original, substatements);
+        return substatements.isEmpty() ? new EmptyAnyxmlEffectiveStatement(declared, argument, flags, original)
+            : new RegularAnyxmlEffectiveStatement(declared, argument, flags, original, substatements);
     }
 
     public static ArgumentEffectiveStatement createArgument(final ArgumentStatement declared,
@@ -363,41 +361,41 @@ public final class EffectiveStatements {
             : new RegularBitEffectiveStatement(declared, substatements);
     }
 
-    public static CaseEffectiveStatement copyCase(final CaseEffectiveStatement original,
-            final Immutable path, final int flags, final @Nullable CaseSchemaNode newOriginal) {
+    public static CaseEffectiveStatement copyCase(final CaseEffectiveStatement original, final QName argument,
+            final int flags, final @Nullable CaseSchemaNode newOriginal) {
         if (original instanceof DeclaredCaseEffectiveStatement) {
-            return new DeclaredCaseEffectiveStatement((DeclaredCaseEffectiveStatement) original, path, flags,
+            return new DeclaredCaseEffectiveStatement((DeclaredCaseEffectiveStatement) original, argument, flags,
                 newOriginal);
         } else if (original instanceof UndeclaredCaseEffectiveStatement) {
-            return new UndeclaredCaseEffectiveStatement((UndeclaredCaseEffectiveStatement) original, path, flags,
+            return new UndeclaredCaseEffectiveStatement((UndeclaredCaseEffectiveStatement) original, argument, flags,
                 newOriginal);
         } else {
             throw new IllegalArgumentException("Unsupported origin " + original);
         }
     }
 
-    public static CaseEffectiveStatement createCase(final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-                final @Nullable CaseSchemaNode original) {
-        return new UndeclaredCaseEffectiveStatement(substatements, path, flags, original);
+    public static CaseEffectiveStatement createCase(final QName argument, final int flags,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
+            final @Nullable CaseSchemaNode original) {
+        return new UndeclaredCaseEffectiveStatement(substatements, argument, flags, original);
     }
 
-    public static CaseEffectiveStatement createCase(final CaseStatement declared, final Immutable path,
+    public static CaseEffectiveStatement createCase(final CaseStatement declared, final QName argument,
             final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final @Nullable CaseSchemaNode original) {
-        return new DeclaredCaseEffectiveStatement(declared, substatements, path, flags, original);
+        return new DeclaredCaseEffectiveStatement(declared, substatements, argument, flags, original);
     }
 
     public static ChoiceEffectiveStatement copyChoice(final ChoiceEffectiveStatement original,
-            final Immutable path, final int flags, final @Nullable ChoiceSchemaNode newOriginal) {
+            final QName argument, final int flags, final @Nullable ChoiceSchemaNode newOriginal) {
         checkArgument(original instanceof ChoiceEffectiveStatementImpl, "Unsupported original %s", original);
-        return new ChoiceEffectiveStatementImpl((ChoiceEffectiveStatementImpl) original, path, flags, newOriginal);
+        return new ChoiceEffectiveStatementImpl((ChoiceEffectiveStatementImpl) original, argument, flags, newOriginal);
     }
 
-    public static ChoiceEffectiveStatement createChoice(final ChoiceStatement declared, final Immutable path,
+    public static ChoiceEffectiveStatement createChoice(final ChoiceStatement declared, final QName argument,
             final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final @Nullable CaseSchemaNode defaultCase, final @Nullable ChoiceSchemaNode original) {
-        return new ChoiceEffectiveStatementImpl(declared, substatements, path, flags, defaultCase, original);
+        return new ChoiceEffectiveStatementImpl(declared, substatements, argument, flags, defaultCase, original);
     }
 
     public static ConfigEffectiveStatement createConfig(final boolean argument) {
@@ -425,15 +423,15 @@ public final class EffectiveStatements {
     }
 
     public static ContainerEffectiveStatement copyContainer(final ContainerEffectiveStatement original,
-            final Immutable path, final int flags, final @Nullable ContainerSchemaNode orig) {
+            final QName argument, final int flags, final @Nullable ContainerSchemaNode orig) {
         checkArgument(original instanceof ContainerEffectiveStatementImpl, "Unsupported original %s", original);
-        return new ContainerEffectiveStatementImpl((ContainerEffectiveStatementImpl) original, path, flags, orig);
+        return new ContainerEffectiveStatementImpl((ContainerEffectiveStatementImpl) original, argument, flags, orig);
     }
 
-    public static ContainerEffectiveStatement createContainer(final ContainerStatement declared, final Immutable path,
+    public static ContainerEffectiveStatement createContainer(final ContainerStatement declared, final QName argument,
             final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final @Nullable ContainerSchemaNode original) {
-        return new ContainerEffectiveStatementImpl(declared, substatements, path, flags, original);
+        return new ContainerEffectiveStatementImpl(declared, substatements, argument, flags, original);
     }
 
     public static DefaultEffectiveStatement createDefault(final DefaultStatement declared,
@@ -477,15 +475,14 @@ public final class EffectiveStatements {
     }
 
     public static ExtensionEffectiveStatement createExtension(final ExtensionStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final @Nullable SchemaPath schemaPath) {
-        return new ExtensionEffectiveStatementImpl(declared, substatements, schemaPath);
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        return new ExtensionEffectiveStatementImpl(declared, substatements);
     }
 
-    public static FeatureEffectiveStatement createFeature(final FeatureStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return substatements.isEmpty() ? new EmptyFeatureEffectiveStatement(declared, path, flags)
-            : new RegularFeatureEffectiveStatement(declared, path, flags, substatements);
+    public static FeatureEffectiveStatement createFeature(final FeatureStatement declared, final int flags,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
+        return substatements.isEmpty() ? new EmptyFeatureEffectiveStatement(declared, flags)
+            : new RegularFeatureEffectiveStatement(declared, flags, substatements);
     }
 
     public static FractionDigitsEffectiveStatement createFractionDigits(final FractionDigitsStatement declared) {
@@ -499,9 +496,9 @@ public final class EffectiveStatements {
     }
 
     public static GroupingEffectiveStatement createGrouping(final GroupingStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final QName argument,
             final int flags) throws SubstatementIndexingException {
-        return new GroupingEffectiveStatementImpl(declared, substatements, path, flags);
+        return new GroupingEffectiveStatementImpl(declared, substatements, argument, flags);
     }
 
     public static IfFeatureEffectiveStatement createIfFeature(final IfFeatureStatement declared,
@@ -510,14 +507,14 @@ public final class EffectiveStatements {
             : new RegularIfFeatureEffectiveStatement(declared, substatements);
     }
 
-    public static IdentityEffectiveStatement createIdentity(final IdentityStatement declared, final Immutable path) {
-        return new EmptyIdentityEffectiveStatement(declared, path);
+    public static IdentityEffectiveStatement createIdentity(final IdentityStatement declared) {
+        return new EmptyIdentityEffectiveStatement(declared);
     }
 
-    public static IdentityEffectiveStatement createIdentity(final IdentityStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
+    public static IdentityEffectiveStatement createIdentity(final IdentityStatement declared, final int flags,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final ImmutableSet<IdentitySchemaNode> baseIdentities) {
-        return new RegularIdentityEffectiveStatement(declared, path, flags, substatements, baseIdentities);
+        return new RegularIdentityEffectiveStatement(declared, flags, substatements, baseIdentities);
     }
 
     public static ImportEffectiveStatement createImport(final ImportStatement declared,
@@ -532,27 +529,27 @@ public final class EffectiveStatements {
             : new RegularIncludeEffectiveStatement(declared, substatements);
     }
 
-    public static InputEffectiveStatement copyInput(final InputEffectiveStatement original, final Immutable path,
+    public static InputEffectiveStatement copyInput(final InputEffectiveStatement original, final QName argument,
             final int flags) {
         if (original instanceof DeclaredInputEffectiveStatement) {
-            return new DeclaredInputEffectiveStatement((DeclaredInputEffectiveStatement) original, path, flags);
+            return new DeclaredInputEffectiveStatement((DeclaredInputEffectiveStatement) original, argument, flags);
         } else if (original instanceof UndeclaredInputEffectiveStatement) {
-            return new UndeclaredInputEffectiveStatement((UndeclaredInputEffectiveStatement) original, path, flags);
+            return new UndeclaredInputEffectiveStatement((UndeclaredInputEffectiveStatement) original, argument, flags);
         } else {
             throw new IllegalArgumentException("Unsupported original " + original);
         }
     }
 
-    public static InputEffectiveStatement createInput(final Immutable path, final int flags,
+    public static InputEffectiveStatement createInput(final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
             throws SubstatementIndexingException {
-        return new UndeclaredInputEffectiveStatement(substatements, path, flags);
+        return new UndeclaredInputEffectiveStatement(substatements, argument, flags);
     }
 
-    public static InputEffectiveStatement createInput(final InputStatement declared, final Immutable path,
+    public static InputEffectiveStatement createInput(final InputStatement declared, final QName argument,
             final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
                 throws SubstatementIndexingException {
-        return new DeclaredInputEffectiveStatement(declared, substatements, path, flags);
+        return new DeclaredInputEffectiveStatement(declared, substatements, argument, flags);
     }
 
     public static KeyEffectiveStatement createKey(final KeyStatement declared, final Set<QName> argument,
@@ -565,17 +562,18 @@ public final class EffectiveStatements {
             : new RegularForeignKeyEffectiveStatement(declared, argument, substatements);
     }
 
-    public static LeafEffectiveStatement copyLeaf(final LeafEffectiveStatement original, final Immutable path,
+    public static LeafEffectiveStatement copyLeaf(final LeafEffectiveStatement original, final QName argument,
             final int flags, final @Nullable LeafSchemaNode newOriginal) {
         checkArgument(original instanceof AbstractLeafEffectiveStatement, "Unsupported original %s", original);
-        return new RegularLeafEffectiveStatement((AbstractLeafEffectiveStatement) original, path, flags, newOriginal);
+        return new RegularLeafEffectiveStatement((AbstractLeafEffectiveStatement) original, argument, flags,
+            newOriginal);
     }
 
-    public static LeafEffectiveStatement createLeaf(final LeafStatement declared, final Immutable path,
-            final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
+    public static LeafEffectiveStatement createLeaf(final LeafStatement declared, final QName argument, final int flags,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final @Nullable LeafSchemaNode original)  throws SubstatementIndexingException {
-        return original == null ? new EmptyLeafEffectiveStatement(declared, path, flags, substatements)
-            : new RegularLeafEffectiveStatement(declared, path, flags, substatements, original);
+        return original == null ? new EmptyLeafEffectiveStatement(declared, argument, flags, substatements)
+            : new RegularLeafEffectiveStatement(declared, argument, flags, substatements, original);
     }
 
     public static LengthEffectiveStatement createLength(final LengthStatement declared,
@@ -629,39 +627,40 @@ public final class EffectiveStatements {
     }
 
     public static NotificationEffectiveStatement copyNotification(final NotificationEffectiveStatement original,
-            final Immutable path, final int flags) {
+            final QName argument, final int flags) {
         checkArgument(original instanceof NotificationEffectiveStatementImpl, "Unsupported original %s", original);
-        return new NotificationEffectiveStatementImpl((NotificationEffectiveStatementImpl) original, path, flags);
+        return new NotificationEffectiveStatementImpl((NotificationEffectiveStatementImpl) original, argument, flags);
     }
 
     public static NotificationEffectiveStatement createNotification(final NotificationStatement declared,
-            final Immutable path, final int flags,
+            final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
                 throws SubstatementIndexingException {
-        return new NotificationEffectiveStatementImpl(declared, substatements, path, flags);
+        return new NotificationEffectiveStatementImpl(declared, substatements, argument, flags);
     }
 
-    public static OutputEffectiveStatement copyOutput(final OutputEffectiveStatement original, final Immutable path,
+    public static OutputEffectiveStatement copyOutput(final OutputEffectiveStatement original, final QName argument,
             final int flags) {
         if (original instanceof DeclaredOutputEffectiveStatement) {
-            return new DeclaredOutputEffectiveStatement((DeclaredOutputEffectiveStatement) original, path, flags);
+            return new DeclaredOutputEffectiveStatement((DeclaredOutputEffectiveStatement) original, argument, flags);
         } else if (original instanceof UndeclaredOutputEffectiveStatement) {
-            return new UndeclaredOutputEffectiveStatement((UndeclaredOutputEffectiveStatement) original, path, flags);
+            return new UndeclaredOutputEffectiveStatement((UndeclaredOutputEffectiveStatement) original, argument,
+                flags);
         } else {
             throw new IllegalArgumentException("Unsupported original " + original);
         }
     }
 
-    public static OutputEffectiveStatement createOutput(final Immutable path, final int flags,
+    public static OutputEffectiveStatement createOutput(final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
             throws SubstatementIndexingException {
-        return new UndeclaredOutputEffectiveStatement(substatements, path, flags);
+        return new UndeclaredOutputEffectiveStatement(substatements, argument, flags);
     }
 
-    public static OutputEffectiveStatement createOutput(final OutputStatement declared, final Immutable path,
+    public static OutputEffectiveStatement createOutput(final OutputStatement declared, final QName argument,
             final int flags, final ImmutableList<? extends EffectiveStatement<?, ?>> substatements)
                 throws SubstatementIndexingException {
-        return new DeclaredOutputEffectiveStatement(declared, substatements, path, flags);
+        return new DeclaredOutputEffectiveStatement(declared, substatements, argument, flags);
     }
 
     public static OrderedByEffectiveStatement createOrderedBy(final OrderedByStatement declared) {
@@ -767,9 +766,9 @@ public final class EffectiveStatements {
     }
 
     public static RpcEffectiveStatement createRpc(final RpcStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
-                final int flags) throws SubstatementIndexingException {
-        return new RpcEffectiveStatementImpl(declared, substatements, path, flags);
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final QName argument,
+            final int flags) throws SubstatementIndexingException {
+        return new RpcEffectiveStatementImpl(declared, substatements, argument, flags);
     }
 
     public static StatusEffectiveStatement createStatus(final StatusStatement declared) {
@@ -795,10 +794,9 @@ public final class EffectiveStatements {
             : new RegularStatusEffectiveStatement(declared, substatements);
     }
 
-    public static TypedefEffectiveStatement createTypedef(final TypedefStatement declared,
-            final Immutable path, final int flags,
+    public static TypedefEffectiveStatement createTypedef(final TypedefStatement declared, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return new TypedefEffectiveStatementImpl(declared, path, flags, substatements);
+        return new TypedefEffectiveStatementImpl(declared, flags, substatements);
     }
 
     public static UnitsEffectiveStatement createUnits(final UnitsStatement declared,
index 42ca57a3e79d5979af59c03e42307ff1b5afa843..ef0d9d5337334ee07de182cadb0c677554b69168 100644 (file)
@@ -7,11 +7,7 @@
  */
 package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
 
-import static java.util.Objects.requireNonNull;
-
 import com.google.common.base.MoreObjects;
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityEffectiveStatement;
@@ -20,17 +16,9 @@ import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveS
 import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.SchemaNodeMixin;
 
 abstract class AbstractIdentityEffectiveStatement extends DefaultArgument<QName, IdentityStatement>
-        implements IdentityEffectiveStatement, IdentitySchemaNode, SchemaNodeMixin<QName, IdentityStatement> {
-    private final @NonNull Immutable path;
-
-    AbstractIdentityEffectiveStatement(final IdentityStatement declared, final Immutable path) {
+        implements IdentityEffectiveStatement, IdentitySchemaNode, SchemaNodeMixin<IdentityStatement> {
+    AbstractIdentityEffectiveStatement(final IdentityStatement declared) {
         super(declared);
-        this.path = requireNonNull(path);
-    }
-
-    @Override
-    public final Immutable pathObject() {
-        return path;
     }
 
     @Override
@@ -40,6 +28,6 @@ abstract class AbstractIdentityEffectiveStatement extends DefaultArgument<QName,
 
     @Override
     public final String toString() {
-        return MoreObjects.toStringHelper(this).add("qname", getQName()).add("path", path).toString();
+        return MoreObjects.toStringHelper(this).add("qname", getQName()).toString();
     }
 }
index 2cd10957405e49f93f00a1120fd336579b0b5815..407bfa361b5c59f0d4014eab25390e969176f948 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
@@ -35,27 +34,27 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.M
 public abstract class AbstractLeafEffectiveStatement
         extends AbstractDeclaredEffectiveStatement.Default<QName, LeafStatement>
         implements LeafEffectiveStatement, LeafSchemaNode, DerivableSchemaNode,
-            DataSchemaNodeMixin<QName, LeafStatement>, MandatoryMixin<QName, LeafStatement>,
+            DataSchemaNodeMixin<LeafStatement>, MandatoryMixin<QName, LeafStatement>,
             MustConstraintMixin<QName, LeafStatement> {
     private final @NonNull Object substatements;
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final @NonNull TypeDefinition<?> type;
     private final int flags;
 
-    AbstractLeafEffectiveStatement(final LeafStatement declared, final Immutable path, final int flags,
+    AbstractLeafEffectiveStatement(final LeafStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(declared);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.substatements = maskList(substatements);
         this.flags = flags;
         // TODO: lazy instantiation?
         this.type = buildType();
     }
 
-    AbstractLeafEffectiveStatement(final AbstractLeafEffectiveStatement original, final Immutable path,
+    AbstractLeafEffectiveStatement(final AbstractLeafEffectiveStatement original, final QName argument,
             final int flags) {
         super(original);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.substatements = original.substatements;
         this.flags = flags;
         // FIXME: share with original?
@@ -74,12 +73,7 @@ public abstract class AbstractLeafEffectiveStatement
 
     @Override
     public final QName argument() {
-        return getQName();
-    }
-
-    @Override
-    public final Immutable pathObject() {
-        return path;
+        return argument;
     }
 
     @Override
index a638d2361fa537a6ab1e90b2ced89e89126da2be..09d9e15f34e1561e12349229a46e90f4f5a4c87e 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
@@ -25,26 +24,26 @@ public final class ActionEffectiveStatementImpl
         extends WithSubstatements<QName, ActionStatement, ActionEffectiveStatement>
         implements ActionDefinition, ActionEffectiveStatement, OperationDefinitionMixin<ActionStatement>,
                    CopyableMixin<QName, ActionStatement> {
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final int flags;
 
-    public ActionEffectiveStatementImpl(final ActionStatement declared, final Immutable path, final int flags,
+    public ActionEffectiveStatementImpl(final ActionStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(declared, substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
-    public ActionEffectiveStatementImpl(final ActionEffectiveStatementImpl original, final Immutable path,
+    public ActionEffectiveStatementImpl(final ActionEffectiveStatementImpl original, final QName argument,
             final int flags) {
         super(original);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
     @Override
-    public Immutable pathObject() {
-        return path;
+    public QName argument() {
+        return argument;
     }
 
     @Override
index e7d28980c1578eb5913b69fff025724739f81d80..206e34e0fd31a6a1ecf5922de21f39c1362c2430 100644 (file)
@@ -7,7 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
 
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode;
@@ -20,12 +19,11 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.D
 import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.MustConstraintMixin;
 
 interface CaseEffectiveStatementMixin extends CaseEffectiveStatement, CaseSchemaNode, DerivableSchemaNode,
-        DataSchemaNodeMixin<QName, CaseStatement>, DocumentedNodeMixin.WithStatus<QName, CaseStatement>,
+        DataSchemaNodeMixin<CaseStatement>, DocumentedNodeMixin.WithStatus<QName, CaseStatement>,
         DataNodeContainerMixin<QName, CaseStatement>, MustConstraintMixin<QName, CaseStatement>,
         AugmentationTargetMixin<QName, CaseStatement> {
-
     @Override
-    default @NonNull QName argument() {
-        return getQName();
+    default QName getQName() {
+        return argument();
     }
 }
index 27b143ee32ae1d7bb3b746e8ff9d565720025a7e..d0d2b51401971dcfc316d47d1b5ac6a6d660e886 100644 (file)
@@ -14,7 +14,6 @@ import java.util.Collection;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
@@ -31,41 +30,35 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.M
 public final class ChoiceEffectiveStatementImpl
         extends WithSubstatements<QName, ChoiceStatement, ChoiceEffectiveStatement>
         implements ChoiceEffectiveStatement, ChoiceSchemaNode, DerivableSchemaNode,
-                   DataSchemaNodeMixin<QName, ChoiceStatement>, AugmentationTargetMixin<QName, ChoiceStatement>,
+                   DataSchemaNodeMixin<ChoiceStatement>, AugmentationTargetMixin<QName, ChoiceStatement>,
                    MandatoryMixin<QName, ChoiceStatement> {
     private final CaseSchemaNode defaultCase;
     private final ChoiceSchemaNode original;
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final int flags;
 
     public ChoiceEffectiveStatementImpl(final ChoiceStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
-            final int flags, final @Nullable CaseSchemaNode defaultCase,
-            final @Nullable ChoiceSchemaNode original) {
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final QName argument,
+            final int flags, final @Nullable CaseSchemaNode defaultCase, final @Nullable ChoiceSchemaNode original) {
         super(declared, substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
         this.defaultCase = defaultCase;
         this.original = original;
     }
 
-    public ChoiceEffectiveStatementImpl(final ChoiceEffectiveStatementImpl origEffective, final Immutable path,
+    public ChoiceEffectiveStatementImpl(final ChoiceEffectiveStatementImpl origEffective, final QName argument,
             final int flags, final ChoiceSchemaNode newOriginal) {
         super(origEffective);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
         this.defaultCase = origEffective.defaultCase;
         this.original = newOriginal;
     }
 
     @Override
-    public @NonNull QName argument() {
-        return getQName();
-    }
-
-    @Override
-    public Immutable pathObject() {
-        return path;
+    public QName argument() {
+        return argument;
     }
 
     @Override
@@ -101,6 +94,6 @@ public final class ChoiceEffectiveStatementImpl
 
     @Override
     public String toString() {
-        return ChoiceEffectiveStatementImpl.class.getSimpleName() + "[" + "qname=" + getQName() + "]";
+        return ChoiceEffectiveStatementImpl.class.getSimpleName() + "[" + "qname=" + argument + "]";
     }
 }
index 6efe6e670c48dab9ce051bafacdd6b3c4c510127..35b768af13db0aef6c81a24616229362fab58cd5 100644 (file)
@@ -13,7 +13,6 @@ import com.google.common.collect.ImmutableList;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@@ -35,7 +34,7 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.P
 public final class ContainerEffectiveStatementImpl
         extends WithSubstatements<QName, ContainerStatement, ContainerEffectiveStatement>
         implements ContainerEffectiveStatement, ContainerSchemaNode, DerivableSchemaNode,
-            DataSchemaNodeMixin<QName, ContainerStatement>, DataNodeContainerMixin<QName, ContainerStatement>,
+            DataSchemaNodeMixin<ContainerStatement>, DataNodeContainerMixin<QName, ContainerStatement>,
             ActionNodeContainerMixin<QName, ContainerStatement>,
             ActionNodeContainerCompat<QName, ContainerStatement, ContainerEffectiveStatement>,
             NotificationNodeContainerMixin<QName, ContainerStatement>,
@@ -44,22 +43,22 @@ public final class ContainerEffectiveStatementImpl
             AugmentationTargetMixin<QName, ContainerStatement> {
 
     private final int flags;
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final @Nullable ContainerSchemaNode original;
 
     public ContainerEffectiveStatementImpl(final ContainerStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final QName argument,
             final int flags, final @Nullable ContainerSchemaNode original) {
         super(declared, substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.original = original;
         this.flags = flags;
     }
 
-    public ContainerEffectiveStatementImpl(final ContainerEffectiveStatementImpl origEffective, final Immutable path,
+    public ContainerEffectiveStatementImpl(final ContainerEffectiveStatementImpl origEffective, final QName argument,
             final int flags, final @Nullable ContainerSchemaNode original) {
         super(origEffective);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.original = original;
         this.flags = flags;
     }
@@ -71,12 +70,7 @@ public final class ContainerEffectiveStatementImpl
 
     @Override
     public QName argument() {
-        return getQName();
-    }
-
-    @Override
-    public Immutable pathObject() {
-        return path;
+        return argument;
     }
 
     @Override
@@ -101,6 +95,6 @@ public final class ContainerEffectiveStatementImpl
 
     @Override
     public String toString() {
-        return "container " + getQName().getLocalName();
+        return "container " + argument.getLocalName();
     }
 }
index bfbefe1d5c956bb08b85af2cfafa6547f60b0a10..09665b9e4c33bba08cfe8938977a058c813cdc91 100644 (file)
@@ -13,7 +13,6 @@ import com.google.common.collect.ImmutableList;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@@ -25,34 +24,34 @@ import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveS
 public final class DeclaredCaseEffectiveStatement
         extends WithSubstatements<QName, CaseStatement, CaseEffectiveStatement> implements CaseEffectiveStatementMixin {
     private final CaseSchemaNode original;
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final int flags;
 
     public DeclaredCaseEffectiveStatement(final CaseStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final QName argument,
             final int flags, final @Nullable CaseSchemaNode original) {
         super(declared, substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
         this.original = original;
     }
 
-    public DeclaredCaseEffectiveStatement(final DeclaredCaseEffectiveStatement origEffective, final Immutable path,
+    public DeclaredCaseEffectiveStatement(final DeclaredCaseEffectiveStatement origEffective, final QName argument,
             final int flags, final @Nullable CaseSchemaNode original) {
         super(origEffective);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
         this.original = original;
     }
 
     @Override
-    public int flags() {
-        return flags;
+    public QName argument() {
+        return argument;
     }
 
     @Override
-    public Immutable pathObject() {
-        return path;
+    public int flags() {
+        return flags;
     }
 
     @Override
@@ -72,6 +71,6 @@ public final class DeclaredCaseEffectiveStatement
 
     @Override
     public String toString() {
-        return DeclaredCaseEffectiveStatement.class.getSimpleName() + "[" + "qname=" + getQName() + "]";
+        return DeclaredCaseEffectiveStatement.class.getSimpleName() + "[" + "qname=" + argument + "]";
     }
 }
index 28033deccfe3eff5d4c89ad191950311831de7d9..b586ce7e72d3ecd449c73ce6160ab3600b7904df 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.InputSchemaNode;
@@ -24,27 +23,27 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.O
 public final class DeclaredInputEffectiveStatement
         extends WithSubstatements<QName, InputStatement, InputEffectiveStatement>
         implements InputEffectiveStatement, InputSchemaNode, OperationContainerMixin<InputStatement> {
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final int flags;
 
     public DeclaredInputEffectiveStatement(final InputStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final QName argument,
             final int flags) {
         super(declared, substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
-    public DeclaredInputEffectiveStatement(final DeclaredInputEffectiveStatement original, final Immutable path,
+    public DeclaredInputEffectiveStatement(final DeclaredInputEffectiveStatement original, final QName argument,
             final int flags) {
         super(original);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
     @Override
-    public Immutable pathObject() {
-        return path;
+    public QName argument() {
+        return argument;
     }
 
     @Override
index a9f07fa564357fb0dae5ec224e80fb6d5998e31a..376d9ee1cef8aba1ed8b96dc5878d75344de76b1 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.OutputSchemaNode;
@@ -24,27 +23,27 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.O
 public final class DeclaredOutputEffectiveStatement
         extends WithSubstatements<QName, OutputStatement, OutputEffectiveStatement>
         implements OutputEffectiveStatement, OutputSchemaNode, OperationContainerMixin<OutputStatement> {
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final int flags;
 
     public DeclaredOutputEffectiveStatement(final OutputStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final QName argument,
             final int flags) {
         super(declared, substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
-    public DeclaredOutputEffectiveStatement(final DeclaredOutputEffectiveStatement original, final Immutable path,
+    public DeclaredOutputEffectiveStatement(final DeclaredOutputEffectiveStatement original, final QName argument,
             final int flags) {
         super(original);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
     @Override
-    public Immutable pathObject() {
-        return path;
+    public QName argument() {
+        return argument;
     }
 
     @Override
index 34d5f2c22ae49d9adf8fdf5ac3466bebe62ab810..66e7591df0487235acf7caf11ed9f646633a8a47 100644 (file)
@@ -13,7 +13,6 @@ import com.google.common.base.MoreObjects;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
@@ -24,29 +23,29 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.O
 
 public class EmptyAnydataEffectiveStatement extends Default<QName, AnydataStatement>
         implements AnydataEffectiveStatement, AnydataSchemaNode, OpaqueDataSchemaNodeMixin<AnydataStatement> {
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final AnydataSchemaNode original;
     private final int flags;
 
-    public EmptyAnydataEffectiveStatement(final AnydataStatement declared, final Immutable path, final int flags,
+    public EmptyAnydataEffectiveStatement(final AnydataStatement declared, final QName argument, final int flags,
             final @Nullable AnydataSchemaNode original) {
         super(declared);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
         this.original = original;
     }
 
-    public EmptyAnydataEffectiveStatement(final EmptyAnydataEffectiveStatement original, final Immutable path,
+    public EmptyAnydataEffectiveStatement(final EmptyAnydataEffectiveStatement original, final QName argument,
             final int flags, final @Nullable AnydataSchemaNode newOriginal) {
         super(original);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
         this.original = newOriginal;
     }
 
     @Override
-    public final Immutable pathObject() {
-        return path;
+    public final QName argument() {
+        return argument;
     }
 
     @Override
index d1cab699ed4327595dd0ba0a612f72ce16b896d0..bc1445df9810f467832b3a130562dab40b422fa3 100644 (file)
@@ -13,7 +13,6 @@ import com.google.common.base.MoreObjects;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlEffectiveStatement;
@@ -23,29 +22,29 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.O
 
 public class EmptyAnyxmlEffectiveStatement extends Default<QName, AnyxmlStatement>
         implements AnyxmlEffectiveStatement, AnyxmlSchemaNode, OpaqueDataSchemaNodeMixin<AnyxmlStatement> {
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final AnyxmlSchemaNode original;
     private final int flags;
 
-    public EmptyAnyxmlEffectiveStatement(final AnyxmlStatement declared, final Immutable path, final int flags,
+    public EmptyAnyxmlEffectiveStatement(final AnyxmlStatement declared, final QName argument, final int flags,
             final @Nullable AnyxmlSchemaNode original) {
         super(declared);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
         this.original = original;
     }
 
-    public EmptyAnyxmlEffectiveStatement(final EmptyAnyxmlEffectiveStatement original, final Immutable path,
+    public EmptyAnyxmlEffectiveStatement(final EmptyAnyxmlEffectiveStatement original, final QName argument,
             final int flags, final @Nullable AnyxmlSchemaNode newOriginal) {
         super(original);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
         this.original = newOriginal;
     }
 
     @Override
-    public final Immutable pathObject() {
-        return path;
+    public final QName argument() {
+        return argument;
     }
 
     @Override
@@ -65,6 +64,6 @@ public class EmptyAnyxmlEffectiveStatement extends Default<QName, AnyxmlStatemen
 
     @Override
     public final String toString() {
-        return MoreObjects.toStringHelper(this).add("qname", getQName()).toString();
+        return MoreObjects.toStringHelper(this).add("qname", argument).toString();
     }
 }
index 7a61e1c30197743eaf103d41f9a10e17e1aac163..185b9c53877b47f5fe6544d3cd09b28e9d8750b7 100644 (file)
@@ -7,25 +7,19 @@
  */
 package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
 
-import static java.util.Objects.requireNonNull;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.FeatureDefinition;
 import org.opendaylight.yangtools.yang.model.api.stmt.FeatureEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.Default;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument;
 import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.SchemaNodeMixin;
 
-public class EmptyFeatureEffectiveStatement extends Default<QName, FeatureStatement>
-        implements FeatureDefinition, FeatureEffectiveStatement, SchemaNodeMixin<QName, FeatureStatement> {
-    private final @NonNull Immutable path;
+public class EmptyFeatureEffectiveStatement extends DefaultArgument<QName, FeatureStatement>
+        implements FeatureDefinition, FeatureEffectiveStatement, SchemaNodeMixin<FeatureStatement> {
     private final int flags;
 
-    public EmptyFeatureEffectiveStatement(final FeatureStatement declared, final Immutable path, final int flags) {
+    public EmptyFeatureEffectiveStatement(final FeatureStatement declared, final int flags) {
         super(declared);
-        this.path = requireNonNull(path);
         this.flags = flags;
     }
 
@@ -34,17 +28,6 @@ public class EmptyFeatureEffectiveStatement extends Default<QName, FeatureStatem
         return flags;
     }
 
-    @Override
-    public final @NonNull QName argument() {
-        return getQName();
-    }
-
-    @Override
-    @Deprecated
-    public final Immutable pathObject() {
-        return path;
-    }
-
     @Override
     public final FeatureEffectiveStatement asEffectiveStatement() {
         return this;
index c77bcb420407536d82d1694ae0f55bef334203c3..064e1af781b4dd045c315a2850e52e27137406c2 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
 
 import com.google.common.collect.ImmutableSet;
 import java.util.Collection;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
@@ -17,8 +16,8 @@ import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
 public final class EmptyIdentityEffectiveStatement extends AbstractIdentityEffectiveStatement {
     private static final int CURRENT_FLAGS = new FlagsBuilder().setStatus(Status.CURRENT).toFlags();
 
-    public EmptyIdentityEffectiveStatement(final IdentityStatement declared, final Immutable path) {
-        super(declared, path);
+    public EmptyIdentityEffectiveStatement(final IdentityStatement declared) {
+        super(declared);
     }
 
     @Override
index b06c26e2e1808558476ac54ce018703b30152be2..85acad97a99153042c58db673111be6b41e7abe3 100644 (file)
@@ -9,19 +9,16 @@ package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
 
 import com.google.common.collect.ImmutableList;
 import java.util.Optional;
-import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
 
 public final class EmptyLeafEffectiveStatement extends AbstractLeafEffectiveStatement {
-    public EmptyLeafEffectiveStatement(final LeafStatement declared, final Immutable path, final int flags,
+    public EmptyLeafEffectiveStatement(final LeafStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        super(declared, path, flags, substatements);
-    }
-
-    EmptyLeafEffectiveStatement(final EmptyLeafEffectiveStatement original, final Immutable path, final int flags) {
-        super(original, path, flags);
+        // FIXME: this seems to imply that argument.equals(declared.argument()) and we could save a field
+        super(declared, argument, flags, substatements);
     }
 
     @Override
index d2d3dc9c18f9ef7118c3e1d4a1a84b9df5b0c90d..5c962b208c1409e2de12c9cd9a9423397ec6cfd0 100644 (file)
@@ -12,11 +12,8 @@ import static com.google.common.base.Verify.verifyNotNull;
 import com.google.common.collect.ImmutableList;
 import java.util.ArrayDeque;
 import java.util.Deque;
-import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ArgumentEffectiveStatement;
@@ -63,14 +60,12 @@ public final class ExtensionEffectiveStatementImpl extends DefaultArgument<QName
 
     private static final RecursionDetector TOSTRING_DETECTOR = new RecursionDetector();
 
-    private final @Nullable SchemaPath path;
     private final Object substatements;
 
     public ExtensionEffectiveStatementImpl(final ExtensionStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final SchemaPath path) {
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(declared);
         this.substatements = maskList(substatements);
-        this.path = path;
     }
 
     @Override
@@ -78,12 +73,6 @@ public final class ExtensionEffectiveStatementImpl extends DefaultArgument<QName
         return argument();
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public String getArgument() {
         return findFirstEffectiveSubstatementArgument(ArgumentEffectiveStatement.class)
@@ -125,7 +114,6 @@ public final class ExtensionEffectiveStatementImpl extends DefaultArgument<QName
             return ExtensionEffectiveStatementImpl.class.getSimpleName() + "["
                     + "argument=" + getArgument()
                     + ", qname=" + getQName()
-                    + ", schemaPath=" + path
                     + ", yin=" + isYinElement()
                     + ", extensionSchemaNodes=" + getUnknownSchemaNodes()
                     + "]";
@@ -138,7 +126,6 @@ public final class ExtensionEffectiveStatementImpl extends DefaultArgument<QName
         return ExtensionEffectiveStatementImpl.class.getSimpleName() + "["
                 + "argument=" + getArgument()
                 + ", qname=" + getQName()
-                + ", schemaPath=" + path
                 + ", yin=" + isYinElement()
                 + " <RECURSIVE> ]";
     }
index e4dcfb5df0768557d8bef51eafa01b5fb204a44d..bd136d04d1deaa8517cedbd3b834efd8b4ca9458 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
@@ -28,17 +27,17 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.S
 public final class GroupingEffectiveStatementImpl
         extends WithSubstatements<QName, GroupingStatement, GroupingEffectiveStatement>
         implements GroupingDefinition, GroupingEffectiveStatement,
-            DataNodeContainerMixin<QName, GroupingStatement>,
-            SchemaNodeMixin<QName, GroupingStatement>, ActionNodeContainerMixin<QName, GroupingStatement>,
+            DataNodeContainerMixin<QName, GroupingStatement>, SchemaNodeMixin<GroupingStatement>,
+            ActionNodeContainerMixin<QName, GroupingStatement>,
             NotificationNodeContainerMixin<QName, GroupingStatement>, AddedByUsesMixin<QName, GroupingStatement> {
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final int flags;
 
     public GroupingEffectiveStatementImpl(final GroupingStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final QName argument,
             final int flags) {
         super(declared, substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
@@ -47,14 +46,9 @@ public final class GroupingEffectiveStatementImpl
         return flags;
     }
 
-    @Override
-    public Immutable pathObject() {
-        return path;
-    }
-
     @Override
     public QName argument() {
-        return getQName();
+        return argument;
     }
 
     @Override
@@ -69,6 +63,6 @@ public final class GroupingEffectiveStatementImpl
 
     @Override
     public String toString() {
-        return GroupingEffectiveStatementImpl.class.getSimpleName() + "[" + "qname=" + getQName() + "]";
+        return GroupingEffectiveStatementImpl.class.getSimpleName() + "[" + "qname=" + argument + "]";
     }
 }
index 70a5b3da2cb88680c50ba907beccc0de703d8f5b..df37d60d27e2769e4aa8298d24d227a2aff84c0c 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
@@ -28,31 +27,31 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.S
 public final class NotificationEffectiveStatementImpl
         extends WithSubstatements<QName, NotificationStatement, NotificationEffectiveStatement>
         implements NotificationDefinition, NotificationEffectiveStatement,
-                   SchemaNodeMixin<QName, NotificationStatement>, DataNodeContainerMixin<QName, NotificationStatement>,
+                   SchemaNodeMixin<NotificationStatement>, DataNodeContainerMixin<QName, NotificationStatement>,
                    AugmentationTargetMixin<QName, NotificationStatement>, CopyableMixin<QName, NotificationStatement>,
                    MustConstraintMixin<QName, NotificationStatement> {
 
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final int flags;
 
     public NotificationEffectiveStatementImpl(final NotificationStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final Immutable path,
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final QName argument,
             final int flags) {
         super(declared, substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
-    public NotificationEffectiveStatementImpl(final NotificationEffectiveStatementImpl original, final Immutable path,
+    public NotificationEffectiveStatementImpl(final NotificationEffectiveStatementImpl original, final QName argument,
             final int flags) {
         super(original);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
     @Override
     public QName argument() {
-        return getQName();
+        return argument;
     }
 
     @Override
@@ -65,11 +64,6 @@ public final class NotificationEffectiveStatementImpl
         return flags;
     }
 
-    @Override
-    public Immutable pathObject() {
-        return path;
-    }
-
     @Override
     public NotificationEffectiveStatement asEffectiveStatement() {
         return this;
@@ -77,7 +71,6 @@ public final class NotificationEffectiveStatementImpl
 
     @Override
     public String toString() {
-        return NotificationEffectiveStatementImpl.class.getSimpleName() + "[qname=" + getQName() + ", path=" + path
-                + "]";
+        return NotificationEffectiveStatementImpl.class.getSimpleName() + "[qname=" + argument + "]";
     }
 }
index 3d26258a27a0cedc3b4232abfcc6f48789f8cac7..c9d6da62822ab914b1778ac707a8ccc5f7c566bb 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnydataStatement;
@@ -21,16 +21,16 @@ import org.opendaylight.yangtools.yang.model.api.stmt.AnydataStatement;
 public final class RegularAnydataEffectiveStatement extends EmptyAnydataEffectiveStatement {
     private final @NonNull Object substatements;
 
-    public RegularAnydataEffectiveStatement(final AnydataStatement declared, final Immutable path, final int flags,
+    public RegularAnydataEffectiveStatement(final AnydataStatement declared, final QName argument, final int flags,
             final @Nullable AnydataSchemaNode original,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        super(declared, path, flags, original);
+        super(declared, argument, flags, original);
         this.substatements = maskList(substatements);
     }
 
-    public RegularAnydataEffectiveStatement(final RegularAnydataEffectiveStatement original, final Immutable path,
+    public RegularAnydataEffectiveStatement(final RegularAnydataEffectiveStatement original, final QName argument,
             final int flags, final @Nullable AnydataSchemaNode newOriginal) {
-        super(original, path, flags, newOriginal);
+        super(original, argument, flags, newOriginal);
         this.substatements = original.substatements;
     }
 
index b11cb6edbc4686fabae39faf786ed3423f682c92..bff540e2534774472a39cae80fa887971f86055f 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
@@ -18,16 +18,16 @@ import org.opendaylight.yangtools.yang.model.api.stmt.AnyxmlStatement;
 public final class RegularAnyxmlEffectiveStatement extends EmptyAnyxmlEffectiveStatement {
     private final @NonNull Object substatements;
 
-    public RegularAnyxmlEffectiveStatement(final AnyxmlStatement declared, final Immutable path, final int flags,
+    public RegularAnyxmlEffectiveStatement(final AnyxmlStatement declared, final QName argument, final int flags,
             final @Nullable AnyxmlSchemaNode original,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        super(declared, path, flags, original);
+        super(declared, argument, flags, original);
         this.substatements = maskList(substatements);
     }
 
-    public RegularAnyxmlEffectiveStatement(final RegularAnyxmlEffectiveStatement original, final Immutable path,
+    public RegularAnyxmlEffectiveStatement(final RegularAnyxmlEffectiveStatement original, final QName argument,
             final int flags, final @Nullable AnyxmlSchemaNode newOriginal) {
-        super(original, path, flags, newOriginal);
+        super(original, argument, flags, newOriginal);
         this.substatements = original.substatements;
     }
 
index 2d722a15d90699085395470ba4a9e2751575dcdb..d8ce4a4350e1554caaee15aa0109b2b6d7617529 100644 (file)
@@ -9,16 +9,15 @@ package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.FeatureStatement;
 
 public final class RegularFeatureEffectiveStatement extends EmptyFeatureEffectiveStatement {
     private final @NonNull Object substatements;
 
-    public RegularFeatureEffectiveStatement(final FeatureStatement declared, final Immutable path, final int flags,
+    public RegularFeatureEffectiveStatement(final FeatureStatement declared, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        super(declared, path, flags);
+        super(declared, flags);
         this.substatements = maskList(substatements);
     }
 
index be0e479fb611148951d9623d6feb214fe6d1fe77..627c3676d9be57cf02d19f197ba25f584f7aafb2 100644 (file)
@@ -11,7 +11,6 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import java.util.Collection;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.IdentityStatement;
@@ -21,10 +20,10 @@ public final class RegularIdentityEffectiveStatement extends AbstractIdentityEff
     private final @NonNull Object substatements;
     private final int flags;
 
-    public RegularIdentityEffectiveStatement(final IdentityStatement declared, final Immutable path, final int flags,
+    public RegularIdentityEffectiveStatement(final IdentityStatement declared, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final ImmutableSet<? extends IdentitySchemaNode> baseIdentities) {
-        super(declared, path);
+        super(declared);
         this.flags = flags;
         this.substatements = maskList(substatements);
         this.baseIdentities = maskSet(baseIdentities);
index 319b71a1425feea4542e885230d8780c9476e1ea..425d2601f4d80cb2a74624b4d81b9cc4a7fe6b3f 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
 import com.google.common.collect.ImmutableList;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
@@ -18,15 +18,15 @@ import org.opendaylight.yangtools.yang.model.api.stmt.LeafStatement;
 public final class RegularLeafEffectiveStatement extends AbstractLeafEffectiveStatement {
     private final @Nullable LeafSchemaNode original;
 
-    public RegularLeafEffectiveStatement(final LeafStatement declared, final Immutable path, final int flags,
+    public RegularLeafEffectiveStatement(final LeafStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final LeafSchemaNode original) {
-        super(declared, path, flags, substatements);
+        super(declared, argument, flags, substatements);
         this.original = original;
     }
 
-    public RegularLeafEffectiveStatement(final AbstractLeafEffectiveStatement originalEffective, final Immutable path,
+    public RegularLeafEffectiveStatement(final AbstractLeafEffectiveStatement originalEffective, final QName argument,
             final int flags, final LeafSchemaNode original) {
-        super(originalEffective, path, flags);
+        super(originalEffective, argument, flags);
         this.original = original;
     }
 
index b63e305ed73192995483535db572df51b69842f6..08504a9ace39ddb0676f1545c2b2013a2cbc0fc1 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
@@ -22,20 +21,20 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.O
 
 public final class RpcEffectiveStatementImpl extends WithSubstatements<QName, RpcStatement, RpcEffectiveStatement>
         implements RpcDefinition, RpcEffectiveStatement, OperationDefinitionMixin<RpcStatement> {
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final int flags;
 
     public RpcEffectiveStatementImpl(final RpcStatement declared,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final Immutable path, final int flags) {
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final QName argument,
+            final int flags) {
         super(declared, substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
     @Override
-    public Immutable pathObject() {
-        return path;
+    public QName argument() {
+        return argument;
     }
 
     @Override
index 4420629d50d4d7dda19f1bc1ce9beafc240a7075..b8957b3accf4172ff44fb8caff03b49ead8c1706 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.model.ri.stmt.impl.eff;
 
-import static java.util.Objects.requireNonNull;
-
 import com.google.common.collect.ImmutableList;
 import java.lang.invoke.MethodHandles;
 import java.lang.invoke.MethodHandles.Lookup;
@@ -17,7 +15,6 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
@@ -35,13 +32,13 @@ import org.opendaylight.yangtools.yang.model.api.stmt.TypedefStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnitsEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.ri.type.DerivedTypeBuilder;
 import org.opendaylight.yangtools.yang.model.ri.type.DerivedTypes;
-import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.Default;
+import org.opendaylight.yangtools.yang.model.spi.meta.AbstractDeclaredEffectiveStatement.DefaultArgument.WithSubstatements;
 import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.SchemaNodeMixin;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public final class TypedefEffectiveStatementImpl extends Default<QName, TypedefStatement>
-        implements TypedefEffectiveStatement, SchemaNodeMixin<QName, TypedefStatement> {
+public final class TypedefEffectiveStatementImpl extends WithSubstatements<QName, TypedefStatement>
+        implements TypedefEffectiveStatement, SchemaNodeMixin<TypedefStatement> {
     private static final Logger LOG = LoggerFactory.getLogger(TypedefEffectiveStatementImpl.class);
 
     private static final VarHandle TYPE_DEFINITION;
@@ -59,8 +56,6 @@ public final class TypedefEffectiveStatementImpl extends Default<QName, TypedefS
         }
     }
 
-    private final @NonNull Object substatements;
-    private final @NonNull Immutable path;
     private final int flags;
 
     // Accessed via TYPE_DEFINITION
@@ -70,12 +65,10 @@ public final class TypedefEffectiveStatementImpl extends Default<QName, TypedefS
     @SuppressWarnings("unused")
     private volatile ProxyTypeEffectiveStatement typeStatement;
 
-    public TypedefEffectiveStatementImpl(final TypedefStatement declared, final Immutable path, final int flags,
+    public TypedefEffectiveStatementImpl(final TypedefStatement declared, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        super(declared);
-        this.path = requireNonNull(path);
+        super(declared, substatements);
         this.flags = flags;
-        this.substatements = maskList(substatements);
     }
 
     @Override
@@ -83,21 +76,6 @@ public final class TypedefEffectiveStatementImpl extends Default<QName, TypedefS
         return flags;
     }
 
-    @Override
-    public Immutable pathObject() {
-        return path;
-    }
-
-    @Override
-    public @NonNull QName argument() {
-        return getQName();
-    }
-
-    @Override
-    public ImmutableList<? extends EffectiveStatement<?, ?>> effectiveSubstatements() {
-        return unmaskList(substatements);
-    }
-
     @Override
     public TypeDefinition<?> getTypeDefinition() {
         final TypeDefinition<?> existing = (TypeDefinition<?>) TYPE_DEFINITION.getAcquire(this);
@@ -112,7 +90,7 @@ public final class TypedefEffectiveStatementImpl extends Default<QName, TypedefS
 
     private @NonNull TypeDefinition<?> loadTypeDefinition() {
         final TypeEffectiveStatement<?> type = findFirstEffectiveSubstatement(TypeEffectiveStatement.class).get();
-        final DerivedTypeBuilder<?> builder = DerivedTypes.derivedTypeBuilder(type.getTypeDefinition(), getQName());
+        final DerivedTypeBuilder<?> builder = DerivedTypes.derivedTypeBuilder(type.getTypeDefinition(), argument());
 
         for (final EffectiveStatement<?, ?> stmt : effectiveSubstatements()) {
             if (stmt instanceof DefaultEffectiveStatement) {
@@ -168,7 +146,7 @@ public final class TypedefEffectiveStatementImpl extends Default<QName, TypedefS
 
         @Override
         public QName argument() {
-            return getQName();
+            return TypedefEffectiveStatementImpl.this.argument();
         }
 
         @Override
index f950b49a5eefdd660b6182ad1a11763ed26f1b53..d1bfa266244856de0b0b4d79861639e7b9f0f329 100644 (file)
@@ -13,7 +13,6 @@ import com.google.common.collect.ImmutableList;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@@ -25,33 +24,33 @@ import org.opendaylight.yangtools.yang.model.spi.meta.AbstractUndeclaredEffectiv
 public final class UndeclaredCaseEffectiveStatement
         extends WithSubstatements<QName, CaseStatement, CaseEffectiveStatement> implements CaseEffectiveStatementMixin {
     private final @Nullable CaseSchemaNode original;
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final int flags;
 
     public UndeclaredCaseEffectiveStatement(final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final Immutable path, final int flags, final @Nullable CaseSchemaNode original) {
+            final QName argument, final int flags, final @Nullable CaseSchemaNode original) {
         super(substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
         this.original = original;
     }
 
-    public UndeclaredCaseEffectiveStatement(final UndeclaredCaseEffectiveStatement origEffective, final Immutable path,
+    public UndeclaredCaseEffectiveStatement(final UndeclaredCaseEffectiveStatement origEffective, final QName argument,
             final int flags, final @Nullable CaseSchemaNode original) {
         super(origEffective);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
         this.original = original;
     }
 
     @Override
-    public int flags() {
-        return flags;
+    public QName argument() {
+        return argument;
     }
 
     @Override
-    public Immutable pathObject() {
-        return path;
+    public int flags() {
+        return flags;
     }
 
     @Override
@@ -71,6 +70,6 @@ public final class UndeclaredCaseEffectiveStatement
 
     @Override
     public String toString() {
-        return UndeclaredCaseEffectiveStatement.class.getSimpleName() + "[" + "qname=" + getQName() + "]";
+        return UndeclaredCaseEffectiveStatement.class.getSimpleName() + "[" + "qname=" + argument + "]";
     }
 }
index 60ac0d74844d04863d5c006df15b0260dea73fc8..38d061234f19d1b6d985c1fad6dfaf2f36f75ab6 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.InputSchemaNode;
@@ -24,26 +23,26 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.O
 public final class UndeclaredInputEffectiveStatement
         extends WithSubstatements<QName, InputStatement, InputEffectiveStatement>
         implements InputEffectiveStatement, InputSchemaNode, OperationContainerMixin<InputStatement> {
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final int flags;
 
     public UndeclaredInputEffectiveStatement(final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final Immutable path, final int flags) {
+            final QName argument, final int flags) {
         super(substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
-    public UndeclaredInputEffectiveStatement(final UndeclaredInputEffectiveStatement original, final Immutable path,
+    public UndeclaredInputEffectiveStatement(final UndeclaredInputEffectiveStatement original, final QName argument,
             final int flags) {
         super(original);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
     @Override
-    public Immutable pathObject() {
-        return path;
+    public QName argument() {
+        return argument;
     }
 
     @Override
index baf5381e2bf5a5b42311b63c1967a80d4efb6809..e0cd4abe0800df6c3b72cfa5d7a69649b714420e 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.OutputSchemaNode;
@@ -24,26 +23,26 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.O
 public final class UndeclaredOutputEffectiveStatement
         extends WithSubstatements<QName, OutputStatement, OutputEffectiveStatement>
         implements OutputEffectiveStatement, OutputSchemaNode, OperationContainerMixin<OutputStatement> {
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final int flags;
 
     public UndeclaredOutputEffectiveStatement(final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
-            final Immutable path, final int flags) {
+            final QName argument, final int flags) {
         super(substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
-    public UndeclaredOutputEffectiveStatement(final UndeclaredOutputEffectiveStatement original, final Immutable path,
+    public UndeclaredOutputEffectiveStatement(final UndeclaredOutputEffectiveStatement original, final QName argument,
             final int flags) {
         super(original);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.flags = flags;
     }
 
     @Override
-    public Immutable pathObject() {
-        return path;
+    public QName argument() {
+        return argument;
     }
 
     @Override
index 3d0490b2b37046c91186ef821107635f367bee7b..4db2cf10e5c39fbd640312bc95c7f50c140ee31d 100644 (file)
@@ -128,7 +128,7 @@ public abstract class AbstractDeclaredEffectiveStatement<A, D extends DeclaredSt
         }
 
         @Override
-        public final D getDeclared() {
+        public final @NonNull D getDeclared() {
             return declared;
         }
     }
index f8145f5367ce1583ef4da0c2c7f416c7e11fcac2..d9e1aed84faa18ab45f4803122654a34df6dddd0 100644 (file)
@@ -17,7 +17,6 @@ import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.concepts.Mutable;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -43,8 +42,6 @@ import org.opendaylight.yangtools.yang.model.api.NotificationNodeContainer;
 import org.opendaylight.yangtools.yang.model.api.OperationDefinition;
 import org.opendaylight.yangtools.yang.model.api.OutputSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
@@ -192,11 +189,10 @@ public final class EffectiveStatementMixins {
     /**
      * Bridge between {@link EffectiveStatementWithFlags} and {@link DataSchemaNode}.
      *
-     * @param <A> Argument type ({@link Empty} if statement does not have argument.)
      * @param <D> Class representing declared version of this statement.
      */
-    public interface DataSchemaNodeMixin<A, D extends DeclaredStatement<A>>
-            extends DataSchemaNode, CopyableMixin<A, D>, SchemaNodeMixin<A, D>, WhenConditionMixin<A, D> {
+    public interface DataSchemaNodeMixin<D extends DeclaredStatement<QName>>
+            extends DataSchemaNode, CopyableMixin<QName, D>, SchemaNodeMixin<D>, WhenConditionMixin<QName, D> {
         @Override
         default Optional<Boolean> effectiveConfig() {
             final int fl = flags() & FlagsBuilder.MASK_CONFIG;
@@ -309,24 +305,14 @@ public final class EffectiveStatementMixins {
     /**
      * Bridge between {@link EffectiveStatementWithFlags} and {@link SchemaNode}.
      *
-     * @param <A> Argument type ({@link Empty} if statement does not have argument.)
      * @param <D> Class representing declared version of this statement.
      */
-    public interface SchemaNodeMixin<A, D extends DeclaredStatement<A>>
-            extends DocumentedNodeMixin.WithStatus<A, D>, SchemaNode {
-        // FIXME: ditch all this complexity once we do not require SchemaPath
+    public interface SchemaNodeMixin<D extends DeclaredStatement<QName>>
+            extends DocumentedNodeMixin.WithStatus<QName, D>, SchemaNode {
         @Override
         default QName getQName() {
-            return SchemaNodeDefaults.extractQName(pathObject());
+            return argument();
         }
-
-        @Override
-        @Deprecated
-        default SchemaPath getPath() {
-            return SchemaNodeDefaults.extractPath(this, pathObject());
-        }
-
-        @NonNull Immutable pathObject();
     }
 
     /**
@@ -336,8 +322,7 @@ public final class EffectiveStatementMixins {
      * @param <D> Class representing declared version of this statement.
      */
     public interface UnknownSchemaNodeMixin<A, D extends DeclaredStatement<A>>
-            extends SchemaNodeMixin<A, D>, CopyableMixin<A, D>, UnknownSchemaNode {
-
+            extends DocumentedNodeMixin.WithStatus<A, D>, CopyableMixin<A, D>, UnknownSchemaNode {
         @Override
         default String getNodeParameter() {
             return Strings.nullToEmpty(getDeclared().rawArgument());
@@ -378,12 +363,7 @@ public final class EffectiveStatementMixins {
     public interface OperationContainerMixin<D extends DeclaredStatement<QName>>
             extends ContainerLike, DocumentedNodeMixin.WithStatus<QName, D>, DataNodeContainerMixin<QName, D>,
                     MustConstraintMixin<QName, D>, WhenConditionMixin<QName, D>, AugmentationTargetMixin<QName, D>,
-                    SchemaNodeMixin<QName, D>, CopyableMixin<QName, D> {
-        @Override
-        default @NonNull QName argument() {
-            return getQName();
-        }
-
+                    SchemaNodeMixin<D>, CopyableMixin<QName, D> {
         @Override
         default Optional<ActionDefinition> findAction(final QName qname) {
             return Optional.empty();
@@ -420,11 +400,11 @@ public final class EffectiveStatementMixins {
      * @param <D> Class representing declared version of this statement.
      */
     public interface OpaqueDataSchemaNodeMixin<D extends DeclaredStatement<QName>>
-            extends DerivableSchemaNode, DataSchemaNodeMixin<QName, D>, DocumentedNodeMixin.WithStatus<QName, D>,
+            extends DerivableSchemaNode, DataSchemaNodeMixin<D>, DocumentedNodeMixin.WithStatus<QName, D>,
                     MandatoryMixin<QName, D>, MustConstraintMixin<QName, D>, WhenConditionMixin<QName, D> {
         @Override
-        default @NonNull QName argument() {
-            return getQName();
+        default QName getQName() {
+            return argument();
         }
     }
 
@@ -434,12 +414,7 @@ public final class EffectiveStatementMixins {
      * @param <D> Class representing declared version of this statement.
      */
     public interface OperationDefinitionMixin<D extends DeclaredStatement<QName>>
-            extends SchemaNodeMixin<QName, D>, OperationDefinition {
-        @Override
-        default @NonNull QName argument() {
-            return getQName();
-        }
-
+            extends SchemaNodeMixin<D>, OperationDefinition {
         @Override
         default Collection<? extends @NonNull TypeDefinition<?>> getTypeDefinitions() {
             return filterTypeDefinitions(this);
index 75d7c94640b6eedf72ce78846bfeaea910d39abe..c22170d8f124e140fdc7a70fc3c96e1b9b6d5953 100644 (file)
@@ -9,42 +9,29 @@ package org.opendaylight.yangtools.openconfig.parser;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueEffectiveStatement;
 import org.opendaylight.yangtools.openconfig.model.api.OpenConfigHashedValueStatement;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class OpenConfigHashedValueEffectiveStatementImpl
         extends UnknownEffectiveStatementBase<Empty, OpenConfigHashedValueStatement>
         implements OpenConfigHashedValueEffectiveStatement {
     private final @NonNull StatementDefinition definition;
-    private final @NonNull Immutable path;
 
     OpenConfigHashedValueEffectiveStatementImpl(final Current<Empty, OpenConfigHashedValueStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
         definition = stmt.publicDefinition();
-        path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
-                .createChild(stmt.publicDefinition().getStatementName()));
     }
 
     @Override
     public QName getQName() {
-        return SchemaNodeDefaults.extractQName(path);
-    }
-
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.extractPath(this, path);
+        return definition.getStatementName();
     }
 
     @Override
index 70114076e9802905928be349c88617f21c533590..63ddc575f116e49ec2843f3df4ab1eb041a00f1d 100644 (file)
@@ -9,40 +9,29 @@ package org.opendaylight.yangtools.rfc6241.parser;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesEffectiveStatement;
 import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesSchemaNode;
 import org.opendaylight.yangtools.rfc6241.model.api.GetFilterElementAttributesStatement;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class GetFilterElementAttributesEffectiveStatementImpl
         extends UnknownEffectiveStatementBase<Empty, GetFilterElementAttributesStatement>
         implements GetFilterElementAttributesEffectiveStatement, GetFilterElementAttributesSchemaNode {
-    private final @NonNull Immutable path;
+    private final @NonNull QName qname;
 
     GetFilterElementAttributesEffectiveStatementImpl(final Current<Empty, GetFilterElementAttributesStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
-                .createChild(stmt.publicDefinition().getStatementName()));
+        qname = stmt.publicDefinition().getStatementName();
     }
 
     @Override
     public QName getQName() {
-        return SchemaNodeDefaults.extractQName(path);
-    }
-
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.extractPath(this, path);
+        return qname;
     }
 
     @Override
index 62f94f950c34f8eff70294c0a3aaa5bc5b1556bb..8d154033f0914f3b39e3c9da99f5475d8ac74bc6 100644 (file)
@@ -9,39 +9,28 @@ package org.opendaylight.yangtools.rfc6536.parser;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllEffectiveStatement;
 import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllSchemaNode;
 import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyAllStatement;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class DefaultDenyAllEffectiveStatementImpl extends UnknownEffectiveStatementBase<Empty, DefaultDenyAllStatement>
         implements DefaultDenyAllEffectiveStatement, DefaultDenyAllSchemaNode {
-    private final @NonNull Immutable path;
+    private final @NonNull QName qname;
 
     DefaultDenyAllEffectiveStatementImpl(final Current<Empty, DefaultDenyAllStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
-                .createChild(stmt.publicDefinition().getStatementName()));
+        qname = stmt.publicDefinition().getStatementName();
     }
 
     @Override
     public QName getQName() {
-        return SchemaNodeDefaults.extractQName(path);
-    }
-
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.extractPath(this, path);
+        return qname;
     }
 
     @Override
index 8591b31d58e912bfea4b0697798ea43a05063a5e..c00e1f0f085bd002dcba270ea6fc05eecc8c1a12 100644 (file)
@@ -9,40 +9,29 @@ package org.opendaylight.yangtools.rfc6536.parser;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteEffectiveStatement;
 import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteSchemaNode;
 import org.opendaylight.yangtools.rfc6536.model.api.DefaultDenyWriteStatement;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class DefaultDenyWriteEffectiveStatementImpl
         extends UnknownEffectiveStatementBase<Empty, DefaultDenyWriteStatement>
         implements DefaultDenyWriteEffectiveStatement, DefaultDenyWriteSchemaNode {
-    private final @NonNull Immutable path;
+    private final @NonNull QName qname;
 
     DefaultDenyWriteEffectiveStatementImpl(final Current<Empty, DefaultDenyWriteStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toEffectivePath(stmt.getEffectiveParent().getSchemaPath()
-                .createChild(stmt.publicDefinition().getStatementName()));
+        qname = stmt.publicDefinition().getStatementName();
     }
 
     @Override
     public QName getQName() {
-        return SchemaNodeDefaults.extractQName(path);
-    }
-
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.extractPath(this, path);
+        return qname;
     }
 
     @Override
index 2a7b56cd4ef48f4d0445fbf9456a7b8e5c5c3427..a4db71548f0eb89187c5ba5fa3c78a2b188e02a5 100644 (file)
@@ -13,21 +13,15 @@ import org.opendaylight.yangtools.rfc6643.model.api.AliasEffectiveStatement;
 import org.opendaylight.yangtools.rfc6643.model.api.AliasSchemaNode;
 import org.opendaylight.yangtools.rfc6643.model.api.AliasStatement;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class AliasEffectiveStatementImpl extends UnknownEffectiveStatementBase<String, AliasStatement>
         implements AliasEffectiveStatement, AliasSchemaNode {
-    private final SchemaPath path;
-
     AliasEffectiveStatementImpl(final Current<String, AliasStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()));
     }
 
     @Override
@@ -35,12 +29,6 @@ final class AliasEffectiveStatementImpl extends UnknownEffectiveStatementBase<St
         return getNodeType();
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public AliasEffectiveStatement asEffectiveStatement() {
         return this;
@@ -48,7 +36,7 @@ final class AliasEffectiveStatementImpl extends UnknownEffectiveStatementBase<St
 
     @Override
     public int hashCode() {
-        return Objects.hash(path, getNodeType(), getNodeParameter());
+        return Objects.hash(getNodeType(), getNodeParameter());
     }
 
     @Override
@@ -61,6 +49,6 @@ final class AliasEffectiveStatementImpl extends UnknownEffectiveStatementBase<St
         }
         final AliasEffectiveStatementImpl other = (AliasEffectiveStatementImpl) obj;
         return Objects.equals(getNodeType(), other.getNodeType())
-            && Objects.equals(getNodeParameter(), other.getNodeParameter()) && Objects.equals(path, other.path);
+            && Objects.equals(getNodeParameter(), other.getNodeParameter());
     }
 }
index 2f2ca9f8b285dc82e38f96ba62f5d719b74bc885..c7975fd98af6d900959a4cb37660f2623fa0ab69 100644 (file)
@@ -13,21 +13,15 @@ import org.opendaylight.yangtools.rfc6643.model.api.DefValEffectiveStatement;
 import org.opendaylight.yangtools.rfc6643.model.api.DefValSchemaNode;
 import org.opendaylight.yangtools.rfc6643.model.api.DefValStatement;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class DefValEffectiveStatementImpl extends UnknownEffectiveStatementBase<String, DefValStatement>
         implements DefValEffectiveStatement, DefValSchemaNode {
-    private final SchemaPath path;
-
     DefValEffectiveStatementImpl(final Current<String, DefValStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()));
     }
 
     @Override
@@ -35,12 +29,6 @@ final class DefValEffectiveStatementImpl extends UnknownEffectiveStatementBase<S
         return getNodeType();
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public DefValEffectiveStatement asEffectiveStatement() {
         return this;
@@ -48,7 +36,7 @@ final class DefValEffectiveStatementImpl extends UnknownEffectiveStatementBase<S
 
     @Override
     public int hashCode() {
-        return Objects.hash(path, getNodeType(), getNodeParameter());
+        return Objects.hash(getNodeType(), getNodeParameter());
     }
 
     @Override
@@ -61,6 +49,6 @@ final class DefValEffectiveStatementImpl extends UnknownEffectiveStatementBase<S
         }
         final DefValEffectiveStatementImpl other = (DefValEffectiveStatementImpl) obj;
         return Objects.equals(getNodeType(), other.getNodeType())
-            && Objects.equals(getNodeParameter(), other.getNodeParameter()) && Objects.equals(path, other.path);
+            && Objects.equals(getNodeParameter(), other.getNodeParameter());
     }
 }
index cb836ce2e50b266bea8047f106f861c86609b2eb..68997dbc363404e1f605dea6000326f48fe2dbbb 100644 (file)
@@ -13,21 +13,15 @@ import org.opendaylight.yangtools.rfc6643.model.api.DisplayHintEffectiveStatemen
 import org.opendaylight.yangtools.rfc6643.model.api.DisplayHintSchemaNode;
 import org.opendaylight.yangtools.rfc6643.model.api.DisplayHintStatement;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class DisplayHintEffectiveStatementImpl extends UnknownEffectiveStatementBase<String, DisplayHintStatement>
         implements DisplayHintEffectiveStatement, DisplayHintSchemaNode {
-    private final SchemaPath path;
-
     DisplayHintEffectiveStatementImpl(final Current<String, DisplayHintStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()));
     }
 
     @Override
@@ -35,12 +29,6 @@ final class DisplayHintEffectiveStatementImpl extends UnknownEffectiveStatementB
         return getNodeType();
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public DisplayHintEffectiveStatement asEffectiveStatement() {
         return this;
@@ -48,7 +36,7 @@ final class DisplayHintEffectiveStatementImpl extends UnknownEffectiveStatementB
 
     @Override
     public int hashCode() {
-        return Objects.hash(path, getNodeType(), getNodeParameter());
+        return Objects.hash(getNodeType(), getNodeParameter());
     }
 
     @Override
@@ -61,6 +49,6 @@ final class DisplayHintEffectiveStatementImpl extends UnknownEffectiveStatementB
         }
         final DisplayHintEffectiveStatementImpl other = (DisplayHintEffectiveStatementImpl) obj;
         return Objects.equals(getNodeType(), other.getNodeType())
-            && Objects.equals(getNodeParameter(), other.getNodeParameter()) && Objects.equals(path, other.path);
+            && Objects.equals(getNodeParameter(), other.getNodeParameter());
     }
 }
index 22a014095057cf20a4b27987544e61207735a52d..6b32599c05dc34d81c1a05907651508c16f34a90 100644 (file)
@@ -13,22 +13,15 @@ import org.opendaylight.yangtools.rfc6643.model.api.ImpliedEffectiveStatement;
 import org.opendaylight.yangtools.rfc6643.model.api.ImpliedSchemaNode;
 import org.opendaylight.yangtools.rfc6643.model.api.ImpliedStatement;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class ImpliedEffectiveStatementImpl extends UnknownEffectiveStatementBase<String, ImpliedStatement>
         implements ImpliedEffectiveStatement, ImpliedSchemaNode {
-
-    private final SchemaPath path;
-
     ImpliedEffectiveStatementImpl(final Current<String, ImpliedStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()));
     }
 
     @Override
@@ -36,12 +29,6 @@ final class ImpliedEffectiveStatementImpl extends UnknownEffectiveStatementBase<
         return getNodeType();
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public ImpliedEffectiveStatement asEffectiveStatement() {
         return this;
@@ -49,7 +36,7 @@ final class ImpliedEffectiveStatementImpl extends UnknownEffectiveStatementBase<
 
     @Override
     public int hashCode() {
-        return Objects.hash(path, getNodeType(), getNodeParameter());
+        return Objects.hash(getNodeType(), getNodeParameter());
     }
 
     @Override
@@ -62,6 +49,6 @@ final class ImpliedEffectiveStatementImpl extends UnknownEffectiveStatementBase<
         }
         final ImpliedEffectiveStatementImpl other = (ImpliedEffectiveStatementImpl) obj;
         return Objects.equals(getNodeType(), other.getNodeType())
-            && Objects.equals(getNodeParameter(), other.getNodeParameter()) && Objects.equals(path, other.path);
+            && Objects.equals(getNodeParameter(), other.getNodeParameter());
     }
 }
index 1abda1d33ec58bde10458a85517d1f7db379e351..45b474b63187bd55f25bbda198873d38a8a4678b 100644 (file)
@@ -14,21 +14,15 @@ import org.opendaylight.yangtools.rfc6643.model.api.MaxAccessEffectiveStatement;
 import org.opendaylight.yangtools.rfc6643.model.api.MaxAccessSchemaNode;
 import org.opendaylight.yangtools.rfc6643.model.api.MaxAccessStatement;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class MaxAccessEffectiveStatementImpl extends UnknownEffectiveStatementBase<MaxAccess, MaxAccessStatement>
         implements MaxAccessEffectiveStatement, MaxAccessSchemaNode {
-    private final SchemaPath path;
-
     MaxAccessEffectiveStatementImpl(final Current<MaxAccess, MaxAccessStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()));
     }
 
     @Override
@@ -41,12 +35,6 @@ final class MaxAccessEffectiveStatementImpl extends UnknownEffectiveStatementBas
         return getNodeType();
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public MaxAccessEffectiveStatement asEffectiveStatement() {
         return this;
@@ -54,7 +42,7 @@ final class MaxAccessEffectiveStatementImpl extends UnknownEffectiveStatementBas
 
     @Override
     public int hashCode() {
-        return Objects.hash(path, getNodeType(), getNodeParameter());
+        return Objects.hash(getNodeType(), getNodeParameter());
     }
 
     @Override
@@ -67,6 +55,6 @@ final class MaxAccessEffectiveStatementImpl extends UnknownEffectiveStatementBas
         }
         final MaxAccessEffectiveStatementImpl other = (MaxAccessEffectiveStatementImpl) obj;
         return Objects.equals(getNodeType(), other.getNodeType())
-            && Objects.equals(getNodeParameter(), other.getNodeParameter()) && Objects.equals(path, other.path);
+            && Objects.equals(getNodeParameter(), other.getNodeParameter());
     }
 }
index 8df7a5cc1017d8c325a0692a92cd0ea814e4c437..e95d7e80529787c824a2a6db7f48d558363a356a 100644 (file)
@@ -14,22 +14,15 @@ import org.opendaylight.yangtools.rfc6643.model.api.OidEffectiveStatement;
 import org.opendaylight.yangtools.rfc6643.model.api.OidSchemaNode;
 import org.opendaylight.yangtools.rfc6643.model.api.OidStatement;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class OidEffectiveStatementImpl extends UnknownEffectiveStatementBase<ObjectIdentifier, OidStatement>
         implements OidEffectiveStatement, OidSchemaNode {
-
-    private final SchemaPath path;
-
     OidEffectiveStatementImpl(final Current<ObjectIdentifier, OidStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()));
     }
 
     @Override
@@ -37,12 +30,6 @@ final class OidEffectiveStatementImpl extends UnknownEffectiveStatementBase<Obje
         return getNodeType();
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public OidEffectiveStatement asEffectiveStatement() {
         return this;
@@ -50,7 +37,7 @@ final class OidEffectiveStatementImpl extends UnknownEffectiveStatementBase<Obje
 
     @Override
     public int hashCode() {
-        return Objects.hash(path, getNodeType(), getNodeParameter());
+        return Objects.hash(getNodeType(), getNodeParameter());
     }
 
     @Override
@@ -63,6 +50,6 @@ final class OidEffectiveStatementImpl extends UnknownEffectiveStatementBase<Obje
         }
         final OidEffectiveStatementImpl other = (OidEffectiveStatementImpl) obj;
         return Objects.equals(getNodeType(), other.getNodeType())
-            && Objects.equals(getNodeParameter(), other.getNodeParameter()) && Objects.equals(path, other.path);
+            && Objects.equals(getNodeParameter(), other.getNodeParameter());
     }
 }
\ No newline at end of file
index 803975707e3678873a43d21e540019dbea344d1c..bff1f50ba5b7916bb78830297922d629f0694d85 100644 (file)
@@ -14,22 +14,15 @@ import org.opendaylight.yangtools.rfc6643.model.api.SubIdSchemaNode;
 import org.opendaylight.yangtools.rfc6643.model.api.SubIdStatement;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Uint32;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class SubIdEffectiveStatementImpl extends UnknownEffectiveStatementBase<Uint32, SubIdStatement>
         implements SubIdEffectiveStatement, SubIdSchemaNode {
-
-    private final SchemaPath path;
-
     SubIdEffectiveStatementImpl(final Current<Uint32, SubIdStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()));
     }
 
     @Override
@@ -37,12 +30,6 @@ final class SubIdEffectiveStatementImpl extends UnknownEffectiveStatementBase<Ui
         return getNodeType();
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public SubIdEffectiveStatement asEffectiveStatement() {
         return this;
@@ -50,7 +37,7 @@ final class SubIdEffectiveStatementImpl extends UnknownEffectiveStatementBase<Ui
 
     @Override
     public int hashCode() {
-        return Objects.hash(path, getNodeType(), getNodeParameter());
+        return Objects.hash(getNodeType(), getNodeParameter());
     }
 
     @Override
@@ -63,6 +50,6 @@ final class SubIdEffectiveStatementImpl extends UnknownEffectiveStatementBase<Ui
         }
         final SubIdEffectiveStatementImpl other = (SubIdEffectiveStatementImpl) obj;
         return Objects.equals(getNodeType(), other.getNodeType())
-            && Objects.equals(getNodeParameter(), other.getNodeParameter()) && Objects.equals(path, other.path);
+            && Objects.equals(getNodeParameter(), other.getNodeParameter());
     }
 }
index b011315330bbdb01e966df2aea7603de8fce743f..3decdf81ae9628fb90e6818d4569e2b27b5ccef0 100644 (file)
@@ -11,13 +11,10 @@ import static com.google.common.base.Verify.verifyNotNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.rfc7952.model.api.AnnotationEffectiveStatement;
 import org.opendaylight.yangtools.rfc7952.model.api.AnnotationSchemaNode;
 import org.opendaylight.yangtools.rfc7952.model.api.AnnotationStatement;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.TypeEffectiveStatement;
@@ -26,13 +23,11 @@ import org.opendaylight.yangtools.yang.model.ri.type.ConcreteTypeBuilder;
 import org.opendaylight.yangtools.yang.model.ri.type.ConcreteTypes;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
 
 final class AnnotationEffectiveStatementImpl extends UnknownEffectiveStatementBase<QName, AnnotationStatement>
         implements AnnotationEffectiveStatement, AnnotationSchemaNode {
     private final @NonNull TypeDefinition<?> type;
-    private final @Nullable SchemaPath path;
 
     AnnotationEffectiveStatementImpl(final Current<QName, AnnotationStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
@@ -51,8 +46,6 @@ final class AnnotationEffectiveStatementImpl extends UnknownEffectiveStatementBa
             builder.setUnits(unitsStmt.argument());
         }
         type = builder.build();
-
-        path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(qname));
     }
 
     @Override
@@ -60,12 +53,6 @@ final class AnnotationEffectiveStatementImpl extends UnknownEffectiveStatementBa
         return verifyNotNull(argument());
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public TypeDefinition<?> getType() {
         return type;
index ff7b8d86b095b0e9dbe39760c0cd31488188f3b2..29e1a7ef47fe271be5e449d97626005da2e57295 100644 (file)
@@ -16,14 +16,11 @@ import com.google.common.collect.ImmutableList;
 import java.util.Map;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.rfc8040.model.api.YangDataEffectiveStatement;
 import org.opendaylight.yangtools.rfc8040.model.api.YangDataSchemaNode;
 import org.opendaylight.yangtools.rfc8040.model.api.YangDataStatement;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 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;
@@ -31,12 +28,10 @@ import org.opendaylight.yangtools.yang.model.api.stmt.DataTreeAwareEffectiveStat
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaTreeAwareEffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 @Beta
 final class YangDataEffectiveStatementImpl extends UnknownEffectiveStatementBase<String, YangDataStatement>
         implements YangDataEffectiveStatement, YangDataSchemaNode {
-    private final @Nullable SchemaPath path;
     private final @NonNull QName argumentQName;
     private final @NonNull ContainerEffectiveStatement container;
 
@@ -45,7 +40,6 @@ final class YangDataEffectiveStatementImpl extends UnknownEffectiveStatementBase
         super(stmt, substatements);
         this.argumentQName = requireNonNull(qname);
 
-        path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(qname));
         container = findFirstEffectiveSubstatement(ContainerEffectiveStatement.class).get();
 
         // TODO: this is strong binding of two API contracts. Unfortunately ContainerEffectiveStatement design is
@@ -58,12 +52,6 @@ final class YangDataEffectiveStatementImpl extends UnknownEffectiveStatementBase
         return argumentQName;
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public ContainerEffectiveStatement getContainer() {
         return container;
@@ -96,7 +84,6 @@ final class YangDataEffectiveStatementImpl extends UnknownEffectiveStatementBase
     public String toString() {
         return MoreObjects.toStringHelper(this).omitNullValues()
                 .add("qname", argumentQName)
-                .add("path", path)
                 .add("container", container).toString();
     }
 }
index a3034e8915202ea3a42a4e8cfb2926ea2424cea6..a0a2be0a45f0522d2f32a8508b32bad682725d69 100644 (file)
@@ -10,25 +10,19 @@ package org.opendaylight.yangtools.rfc8528.parser;
 import static com.google.common.base.Verify.verifyNotNull;
 
 import com.google.common.collect.ImmutableList;
-import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.rfc8528.model.api.MountPointEffectiveStatement;
 import org.opendaylight.yangtools.rfc8528.model.api.MountPointSchemaNode;
 import org.opendaylight.yangtools.rfc8528.model.api.MountPointStatement;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
 
 final class MountPointEffectiveStatementImpl extends UnknownEffectiveStatementBase<QName, MountPointStatement>
         implements MountPointEffectiveStatement, MountPointSchemaNode {
-    private final @Nullable SchemaPath path;
-
     MountPointEffectiveStatementImpl(final Current<QName, MountPointStatement> stmt,
-            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final @Nullable SchemaPath path) {
+            final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        this.path = path;
     }
 
     @Override
@@ -36,12 +30,6 @@ final class MountPointEffectiveStatementImpl extends UnknownEffectiveStatementBa
         return verifyNotNull(argument());
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public MountPointEffectiveStatement asEffectiveStatement() {
         return this;
index 3eef9a27cf71fc0fd3fb40687a487d58eaca447c..fc564cb593f82fb21d0cbf742fa0e0ee1c44a36d 100644 (file)
@@ -22,7 +22,6 @@ import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
 import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
 import org.opendaylight.yangtools.yang.parser.spi.meta.AbstractQNameStatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.Mutable;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
@@ -44,8 +43,7 @@ public final class MountPointStatementSupport
             copy.getArgument().equals(current.getArgument())
             // Implied by UnknownSchemaNode
             && copy.history().isAugmenting() == current.history().isAugmenting()
-            && copy.history().isAddedByUses() == current.history().isAddedByUses()
-            && copy.equalParentPath(current)), config, VALIDATOR);
+            && copy.history().isAddedByUses() == current.history().isAddedByUses()), config, VALIDATOR);
     }
 
     // FIXME: these two methods are not quite right. RFC8528 states that:
@@ -87,7 +85,6 @@ public final class MountPointStatementSupport
     @Override
     protected MountPointEffectiveStatement createEffective(final Current<QName, MountPointStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return new MountPointEffectiveStatementImpl(stmt, substatements, SchemaPathSupport.toOptionalPath(
-            stmt.getEffectiveParent().getSchemaPath().createChild(stmt.getArgument())));
+        return new MountPointEffectiveStatementImpl(stmt, substatements);
     }
 }
index 3d012f30b54d7fa9457b6b388096b8afd283ffd2..aff44fd619a8574db6c3f0f7b5696fa88fdee7d3 100644 (file)
@@ -28,7 +28,6 @@ import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 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.StatementDefinition;
@@ -607,12 +606,6 @@ final class InferredStatementContext<A, D extends DeclaredStatement<A>, E extend
      * below methods exist in the same form in SubstatementContext. If any adjustment is made here, make sure it is
      * properly updated there.
      */
-    @Override
-    @Deprecated
-    public SchemaPath schemaPath() {
-        return substatementGetSchemaPath();
-    }
-
     @Override
     public A argument() {
         return argument;
index 66ad765afa84bc53301a1906773b6417186f2f21..9a5441d8e8ab5e1df81532431aaed66cd9e4b31c 100644 (file)
@@ -22,7 +22,6 @@ import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.common.YangVersion;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 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.StatementDefinition;
@@ -160,11 +159,6 @@ abstract class ReactorStmtCtx<A, D extends DeclaredStatement<A>, E extends Effec
     // FIXME: move this out once we have JDK15+
     private boolean boolFlag;
 
-    // SchemaPath cache for use with SubstatementContext and InferredStatementContext. This hurts RootStatementContext
-    // a bit in terms of size -- but those are only a few and SchemaPath is on its way out anyway.
-    // FIXME: this should become 'QName'
-    private SchemaPath schemaPath;
-
     ReactorStmtCtx() {
         // Empty on purpose
     }
@@ -614,63 +608,38 @@ abstract class ReactorStmtCtx<A, D extends DeclaredStatement<A>, E extends Effec
 
     @Override
     public final QName argumentAsTypeQName() {
-        return interpretAsQName(getRawArgument());
+        // FIXME: This may yield illegal argument exceptions
+        return StmtContextUtils.qnameFromArgument(getOriginalCtx().orElse(this), getRawArgument());
     }
 
     @Override
     public final QNameModule effectiveNamespace() {
-        // FIXME: there has to be a better way to do this
-        return getSchemaPath().getLastComponent().getModule();
-    }
-
-    //
-    //
-    // Common SchemaPath cache. All of this is bound to be removed once YANGTOOLS-1066 is done.
-    //
-    //
-
-    // Exists only to support {SubstatementContext,InferredStatementContext}.schemaPath()
-    @Deprecated
-    final @Nullable SchemaPath substatementGetSchemaPath() {
-        if (schemaPath == null) {
-            schemaPath = createSchemaPath((StatementContextBase<?, ?, ?>) coerceParentContext());
-        }
-        return schemaPath;
-    }
-
-    // FIXME: 7.0.0: this method's logic needs to be moved to the respective StatementSupport classes
-    @Deprecated
-    private SchemaPath createSchemaPath(final StatementContextBase<?, ?, ?> parent) {
-        final SchemaPath parentPath = parent.getSchemaPath();
         if (StmtContextUtils.isUnknownStatement(this)) {
-            return parentPath.createChild(publicDefinition().getStatementName());
+            return publicDefinition().getStatementName().getModule();
+        }
+        if (producesDeclared(UsesStatement.class)) {
+            return coerceParent().effectiveNamespace();
         }
+
         final Object argument = argument();
         if (argument instanceof QName) {
-            final QName qname = (QName) argument;
-            if (producesDeclared(UsesStatement.class)) {
-                return parentPath;
-            }
-
-            return parentPath.createChild(qname);
+            return ((QName) argument).getModule();
         }
         if (argument instanceof String) {
-            return parentPath.createChild(interpretAsQName((String) argument));
+            // FIXME: This may yield illegal argument exceptions
+            return StmtContextUtils.qnameFromArgument(getOriginalCtx().orElse(this), (String) argument).getModule();
         }
         if (argument instanceof SchemaNodeIdentifier
                 && (producesDeclared(AugmentStatement.class) || producesDeclared(RefineStatement.class)
                         || producesDeclared(DeviationStatement.class))) {
-
-            return parentPath.createChild(((SchemaNodeIdentifier) argument).getNodeIdentifiers());
+            return ((SchemaNodeIdentifier) argument).lastNodeIdentifier().getModule();
         }
 
-        // FIXME: this does not look right, investigate more?
-        return parentPath;
+        return coerceParent().effectiveNamespace();
     }
 
-    private @NonNull QName interpretAsQName(final String argument) {
-        // FIXME: This may yield illegal argument exceptions
-        return StmtContextUtils.qnameFromArgument(getOriginalCtx().orElse(this), argument);
+    private ReactorStmtCtx<?, ?, ?> coerceParent() {
+        return (ReactorStmtCtx<?, ?, ?>) coerceParentContext();
     }
 
     //
index 392642e0db27d0838db76455a9c76d4f613a169c..79add29f2e9800115971101d8eab1fce766faafb 100644 (file)
@@ -14,7 +14,6 @@ import java.util.List;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.yang.common.QNameModule;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.CopyHistory;
@@ -183,12 +182,6 @@ final class ReplicaStatementContext<A, D extends DeclaredStatement<A>, E extends
      * below methods exist in the same form in InferredStatementContext/SubstatementContext. If any adjustment is made
      * here, make sure it is properly updated there.
      */
-    @Override
-    @Deprecated
-    public SchemaPath schemaPath() {
-        return substatementGetSchemaPath();
-    }
-
     @Override
     public StatementContextBase<?, ?, ?> getParentContext() {
         return parent;
index 31655861d6d7cc2933b3eb6d43814cf1fca20cad..60e495f68c3457af420dd53407505c6f8b7ce813 100644 (file)
@@ -24,7 +24,6 @@ import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.YangVersion;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
@@ -117,12 +116,6 @@ public final class RootStatementContext<A, D extends DeclaredStatement<A>, E ext
         return argument;
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath schemaPath() {
-        return SchemaPath.ROOT;
-    }
-
     @Override
     public EffectiveConfig effectiveConfig() {
         return EffectiveConfig.UNDETERMINED;
index 1bb706b355b21c46723c05d6c7db8d9c3c624f67..3596c879b9c482eb4443356d2d230308341a2352 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.parser.stmt.reactor;
 
 import static java.util.Objects.requireNonNull;
 
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.spi.meta.CopyType;
@@ -55,12 +54,6 @@ final class SubstatementContext<A, D extends DeclaredStatement<A>, E extends Eff
      * below methods exist in the same form in InferredStatementContext. If any adjustment is made here, make sure it is
      * properly updated there.
      */
-    @Override
-    @Deprecated
-    public SchemaPath schemaPath() {
-        return substatementGetSchemaPath();
-    }
-
     @Override
     public A argument() {
         return argument;
index e456d16187059a281000e5739752033bb7a6acf5..d9fe1cbf600199787d9e496bc7a830ec7449c57f 100644 (file)
@@ -8,28 +8,20 @@
 package org.opendaylight.yangtools.yang.parser.openconfig.stmt;
 
 import com.google.common.collect.ImmutableList;
-import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.concepts.SemVer;
 import org.opendaylight.yangtools.openconfig.model.api.OpenConfigVersionEffectiveStatement;
 import org.opendaylight.yangtools.openconfig.model.api.OpenConfigVersionStatement;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class OpenConfigVersionEffectiveStatementImpl
         extends UnknownEffectiveStatementBase<SemVer, OpenConfigVersionStatement>
         implements OpenConfigVersionEffectiveStatement {
-
-    private final @Nullable SchemaPath path;
-
     OpenConfigVersionEffectiveStatementImpl(final Current<SemVer, OpenConfigVersionStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()));
     }
 
     @Override
@@ -37,12 +29,6 @@ final class OpenConfigVersionEffectiveStatementImpl
         return getNodeType();
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public OpenConfigVersionEffectiveStatement asEffectiveStatement() {
         return this;
index 18ccd825e95966735bb181edeea984587d17bca6..0ef91fa87550a5ea0f714a5b96e5ee622a58dbfd 100644 (file)
@@ -93,6 +93,6 @@ public final class ExtensionStatementSupport
     @Override
     protected ExtensionEffectiveStatement createEffective(final Current<QName, ExtensionStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return EffectiveStatements.createExtension(stmt.declared(), substatements, stmt.optionalPath());
+        return EffectiveStatements.createExtension(stmt.declared(), substatements);
     }
 }
index 5c6d2121876d2efd0c272094ea7866bf5e116e65..56b06f17032c04dc789a48df8bd66c6b5a51342b 100644 (file)
@@ -11,7 +11,6 @@ import static java.util.Objects.requireNonNull;
 
 import com.google.common.collect.ImmutableList;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
@@ -34,27 +33,27 @@ import org.opendaylight.yangtools.yang.model.spi.meta.EffectiveStatementMixins.U
 abstract class AbstractLeafListEffectiveStatement
         extends AbstractDeclaredEffectiveStatement.Default<QName, LeafListStatement>
         implements LeafListEffectiveStatement, LeafListSchemaNode, DerivableSchemaNode,
-            UserOrderedMixin<QName, LeafListStatement>, DataSchemaNodeMixin<QName, LeafListStatement>,
+            UserOrderedMixin<QName, LeafListStatement>, DataSchemaNodeMixin<LeafListStatement>,
             MustConstraintMixin<QName, LeafListStatement> {
     private final @NonNull Object substatements;
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final @NonNull TypeDefinition<?> type;
     private final int flags;
 
-    AbstractLeafListEffectiveStatement(final LeafListStatement declared, final Immutable path, final int flags,
+    AbstractLeafListEffectiveStatement(final LeafListStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(declared);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.substatements = maskList(substatements);
         this.flags = flags;
         // TODO: lazy instantiation?
         this.type = buildType();
     }
 
-    AbstractLeafListEffectiveStatement(final AbstractLeafListEffectiveStatement original, final Immutable path,
+    AbstractLeafListEffectiveStatement(final AbstractLeafListEffectiveStatement original, final QName argument,
             final int flags) {
         super(original);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.substatements = original.substatements;
         this.flags = flags;
         // TODO: lazy instantiation?
@@ -73,12 +72,7 @@ abstract class AbstractLeafListEffectiveStatement
 
     @Override
     public final QName argument() {
-        return getQName();
-    }
-
-    @Override
-    public final Immutable pathObject() {
-        return path;
+        return argument;
     }
 
     @Override
@@ -98,7 +92,7 @@ abstract class AbstractLeafListEffectiveStatement
 
     @Override
     public final String toString() {
-        return getClass().getSimpleName() + "[" + getQName() + "]";
+        return getClass().getSimpleName() + "[" + argument + "]";
     }
 
     private TypeDefinition<?> buildType() {
index 76a7f19b5c7d68043ca4745943eaaf4210524850..b36b4433d1249a9d48fc6933563fda410f6ba827 100644 (file)
@@ -10,7 +10,7 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf_list;
 import com.google.common.collect.ImmutableList;
 import java.util.Optional;
 import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ElementCountConstraint;
 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
@@ -20,24 +20,24 @@ abstract class AbstractNonEmptyLeafListEffectiveStatement extends AbstractLeafLi
     private final @Nullable LeafListSchemaNode original;
     private final @Nullable ElementCountConstraint elementCountConstraint;
 
-    AbstractNonEmptyLeafListEffectiveStatement(final LeafListStatement declared, final Immutable path, final int flags,
+    AbstractNonEmptyLeafListEffectiveStatement(final LeafListStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final LeafListSchemaNode original, final ElementCountConstraint elementCountConstraint) {
-        super(declared, path, flags, substatements);
+        super(declared, argument, flags, substatements);
         this.original = original;
         this.elementCountConstraint = elementCountConstraint;
     }
 
     AbstractNonEmptyLeafListEffectiveStatement(final AbstractNonEmptyLeafListEffectiveStatement originalEffecive,
-            final LeafListSchemaNode original, final Immutable path, final int flags) {
-        super(originalEffecive, path, flags);
+            final LeafListSchemaNode original, final QName argument, final int flags) {
+        super(originalEffecive, argument, flags);
         this.elementCountConstraint = originalEffecive.elementCountConstraint;
         this.original = original;
     }
 
     AbstractNonEmptyLeafListEffectiveStatement(final EmptyLeafListEffectiveStatement originalEffective,
-            final LeafListSchemaNode original, final Immutable path, final int flags) {
-        super(originalEffective, path, flags);
+            final LeafListSchemaNode original, final QName argument, final int flags) {
+        super(originalEffective, argument, flags);
         this.elementCountConstraint = null;
         this.original = original;
     }
index 0a7e3cb908feed1411eff3d40dcfcf4fc336f893..167b2e890f6909f05d33b8dc95836226216892b0 100644 (file)
@@ -11,21 +11,21 @@ import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import java.util.Collection;
 import java.util.Optional;
-import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ElementCountConstraint;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.LeafListStatement;
 
 final class EmptyLeafListEffectiveStatement extends AbstractLeafListEffectiveStatement {
-    EmptyLeafListEffectiveStatement(final LeafListStatement declared, final Immutable path, final int flags,
+    EmptyLeafListEffectiveStatement(final LeafListStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        super(declared, path, flags, substatements);
+        super(declared, argument, flags, substatements);
     }
 
-    EmptyLeafListEffectiveStatement(final EmptyLeafListEffectiveStatement original, final Immutable path,
+    EmptyLeafListEffectiveStatement(final EmptyLeafListEffectiveStatement original, final QName argument,
             final int flags) {
-        super(original, path, flags);
+        super(original, argument, flags);
     }
 
     @Override
index 5cf1ab349ee202e67bcac38607df35c12d65c6ac..1399110aaf33f2dc6c93e999008018d4b7d2c0b1 100644 (file)
@@ -104,14 +104,14 @@ public final class LeafListStatementSupport
         final int flags = computeFlags(stmt, original.effectiveSubstatements());
         if (original instanceof RegularLeafListEffectiveStatement) {
             return new RegularLeafListEffectiveStatement((RegularLeafListEffectiveStatement) original,
-                stmt.original(LeafListSchemaNode.class), stmt.effectivePath(), flags);
+                stmt.original(LeafListSchemaNode.class), stmt.getArgument(), flags);
         } else if (original instanceof SlimLeafListEffectiveStatement) {
             return new SlimLeafListEffectiveStatement((SlimLeafListEffectiveStatement) original,
-                stmt.original(LeafListSchemaNode.class), stmt.effectivePath(), flags);
+                stmt.original(LeafListSchemaNode.class), stmt.getArgument(), flags);
         } else if (original instanceof EmptyLeafListEffectiveStatement) {
             // Promote to slim
             return new SlimLeafListEffectiveStatement((EmptyLeafListEffectiveStatement) original,
-                stmt.original(LeafListSchemaNode.class), stmt.effectivePath(), flags);
+                stmt.original(LeafListSchemaNode.class), stmt.getArgument(), flags);
         } else {
             // Safe fallback
             return super.copyEffective(stmt, original);
@@ -147,12 +147,12 @@ public final class LeafListStatementSupport
         final LeafListStatement declared = stmt.declared();
         if (defaultValues.isEmpty()) {
             return original == null && !elementCountConstraint.isPresent()
-                ? new EmptyLeafListEffectiveStatement(declared, stmt.effectivePath(), flags, substatements)
-                    : new SlimLeafListEffectiveStatement(declared, stmt.effectivePath(), flags, substatements, original,
+                ? new EmptyLeafListEffectiveStatement(declared, stmt.getArgument(), flags, substatements)
+                    : new SlimLeafListEffectiveStatement(declared, stmt.getArgument(), flags, substatements, original,
                         elementCountConstraint.orElse(null));
         }
 
-        return new RegularLeafListEffectiveStatement(declared, stmt.effectivePath(), flags, substatements, original,
+        return new RegularLeafListEffectiveStatement(declared, stmt.getArgument(), flags, substatements, original,
             defaultValues, elementCountConstraint.orElse(null));
     }
 
index 50842e930d376f67d050f7bc1a3c14a0d29f43e8..d63857ac761baf712772fea081a98d29b333cc0c 100644 (file)
@@ -12,7 +12,7 @@ import static java.util.Objects.requireNonNull;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ElementCountConstraint;
 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
@@ -21,16 +21,16 @@ import org.opendaylight.yangtools.yang.model.api.stmt.LeafListStatement;
 final class RegularLeafListEffectiveStatement extends AbstractNonEmptyLeafListEffectiveStatement {
     private final @NonNull ImmutableSet<String> defaults;
 
-    RegularLeafListEffectiveStatement(final LeafListStatement declared, final Immutable path, final int flags,
+    RegularLeafListEffectiveStatement(final LeafListStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final LeafListSchemaNode original,
             final ImmutableSet<String> defaults, final ElementCountConstraint elementCountConstraint) {
-        super(declared, path, flags, substatements, original, elementCountConstraint);
+        super(declared, argument, flags, substatements, original, elementCountConstraint);
         this.defaults = requireNonNull(defaults);
     }
 
     RegularLeafListEffectiveStatement(final RegularLeafListEffectiveStatement originalEffective,
-            final LeafListSchemaNode original, final Immutable path, final int flags) {
-        super(originalEffective, original, path, flags);
+            final LeafListSchemaNode original, final QName argument, final int flags) {
+        super(originalEffective, original, argument, flags);
         this.defaults = originalEffective.defaults;
     }
 
index 0ccbbc1dc4e41f81c1c53f3f5a3f14a30d0180ff..ee13e4638e711d934d19a5f697776bbae811e57e 100644 (file)
@@ -9,27 +9,27 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.leaf_list;
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
-import org.opendaylight.yangtools.concepts.Immutable;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ElementCountConstraint;
 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.LeafListStatement;
 
 final class SlimLeafListEffectiveStatement extends AbstractNonEmptyLeafListEffectiveStatement {
-    SlimLeafListEffectiveStatement(final LeafListStatement declared, final Immutable path, final int flags,
+    SlimLeafListEffectiveStatement(final LeafListStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final LeafListSchemaNode original, final ElementCountConstraint elementCountConstraint) {
-        super(declared, path, flags, substatements, original, elementCountConstraint);
+        super(declared, argument, flags, substatements, original, elementCountConstraint);
     }
 
     SlimLeafListEffectiveStatement(final SlimLeafListEffectiveStatement originalEffective,
-            final LeafListSchemaNode original, final Immutable path, final int flags) {
-        super(originalEffective, original, path, flags);
+            final LeafListSchemaNode original, final QName argument, final int flags) {
+        super(originalEffective, original, argument, flags);
     }
 
     SlimLeafListEffectiveStatement(final EmptyLeafListEffectiveStatement originalEffective,
-            final LeafListSchemaNode original, final Immutable path, final int flags) {
-        super(originalEffective, original, path, flags);
+            final LeafListSchemaNode original, final QName argument, final int flags) {
+        super(originalEffective, original, argument, flags);
     }
 
     @Override
index d3113c2facce613c63abd06877d3043cf20f606e..d69b91ff2ad117cf033426557a469596f243148a 100644 (file)
@@ -13,7 +13,6 @@ import com.google.common.collect.ImmutableList;
 import java.util.Collection;
 import java.util.List;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DerivableSchemaNode;
@@ -39,29 +38,29 @@ abstract class AbstractListEffectiveStatement
         implements ListEffectiveStatement, ListSchemaNode, DerivableSchemaNode,
             ActionNodeContainerCompat<QName, ListStatement, ListEffectiveStatement>,
             NotificationNodeContainerCompat<QName, ListStatement, ListEffectiveStatement>,
-            DataSchemaNodeMixin<QName, ListStatement>, UserOrderedMixin<QName, ListStatement>,
+            DataSchemaNodeMixin<ListStatement>, UserOrderedMixin<QName, ListStatement>,
             DataNodeContainerMixin<QName, ListStatement>, WhenConditionMixin<QName, ListStatement>,
             AugmentationTargetMixin<QName, ListStatement>, NotificationNodeContainerMixin<QName, ListStatement>,
             ActionNodeContainerMixin<QName, ListStatement>, MustConstraintMixin<QName, ListStatement> {
     private final int flags;
     private final @NonNull Object substatements;
-    private final @NonNull Immutable path;
+    private final @NonNull QName argument;
     private final @NonNull Object keyDefinition;
 
-    AbstractListEffectiveStatement(final ListStatement declared, final Immutable path, final int flags,
+    AbstractListEffectiveStatement(final ListStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final ImmutableList<QName> keyDefinition) {
         super(declared, substatements);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.substatements = maskList(substatements);
         this.keyDefinition = maskList(keyDefinition);
         this.flags = flags;
     }
 
-    AbstractListEffectiveStatement(final AbstractListEffectiveStatement original, final Immutable path,
+    AbstractListEffectiveStatement(final AbstractListEffectiveStatement original, final QName argument,
             final int flags) {
         super(original);
-        this.path = requireNonNull(path);
+        this.argument = requireNonNull(argument);
         this.substatements = original.substatements;
         this.keyDefinition = original.keyDefinition;
         this.flags = flags;
@@ -72,19 +71,14 @@ abstract class AbstractListEffectiveStatement
         return unmaskList(substatements);
     }
 
-    @Override
-    public final int flags() {
-        return flags;
-    }
-
     @Override
     public final QName argument() {
-        return getQName();
+        return argument;
     }
 
     @Override
-    public final Immutable pathObject() {
-        return path;
+    public final int flags() {
+        return flags;
     }
 
     @Override
index 86e6029e0935c5f6c015e1deda2d99acfa8af957..fec0bb970686a49db3dda672ceae6000526d0055 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list;
 
 import com.google.common.collect.ImmutableList;
 import java.util.Optional;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ElementCountConstraint;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
@@ -17,14 +16,14 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ListStatement;
 
 final class EmptyListEffectiveStatement extends AbstractListEffectiveStatement {
-    EmptyListEffectiveStatement(final ListStatement declared, final Immutable path, final int flags,
+    EmptyListEffectiveStatement(final ListStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final ImmutableList<QName> keyDefinition) {
-        super(declared, path, flags, substatements, keyDefinition);
+        super(declared, argument, flags, substatements, keyDefinition);
     }
 
-    EmptyListEffectiveStatement(final EmptyListEffectiveStatement original, final Immutable path, final int flags) {
-        super(original, path, flags);
+    EmptyListEffectiveStatement(final EmptyListEffectiveStatement original, final QName argument, final int flags) {
+        super(original, argument, flags);
     }
 
     @Override
index 0adb85324dd93837a3497b44bed93773dab58705..6aab0cebd47c0ace79f9fb41c3d1d9ea167bec7b 100644 (file)
@@ -19,7 +19,6 @@ import java.util.List;
 import java.util.Optional;
 import java.util.Set;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.Ordering;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ElementCountConstraint;
@@ -142,10 +141,10 @@ public final class ListStatementSupport
         final int flags = computeFlags(stmt, original.effectiveSubstatements());
         if (original instanceof RegularListEffectiveStatement) {
             return new RegularListEffectiveStatement((RegularListEffectiveStatement) original,
-                stmt.original(ListSchemaNode.class), stmt.effectivePath(), flags);
+                stmt.original(ListSchemaNode.class), stmt.getArgument(), flags);
         } else if (original instanceof EmptyListEffectiveStatement) {
             return new RegularListEffectiveStatement((EmptyListEffectiveStatement) original,
-                stmt.original(ListSchemaNode.class), stmt.effectivePath(), flags);
+                stmt.original(ListSchemaNode.class), stmt.getArgument(), flags);
         } else {
             // Safe fallback
             return super.copyEffective(stmt, original);
@@ -189,12 +188,12 @@ public final class ListStatementSupport
 
         final Optional<ElementCountConstraint> elementCountConstraint =
             EffectiveStmtUtils.createElementCountConstraint(substatements);
-        final Immutable path = stmt.effectivePath();
+        final QName qname = stmt.getArgument();
         final ListSchemaNode original = stmt.original(ListSchemaNode.class);
         try {
             return original == null && !elementCountConstraint.isPresent()
-                ? new EmptyListEffectiveStatement(stmt.declared(), path, flags, substatements, keyDefinition)
-                    : new RegularListEffectiveStatement(stmt.declared(), path, flags, substatements, keyDefinition,
+                ? new EmptyListEffectiveStatement(stmt.declared(), qname, flags, substatements, keyDefinition)
+                    : new RegularListEffectiveStatement(stmt.declared(), qname, flags, substatements, keyDefinition,
                         elementCountConstraint.orElse(null), original);
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
index a8b273b5a2fd9ffcaa4eb61b7cdc065ed29cb1ba..aba9b89aec296d05cd42ff33aa4e882e92d65fe3 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.list;
 
 import com.google.common.collect.ImmutableList;
 import java.util.Optional;
-import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.model.api.ElementCountConstraint;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
@@ -20,25 +19,25 @@ final class RegularListEffectiveStatement extends AbstractListEffectiveStatement
     private final ElementCountConstraint elementCountConstraint;
     private final ListSchemaNode original;
 
-    RegularListEffectiveStatement(final ListStatement declared, final Immutable path, final int flags,
+    RegularListEffectiveStatement(final ListStatement declared, final QName argument, final int flags,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements,
             final ImmutableList<QName> keyDefinition, final ElementCountConstraint elementCountConstraint,
             final ListSchemaNode original) {
-        super(declared, path, flags, substatements, keyDefinition);
+        super(declared, argument, flags, substatements, keyDefinition);
         this.elementCountConstraint = elementCountConstraint;
         this.original = original;
     }
 
     RegularListEffectiveStatement(final RegularListEffectiveStatement originalEffective, final ListSchemaNode original,
-            final Immutable path, final int flags) {
-        super(originalEffective, path, flags);
+            final QName argument, final int flags) {
+        super(originalEffective, argument, flags);
         this.elementCountConstraint = originalEffective.elementCountConstraint;
         this.original = original;
     }
 
     RegularListEffectiveStatement(final EmptyListEffectiveStatement originalEffective, final ListSchemaNode original,
-            final Immutable path, final int flags) {
-        super(originalEffective, path, flags);
+            final QName argument, final int flags) {
+        super(originalEffective, argument, flags);
         this.elementCountConstraint = null;
         this.original = original;
     }
index 17ee582aad255bc146680c7471428d52894164a8..ebf83b6b842455eb2ab61a48fbba63506cb5c00f 100644 (file)
@@ -112,7 +112,7 @@ public final class ActionStatementSupport extends
         verify(!substatements.isEmpty(), "Missing implicit input/output statements at %s", ref);
 
         try {
-            return EffectiveStatements.createAction(stmt.declared(), stmt.effectivePath(),
+            return EffectiveStatements.createAction(stmt.declared(), stmt.getArgument(),
                 EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), substatements), substatements);
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
@@ -122,7 +122,7 @@ public final class ActionStatementSupport extends
     @Override
     public ActionEffectiveStatement copyEffective(final Current<QName, ActionStatement> stmt,
             final ActionEffectiveStatement original) {
-        return EffectiveStatements.copyAction(original, stmt.effectivePath(),
+        return EffectiveStatements.copyAction(original, stmt.getArgument(),
             EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), original.effectiveSubstatements()));
     }
 }
index 43ba7726e981ee783d20b2ad1c9bc2a43e98bc4c..6748e98b2f490ee615fc73ac0434d725ab0be58d 100644 (file)
@@ -63,14 +63,14 @@ public final class AnydataStatementSupport
     @Override
     protected AnydataEffectiveStatement createEffective(final Current<QName, AnydataStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return EffectiveStatements.createAnydata(stmt.declared(), stmt.effectivePath(),
+        return EffectiveStatements.createAnydata(stmt.declared(), stmt.getArgument(),
             createFlags(stmt, substatements), substatements, stmt.original(AnydataSchemaNode.class));
     }
 
     @Override
     public AnydataEffectiveStatement copyEffective(final Current<QName, AnydataStatement> stmt,
             final AnydataEffectiveStatement original) {
-        return EffectiveStatements.copyAnydata(original, stmt.effectivePath(),
+        return EffectiveStatements.copyAnydata(original, stmt.getArgument(),
             createFlags(stmt, original.effectiveSubstatements()), stmt.original(AnydataSchemaNode.class));
     }
 
index d1d43d0215ace24521c798ed1a27c0f981f966d7..70d07fa808b20717cb3b949a79d4bbb674589f9c 100644 (file)
@@ -63,14 +63,14 @@ public final class AnyxmlStatementSupport
     @Override
     protected AnyxmlEffectiveStatement createEffective(final Current<QName, AnyxmlStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return EffectiveStatements.createAnyxml(stmt.declared(), stmt.effectivePath(), createFlags(stmt, substatements),
+        return EffectiveStatements.createAnyxml(stmt.declared(), stmt.getArgument(), createFlags(stmt, substatements),
             substatements, stmt.original(AnyxmlSchemaNode.class));
     }
 
     @Override
     public AnyxmlEffectiveStatement copyEffective(final Current<QName, AnyxmlStatement> stmt,
             final AnyxmlEffectiveStatement original) {
-        return EffectiveStatements.copyAnyxml(original, stmt.effectivePath(),
+        return EffectiveStatements.copyAnyxml(original, stmt.getArgument(),
             createFlags(stmt, original.effectiveSubstatements()), stmt.original(AnyxmlSchemaNode.class));
     }
 
index 6879078635eeb734c9e6b0ec7677f80dff4539e5..4b79879697e98c6f76eda1eaa6e32dc5bdf45169 100644 (file)
@@ -106,14 +106,14 @@ public final class CaseStatementSupport
     @Override
     protected CaseEffectiveStatement copyDeclaredEffective(final Current<QName, CaseStatement> stmt,
             final CaseEffectiveStatement original) {
-        return EffectiveStatements.copyCase(original, stmt.effectivePath(),
+        return EffectiveStatements.copyCase(original, stmt.getArgument(),
             computeFlags(stmt, original.effectiveSubstatements()), stmt.original(CaseSchemaNode.class));
     }
 
     @Override
     protected CaseEffectiveStatement copyUndeclaredEffective(final Current<QName, CaseStatement> stmt,
             final CaseEffectiveStatement original) {
-        return EffectiveStatements.copyCase(original, stmt.effectivePath(),
+        return EffectiveStatements.copyCase(original, stmt.getArgument(),
             computeFlags(stmt, original.effectiveSubstatements()), stmt.original(CaseSchemaNode.class));
     }
 
@@ -121,7 +121,7 @@ public final class CaseStatementSupport
     protected CaseEffectiveStatement createDeclaredEffective(final Current<QName, CaseStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         try {
-            return EffectiveStatements.createCase(stmt.declared(), stmt.effectivePath(),
+            return EffectiveStatements.createCase(stmt.declared(), stmt.getArgument(),
                 computeFlags(stmt, substatements), substatements, stmt.original(CaseSchemaNode.class));
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
@@ -132,7 +132,7 @@ public final class CaseStatementSupport
     protected CaseEffectiveStatement createUndeclaredEffective(final Current<QName, CaseStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         try {
-            return EffectiveStatements.createCase(stmt.effectivePath(), computeFlags(stmt, substatements),
+            return EffectiveStatements.createCase(stmt.getArgument(), computeFlags(stmt, substatements),
                 substatements, stmt.original(CaseSchemaNode.class));
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
index 784c70b3b6662de1a77564170b68fc9991ec2cb8..04c04b79372ed3bff8a37f31eec6691d6feaecb0 100644 (file)
@@ -122,7 +122,7 @@ public final class ChoiceStatementSupport
     @Override
     public ChoiceEffectiveStatement copyEffective(final Current<QName, ChoiceStatement> stmt,
             final ChoiceEffectiveStatement original) {
-        return EffectiveStatements.copyChoice(original, stmt.effectivePath(),
+        return EffectiveStatements.copyChoice(original, stmt.getArgument(),
             computeFlags(stmt, original.effectiveSubstatements()), stmt.original(ChoiceSchemaNode.class));
     }
 
@@ -147,7 +147,7 @@ public final class ChoiceStatementSupport
         }
 
         try {
-            return EffectiveStatements.createChoice(stmt.declared(), stmt.effectivePath(),
+            return EffectiveStatements.createChoice(stmt.declared(), stmt.getArgument(),
                 computeFlags(stmt, substatements), substatements, defaultCase, stmt.original(ChoiceSchemaNode.class));
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
index 4ca2a1a05b55f9f3f7a3e0faea0d819ce47f83e8..e8574eb27848a118d626be3aacff21e766b234e1 100644 (file)
@@ -115,7 +115,7 @@ public final class ContainerStatementSupport
         EffectiveStmtUtils.checkUniqueUses(stmt, substatements);
 
         try {
-            return EffectiveStatements.createContainer(stmt.declared(), stmt.effectivePath(),
+            return EffectiveStatements.createContainer(stmt.declared(), stmt.getArgument(),
                 createFlags(stmt, substatements), substatements, stmt.original(ContainerSchemaNode.class));
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
@@ -125,7 +125,7 @@ public final class ContainerStatementSupport
     @Override
     public ContainerEffectiveStatement copyEffective(final Current<QName, ContainerStatement> stmt,
             final ContainerEffectiveStatement original) {
-        return EffectiveStatements.copyContainer(original, stmt.effectivePath(),
+        return EffectiveStatements.copyContainer(original, stmt.getArgument(),
             createFlags(stmt, original.effectiveSubstatements()), stmt.original(ContainerSchemaNode.class));
     }
 
index 7b78289ef6691a255da318400159675133fd8f12..039ab9e197a4b82e00083c74727c5c71c94dfce7 100644 (file)
@@ -70,8 +70,7 @@ public final class FeatureStatementSupport
     @Override
     protected FeatureEffectiveStatement createEffective(final Current<QName, FeatureStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
-        return EffectiveStatements.createFeature(stmt.declared(), stmt.effectivePath(), computeFlags(substatements),
-            substatements);
+        return EffectiveStatements.createFeature(stmt.declared(), computeFlags(substatements), substatements);
     }
 
     private static int computeFlags(final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
index 2b7842afafbdf3442fe4f0bb96f755d3b399abd1..45f7daf6d7061d5667ea7c4662b3898ae1b756ad 100644 (file)
@@ -79,8 +79,7 @@ public final class GroupingStatementSupport
         super(YangStmtMapping.GROUPING, StatementPolicy.copyDeclared(
             (copy, current, substatements) ->
                 copy.history().isAddedByUses() == current.history().isAddedByUses()
-                && copy.getArgument().equals(current.getArgument())
-                && copy.equalParentPath(current)), config, validator);
+                && copy.getArgument().equals(current.getArgument())), config, validator);
     }
 
     public static @NonNull GroupingStatementSupport rfc6020Instance(final YangParserConfiguration config) {
@@ -146,7 +145,7 @@ public final class GroupingStatementSupport
     protected GroupingEffectiveStatement createEffective(final Current<QName, GroupingStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         try {
-            return EffectiveStatements.createGrouping(stmt.declared(), substatements, stmt.effectivePath(),
+            return EffectiveStatements.createGrouping(stmt.declared(), substatements, stmt.getArgument(),
                 EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), substatements));
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
index cf25d187402c7d9a62e9ea69298e73245b9cafa6..1bcabad7bb6170ba0bed7dfea14b95552692fe00 100644 (file)
@@ -102,7 +102,7 @@ public final class IdentityStatementSupport
     protected IdentityEffectiveStatement createEffective(final Current<QName, IdentityStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         if (substatements.isEmpty()) {
-            return EffectiveStatements.createIdentity(stmt.declared(), stmt.effectivePath());
+            return EffectiveStatements.createIdentity(stmt.declared());
         }
 
         final List<IdentitySchemaNode> identities = new ArrayList<>();
@@ -118,7 +118,7 @@ public final class IdentityStatementSupport
             }
         }
 
-        return EffectiveStatements.createIdentity(stmt.declared(), stmt.effectivePath(), new FlagsBuilder()
+        return EffectiveStatements.createIdentity(stmt.declared(), new FlagsBuilder()
             .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT))
             .toFlags(), substatements, ImmutableSet.copyOf(identities));
     }
index 136bfb8083377fbe11be213109d468a4cd31dec2..552232e3fb41124ac99cd8980b35d37c5473532a 100644 (file)
@@ -93,20 +93,20 @@ public final class InputStatementSupport
     @Override
     InputEffectiveStatement copyDeclaredEffective(final int flags, final Current<QName, InputStatement> stmt,
             final InputEffectiveStatement original) {
-        return EffectiveStatements.copyInput(original, stmt.effectivePath(), flags);
+        return EffectiveStatements.copyInput(original, stmt.getArgument(), flags);
     }
 
     @Override
     InputEffectiveStatement copyUndeclaredEffective(final int flags, final Current<QName, InputStatement> stmt,
             final InputEffectiveStatement original) {
-        return EffectiveStatements.copyInput(original, stmt.effectivePath(), flags);
+        return EffectiveStatements.copyInput(original, stmt.getArgument(), flags);
     }
 
     @Override
     InputEffectiveStatement createDeclaredEffective(final int flags, final Current<QName, InputStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         try {
-            return EffectiveStatements.createInput(stmt.declared(), stmt.effectivePath(), flags, substatements);
+            return EffectiveStatements.createInput(stmt.declared(), stmt.getArgument(), flags, substatements);
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
         }
@@ -116,7 +116,7 @@ public final class InputStatementSupport
     InputEffectiveStatement createUndeclaredEffective(final int flags, final Current<QName, InputStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         try {
-            return EffectiveStatements.createInput(stmt.effectivePath(), flags, substatements);
+            return EffectiveStatements.createInput(stmt.getArgument(), flags, substatements);
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
         }
index c0b0af1f475d5d8ef25427db7a91205cd22dd88a..e1809a87e991da2fddd592679dd2aee907bd15f4 100644 (file)
@@ -77,7 +77,7 @@ public final class LeafStatementSupport
     @Override
     public LeafEffectiveStatement copyEffective(final Current<QName, LeafStatement> stmt,
             final LeafEffectiveStatement original) {
-        return EffectiveStatements.copyLeaf(original, stmt.effectivePath(),
+        return EffectiveStatements.copyLeaf(original, stmt.getArgument(),
             computeFlags(stmt, original.effectiveSubstatements()), stmt.original(LeafSchemaNode.class));
     }
 
@@ -92,7 +92,7 @@ public final class LeafStatementSupport
             EffectiveStmtUtils.hasDefaultValueMarkedWithIfFeature(stmt.yangVersion(), typeStmt, dflt), stmt,
             "Leaf '%s' has default value '%s' marked with an if-feature statement.", stmt.argument(), dflt);
 
-        return EffectiveStatements.createLeaf(stmt.declared(), stmt.effectivePath(), computeFlags(stmt, substatements),
+        return EffectiveStatements.createLeaf(stmt.declared(), stmt.getArgument(), computeFlags(stmt, substatements),
             substatements, stmt.original(LeafSchemaNode.class));
     }
 
index 46de5c5e0f3c6f40b4c6643fd3ca60a4e68bebd4..b92aceaab79c976d0bd222265aceac3f0b1e1708 100644 (file)
@@ -93,20 +93,20 @@ public final class OutputStatementSupport
     @Override
     OutputEffectiveStatement copyDeclaredEffective(final int flags, final Current<QName, OutputStatement> stmt,
             final OutputEffectiveStatement original) {
-        return EffectiveStatements.copyOutput(original, stmt.effectivePath(), flags);
+        return EffectiveStatements.copyOutput(original, stmt.getArgument(), flags);
     }
 
     @Override
     OutputEffectiveStatement copyUndeclaredEffective(final int flags, final Current<QName, OutputStatement> stmt,
             final OutputEffectiveStatement original) {
-        return EffectiveStatements.copyOutput(original, stmt.effectivePath(), flags);
+        return EffectiveStatements.copyOutput(original, stmt.getArgument(), flags);
     }
 
     @Override
     OutputEffectiveStatement createDeclaredEffective(final int flags, final Current<QName, OutputStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         try {
-            return EffectiveStatements.createOutput(stmt.declared(), stmt.effectivePath(), flags, substatements);
+            return EffectiveStatements.createOutput(stmt.declared(), stmt.getArgument(), flags, substatements);
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
         }
@@ -116,7 +116,7 @@ public final class OutputStatementSupport
     OutputEffectiveStatement createUndeclaredEffective(final int flags, final Current<QName, OutputStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         try {
-            return EffectiveStatements.createOutput(stmt.effectivePath(), flags, substatements);
+            return EffectiveStatements.createOutput(stmt.getArgument(), flags, substatements);
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
         }
index 7a848fe98fe7512d162641cbd8b824d7235ae8d6..d120c2c163216729a5f703a717db03d5c04a74eb 100644 (file)
@@ -93,7 +93,7 @@ public final class RpcStatementSupport extends AbstractSchemaTreeStatementSuppor
         checkState(!substatements.isEmpty(), "Missing implicit input/output statements at %s", stmt.sourceReference());
 
         try {
-            return EffectiveStatements.createRpc(stmt.declared(), substatements, stmt.effectivePath(),
+            return EffectiveStatements.createRpc(stmt.declared(), substatements, stmt.getArgument(),
                 computeFlags(substatements));
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
index b064a5fc97e37973c128f00fc2138a2c7bf53e7d..303cc6d2c3d5a150bd063afc51053eb192ef8274 100644 (file)
@@ -122,8 +122,7 @@ public final class TypedefStatementSupport extends
             EffectiveStmtUtils.hasDefaultValueMarkedWithIfFeature(stmt.yangVersion(), typeEffectiveStmt, dflt), stmt,
             "Typedef '%s' has default value '%s' marked with an if-feature statement.", stmt.argument(), dflt);
 
-        return EffectiveStatements.createTypedef(declared, stmt.effectivePath(), computeFlags(substatements),
-            substatements);
+        return EffectiveStatements.createTypedef(declared, computeFlags(substatements), substatements);
     }
 
     private static void checkConflict(final StmtContext<?, ?, ?> parent, final StmtContext<QName, ?, ?> stmt) {
index e0d9c201fb4d8b19cea5e5d2566fc8da3491d5e6..e050ab5a549ea2381527743423ae1ebe9e020470 100644 (file)
@@ -49,7 +49,7 @@ abstract class AbstractNotificationStatementSupport
     protected final NotificationEffectiveStatement createEffective(final Current<QName, NotificationStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         try {
-            return EffectiveStatements.createNotification(stmt.declared(), stmt.effectivePath(),
+            return EffectiveStatements.createNotification(stmt.declared(), stmt.getArgument(),
                 EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), substatements), substatements);
         } catch (SubstatementIndexingException e) {
             throw new SourceException(e.getMessage(), stmt, e);
@@ -60,7 +60,7 @@ abstract class AbstractNotificationStatementSupport
     // FIXME: propagate original?
     public final NotificationEffectiveStatement copyEffective(final Current<QName, NotificationStatement> stmt,
             final NotificationEffectiveStatement original) {
-        return EffectiveStatements.copyNotification(original, stmt.effectivePath(),
+        return EffectiveStatements.copyNotification(original, stmt.getArgument(),
             EffectiveStatementMixins.historyAndStatusFlags(stmt.history(), original.effectiveSubstatements()));
     }
 }
index 4e57b84002a2183661cd130209ce23b1ee180bc8..5996ce28e56cd6f2fb3737550185e8c96bb2ec27 100644 (file)
@@ -11,11 +11,8 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
@@ -33,7 +30,6 @@ import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 import org.opendaylight.yangtools.yang.model.api.type.TypeDefinitions;
 
@@ -53,10 +49,6 @@ public class AugmentTest {
     public void testAugmentParsing() throws Exception {
         final SchemaContext context = TestUtils.loadModules(getClass().getResource("/augment-test/augment-in-augment")
             .toURI());
-        final List<QName> qnames = new ArrayList<>();
-        qnames.add(Q0);
-        qnames.add(Q1);
-        qnames.add(Q2);
 
         // foo.yang
         final Module module1 = TestUtils.findModule(context, "foo").get();
@@ -65,7 +57,7 @@ public class AugmentTest {
         final AugmentationSchemaNode augment = augmentations.iterator().next();
         assertNotNull(augment);
 
-        assertEquals(Absolute.of(qnames), augment.getTargetPath());
+        assertEquals(Absolute.of(Q0, Q1, Q2), augment.getTargetPath());
 
         final Collection<? extends DataSchemaNode> augmentChildren = augment.getChildNodes();
         assertEquals(4, augmentChildren.size());
@@ -88,37 +80,21 @@ public class AugmentTest {
         assertNotNull(odl);
 
         // leaf ds0ChannelNumber
-        QName qname = QName.create(FOO, "ds0ChannelNumber");
-        qnames.add(qname);
-        assertEquals(qname, ds0ChannelNumber.getQName());
-        SchemaPath expectedSchemaPath = SchemaPath.create(qnames, true);
-        assertPathEquals(expectedSchemaPath, ds0ChannelNumber);
+        assertEquals(QName.create(FOO, "ds0ChannelNumber"), ds0ChannelNumber.getQName());
         assertFalse(ds0ChannelNumber.isAugmenting());
         // type of leaf ds0ChannelNumber
         assertEquals(TypeDefinitions.STRING, ds0ChannelNumber.getType().getQName());
 
         // leaf interface-id
-        qname = QName.create(FOO, "interface-id");
-        assertEquals(qname, interfaceId.getQName());
-        qnames.set(3, qname);
-        expectedSchemaPath = SchemaPath.create(qnames, true);
-        assertPathEquals(expectedSchemaPath, interfaceId);
+        assertEquals(QName.create(FOO, "interface-id"), interfaceId.getQName());
         assertFalse(interfaceId.isAugmenting());
 
         // container schemas
-        qname = QName.create(FOO, "schemas");
-        assertEquals(qname, schemas.getQName());
-        qnames.set(3, qname);
-        expectedSchemaPath = SchemaPath.create(qnames, true);
-        assertPathEquals(expectedSchemaPath, schemas);
+        assertEquals(QName.create(FOO, "schemas"), schemas.getQName());
         assertFalse(schemas.isAugmenting());
 
         // choice odl
-        qname = QName.create(FOO, "odl");
-        assertEquals(qname, odl.getQName());
-        qnames.set(3, qname);
-        expectedSchemaPath = SchemaPath.create(qnames, true);
-        assertPathEquals(expectedSchemaPath, odl);
+        assertEquals(QName.create(FOO, "odl"), odl.getQName());
         assertFalse(odl.isAugmenting());
 
         // baz.yang
@@ -167,18 +143,12 @@ public class AugmentTest {
         final ListSchemaNode ifEntry = (ListSchemaNode) interfaces.getDataChildByName(QName.create(
                 module2.getQNameModule(), "ifEntry"));
 
-        final List<QName> qnames = new ArrayList<>();
-        qnames.add(Q0);
-        qnames.add(Q1);
-        qnames.add(Q2);
-
         // baz.yang
         // augment "/br:interfaces/br:ifEntry" {
         final ContainerSchemaNode augmentHolder = (ContainerSchemaNode) ifEntry.getDataChildByName(QName.create(BAZ,
                 "augment-holder"));
         TestUtils.checkIsAugmenting(augmentHolder, true);
         assertEquals(Q2, augmentHolder.getQName());
-        assertPathEquals(SchemaPath.create(qnames, true), augmentHolder);
 
         // foo.yang
         // augment "/br:interfaces/br:ifEntry/bz:augment-holder"
@@ -196,28 +166,16 @@ public class AugmentTest {
         assertNotNull(odl);
 
         // leaf ds0ChannelNumber
-        QName qname = QName.create(FOO, "ds0ChannelNumber");
-        assertEquals(qname, ds0ChannelNumber.getQName());
-        qnames.add(qname);
-        assertPathEquals(SchemaPath.create(qnames, true), ds0ChannelNumber);
+        assertEquals(QName.create(FOO, "ds0ChannelNumber"), ds0ChannelNumber.getQName());
 
         // leaf interface-id
-        qname = QName.create(FOO, "interface-id");
-        assertEquals(qname, interfaceId.getQName());
-        qnames.set(3, qname);
-        assertPathEquals(SchemaPath.create(qnames, true), interfaceId);
+        assertEquals(QName.create(FOO, "interface-id"), interfaceId.getQName());
 
         // container schemas
-        qname = QName.create(FOO, "schemas");
-        assertEquals(qname, schemas.getQName());
-        qnames.set(3, qname);
-        assertPathEquals(SchemaPath.create(qnames, true), schemas);
+        assertEquals(QName.create(FOO, "schemas"), schemas.getQName());
 
         // choice odl
-        qname = QName.create(FOO, "odl");
-        assertEquals(qname, odl.getQName());
-        qnames.set(3, qname);
-        assertPathEquals(SchemaPath.create(qnames, true), odl);
+        assertEquals(QName.create(FOO, "odl"), odl.getQName());
     }
 
     @Test
@@ -262,64 +220,36 @@ public class AugmentTest {
         assertNotNull(node2);
         assertNotNull(node3);
 
-        final List<QName> qnames = new ArrayList<>();
-        qnames.add(Q0);
-        qnames.add(Q1);
-        qnames.add(Q2);
-        qnames.add(QName.create(FOO, "odl"));
-
         // case id
-        QName qname = QName.create(FOO, "id");
-        assertEquals(qname, id.getQName());
-        qnames.add(qname);
-        assertPathEquals(SchemaPath.create(qnames, true), id);
+        assertEquals(QName.create(FOO, "id"), id.getQName());
         final Collection<? extends DataSchemaNode> idChildren = id.getChildNodes();
         assertEquals(1, idChildren.size());
 
         // case node1
-        qname = QName.create(FOO, "node1");
-        assertEquals(qname, node1.getQName());
-        qnames.set(4, qname);
-        assertPathEquals(SchemaPath.create(qnames, true), node1);
+        assertEquals(QName.create(FOO, "node1"), node1.getQName());
         final Collection<? extends DataSchemaNode> node1Children = node1.getChildNodes();
         assertTrue(node1Children.isEmpty());
 
         // case node2
-        qname = QName.create(FOO, "node2");
-        assertEquals(qname, node2.getQName());
-        qnames.set(4, qname);
-        assertPathEquals(SchemaPath.create(qnames, true), node2);
+        assertEquals(QName.create(FOO, "node2"), node2.getQName());
         final Collection<? extends DataSchemaNode> node2Children = node2.getChildNodes();
         assertTrue(node2Children.isEmpty());
 
         // case node3
-        qname = QName.create(FOO, "node3");
-        assertEquals(qname, node3.getQName());
-        qnames.set(4, qname);
-        assertPathEquals(SchemaPath.create(qnames, true), node3);
+        assertEquals(QName.create(FOO, "node3"), node3.getQName());
         final Collection<? extends DataSchemaNode> node3Children = node3.getChildNodes();
         assertEquals(1, node3Children.size());
 
         // test cases
-        qnames.clear();
-        qnames.add(Q0);
-        qnames.add(Q1);
-        qnames.add(Q2);
-        qnames.add(QName.create(FOO, "odl"));
-
         // case id child
-        qnames.add(QName.create(FOO, "id"));
-        qnames.add(QName.create(FOO, "id"));
         final LeafSchemaNode caseIdChild = (LeafSchemaNode) idChildren.iterator().next();
         assertNotNull(caseIdChild);
-        assertPathEquals(SchemaPath.create(qnames, true), caseIdChild);
+        assertEquals(QName.create(FOO, "id"), caseIdChild.getQName());
 
         // case node3 child
-        qnames.set(4, QName.create(FOO, "node3"));
-        qnames.set(5, QName.create(FOO, "node3"));
         final ContainerSchemaNode caseNode3Child = (ContainerSchemaNode) node3Children.iterator().next();
         assertNotNull(caseNode3Child);
-        assertPathEquals(SchemaPath.create(qnames, true), caseNode3Child);
+        assertEquals(QName.create(FOO, "node3"), caseNode3Child.getQName());
     }
 
     @Test
@@ -374,29 +304,18 @@ public class AugmentTest {
         assertTrue(create.isAugmenting());
         assertTrue(destroy.isAugmenting());
 
-        final QName[] qnames = new QName[4];
-        qnames[0] = submitQName;
-        qnames[1] = inputQName;
-        qnames[2] = argumentsQName;
-
         // case attach
-        qnames[3] = QName.create(NS_FOO, revision, "attach");
-        assertEquals(qnames[3], attach.getQName());
-        assertPathEquals(SchemaPath.create(true, qnames), attach);
+        assertEquals(QName.create(NS_FOO, revision, "attach"), attach.getQName());
         final Collection<? extends DataSchemaNode> attachChildren = attach.getChildNodes();
         assertEquals(1, attachChildren.size());
 
         // case create
-        qnames[3] = QName.create(NS_FOO, revision, "create");
-        assertEquals(qnames[3], create.getQName());
-        assertPathEquals(SchemaPath.create(true, qnames), create);
+        assertEquals(QName.create(NS_FOO, revision, "create"), create.getQName());
         final Collection<? extends DataSchemaNode> createChildren = create.getChildNodes();
         assertEquals(1, createChildren.size());
 
         // case attach
-        qnames[3] = QName.create(NS_FOO, revision, "destroy");
-        assertEquals(qnames[3], destroy.getQName());
-        assertPathEquals(SchemaPath.create(true, qnames), destroy);
+        assertEquals(QName.create(NS_FOO, revision, "destroy"), destroy.getQName());
         final Collection<? extends DataSchemaNode> destroyChildren = destroy.getChildNodes();
         assertEquals(1, destroyChildren.size());
     }
@@ -422,5 +341,4 @@ public class AugmentTest {
         final LeafSchemaNode id = (LeafSchemaNode) node.getDataChildByName(QName.create(test.getQNameModule(), "id"));
         assertTrue(id.isAugmenting());
     }
-
 }
index 6667a4805e007a18d72723229b2e41b52c92ccc1..bbe4fdec8d10145a51354cb987c00e6de2649bea 100644 (file)
@@ -10,7 +10,6 @@ package org.opendaylight.yangtools.yang.stmt;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
 
 import java.io.FileNotFoundException;
@@ -26,7 +25,6 @@ import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
 import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource;
@@ -85,9 +83,9 @@ public class EffectiveBuildTest {
         ContainerSchemaNode grpSubSubCon2 = (ContainerSchemaNode) grpSubCon2.getDataChildByName(q6);
         assertNotNull(grpSubSubCon2);
 
-        assertPathEquals(SchemaPath.create(true, q1, q2, q3), subSubCon);
-        assertPathEquals(SchemaPath.create(true, q4, q5, q6), subSubCon2);
-        assertPathEquals(SchemaPath.create(true, q7, q5, q6), grpSubSubCon2);
+        assertEquals(q3, subSubCon.getQName());
+        assertEquals(q6, subSubCon2.getQName());
+        assertEquals(q6, grpSubSubCon2.getQName());
     }
 
     @Test
index 0ee7f97694ca1d5b8cf938265e478cc3c761f595..528b5f8677f9e20647d2f15ad34eb8fc4d13e968 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.stmt;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
 
 import java.util.Collection;
@@ -31,43 +30,28 @@ import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.ModuleImport;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.Submodule;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
 import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
 import org.opendaylight.yangtools.yang.parser.spi.source.SourceException;
-import org.opendaylight.yangtools.yang.parser.spi.source.StatementStreamSource;
 
 public class EffectiveModuleTest {
-
-    private static final StatementStreamSource ROOT_MODULE = sourceForResource(
-            "/semantic-statement-parser/effective-module/root.yang");
-    private static final StatementStreamSource IMPORTED_MODULE = sourceForResource(
-            "/semantic-statement-parser/effective-module/imported.yang");
-    private static final StatementStreamSource SUBMODULE = sourceForResource(
-            "/semantic-statement-parser/effective-module/submod.yang");
-
     private static final QNameModule ROOT_MODULE_QNAME = QNameModule.create(XMLNamespace.of("root-ns"));
-
     private static final QName CONT = QName.create(ROOT_MODULE_QNAME, "cont");
     private static final QName FEATURE1 = QName.create(ROOT_MODULE_QNAME, "feature1");
-
-    private static final SchemaPath FEATURE1_SCHEMA_PATH = SchemaPath.create(true, FEATURE1);
-
     private static final Revision REVISION = Revision.of("2000-01-01");
 
     @Test
     public void effectiveBuildTest() throws SourceException, ReactorException {
-        SchemaContext result = RFC7950Reactors.defaultReactor().newBuild()
-                .addSources(ROOT_MODULE, IMPORTED_MODULE, SUBMODULE)
-                .buildEffective();
-
-        assertNotNull(result);
-
-        Module rootModule = result.findModules("root").iterator().next();
+        final Module rootModule = RFC7950Reactors.defaultReactor().newBuild()
+                .addSources(
+                    sourceForResource("/semantic-statement-parser/effective-module/root.yang"),
+                    sourceForResource("/semantic-statement-parser/effective-module/imported.yang"),
+                    sourceForResource("/semantic-statement-parser/effective-module/submod.yang"))
+                .buildEffective()
+                .findModules("root").iterator().next();
         assertNotNull(rootModule);
 
         assertEquals("root-pref", rootModule.getPrefix());
@@ -121,7 +105,6 @@ public class EffectiveModuleTest {
         final FeatureDefinition featureStmt = features.iterator().next();
         assertNotNull(featureStmt);
         assertEquals(FEATURE1, featureStmt.getQName());
-        assertPathEquals(FEATURE1_SCHEMA_PATH, featureStmt);
         assertEquals(Optional.of("feature1 description"), featureStmt.getDescription());
         assertEquals(Optional.of("feature1 reference"), featureStmt.getReference());
         assertEquals(Status.CURRENT, featureStmt.getStatus());
index fac4662d58abf88038ac5ccf8e8b886d8ddced88..9e395ab67444c6909ca418b5687bd89bee7831eb 100644 (file)
@@ -27,7 +27,6 @@ import org.opendaylight.yangtools.yang.model.api.ExtensionDefinition;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModuleEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.UnrecognizedStatement;
@@ -79,7 +78,6 @@ public class EffectiveSchemaContextTest {
         assertFalse(schemaContext.getDescription().isPresent());
         assertFalse(schemaContext.getReference().isPresent());
         assertEquals(SchemaContext.NAME, schemaContext.getQName());
-        assertEquals(SchemaPath.ROOT, schemaContext.getPath());
         assertEquals(Status.CURRENT, schemaContext.getStatus());
         assertNotNull(schemaContext.getUses());
         assertTrue(schemaContext.getUses().isEmpty());
index ad063bd93a50dbe2c218295ba11f2e2654386ae9..6fde4e592a9799ffd92ec3b24d74995b705548e3 100644 (file)
@@ -14,15 +14,13 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 
-import java.util.Arrays;
+import com.google.common.collect.Iterables;
 import java.util.Collection;
 import java.util.Map;
 import java.util.Optional;
-import java.util.stream.Collectors;
 import org.eclipse.jdt.annotation.Nullable;
-import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
@@ -44,7 +42,6 @@ import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
 import org.opendaylight.yangtools.yang.model.api.stmt.RefineEffectiveStatement;
@@ -52,24 +49,25 @@ import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Desce
 import org.opendaylight.yangtools.yang.model.api.stmt.UnrecognizedStatement;
 
 public class GroupingTest {
-    private EffectiveModelContext ctx;
-    private Module foo;
-    private Module baz;
-
-    @Before
-    public void init() throws Exception {
-        ctx = TestUtils.parseYangSources("/model");
-        foo = TestUtils.findModule(ctx, "foo").get();
-        baz = TestUtils.findModule(ctx, "baz").get();
-        assertEquals(3, ctx.getModules().size());
+    private static EffectiveModelContext CTX;
+    private static Module FOO;
+    private static Module BAZ;
+
+    @BeforeClass
+    public static void beforeClass() throws Exception {
+        CTX = TestUtils.parseYangSources("/model");
+        assertEquals(3, CTX.getModules().size());
+
+        FOO = Iterables.getOnlyElement(CTX.findModules("foo"));
+        BAZ = Iterables.getOnlyElement(CTX.findModules("baz"));
     }
 
     @Test
     public void testRefine() {
-        final ContainerSchemaNode peer = (ContainerSchemaNode) foo.getDataChildByName(QName.create(
-                foo.getQNameModule(), "peer"));
+        final ContainerSchemaNode peer = (ContainerSchemaNode) FOO.getDataChildByName(QName.create(
+                FOO.getQNameModule(), "peer"));
         final ContainerSchemaNode destination = (ContainerSchemaNode) peer.getDataChildByName(QName.create(
-                foo.getQNameModule(), "destination"));
+                FOO.getQNameModule(), "destination"));
 
         final Collection<? extends UsesNode> usesNodes = destination.getUses();
         assertEquals(1, usesNodes.size());
@@ -140,7 +138,7 @@ public class GroupingTest {
 
     @Test
     public void testGrouping() {
-        final Collection<? extends GroupingDefinition> groupings = baz.getGroupings();
+        final Collection<? extends GroupingDefinition> groupings = BAZ.getGroupings();
         assertEquals(1, groupings.size());
         final GroupingDefinition grouping = groupings.iterator().next();
         final Collection<? extends DataSchemaNode> children = grouping.getChildNodes();
@@ -154,15 +152,15 @@ public class GroupingTest {
 
 
         // get grouping
-        final Collection<? extends GroupingDefinition> groupings = baz.getGroupings();
+        final Collection<? extends GroupingDefinition> groupings = BAZ.getGroupings();
         assertEquals(1, groupings.size());
         final GroupingDefinition grouping = groupings.iterator().next();
 
         // get node containing uses
-        final ContainerSchemaNode peer = (ContainerSchemaNode) foo.getDataChildByName(QName.create(
-                foo.getQNameModule(), "peer"));
+        final ContainerSchemaNode peer = (ContainerSchemaNode) FOO.getDataChildByName(QName.create(
+                FOO.getQNameModule(), "peer"));
         final ContainerSchemaNode destination = (ContainerSchemaNode) peer.getDataChildByName(QName.create(
-                foo.getQNameModule(), "destination"));
+                FOO.getQNameModule(), "destination"));
 
         // check uses
         final Collection<? extends UsesNode> uses = destination.getUses();
@@ -170,25 +168,25 @@ public class GroupingTest {
 
         // check uses process
         final AnyxmlSchemaNode data_u = (AnyxmlSchemaNode) destination.getDataChildByName(QName.create(
-                foo.getQNameModule(), "data"));
+                FOO.getQNameModule(), "data"));
         assertNotNull(data_u);
         assertTrue(data_u.isAddedByUses());
 
         final AnyxmlSchemaNode data_g = (AnyxmlSchemaNode) grouping.getDataChildByName(QName.create(
-                baz.getQNameModule(), "data"));
+                BAZ.getQNameModule(), "data"));
         assertNotNull(data_g);
         assertFalse(data_g.isAddedByUses());
         assertFalse(data_u.equals(data_g));
         assertEquals(data_g, extractOriginal(data_u));
 
         final ChoiceSchemaNode how_u = (ChoiceSchemaNode) destination.getDataChildByName(QName.create(
-                foo.getQNameModule(), "how"));
+                FOO.getQNameModule(), "how"));
         assertNotNull(how_u);
         assertIsAddedByUses(how_u, true);
         assertEquals(2, how_u.getCases().size());
 
         final ChoiceSchemaNode how_g = (ChoiceSchemaNode) grouping.getDataChildByName(QName.create(
-                baz.getQNameModule(), "how"));
+                BAZ.getQNameModule(), "how"));
         assertNotNull(how_g);
         assertIsAddedByUses(how_g, false);
         assertEquals(2, how_g.getCases().size());
@@ -196,7 +194,7 @@ public class GroupingTest {
         assertEquals(how_g, extractOriginal(how_u));
 
         final LeafSchemaNode address_u = (LeafSchemaNode) destination.getDataChildByName(QName.create(
-                foo.getQNameModule(), "address"));
+                FOO.getQNameModule(), "address"));
         assertNotNull(address_u);
         assertEquals(Optional.of("1.2.3.4"), address_u.getType().getDefaultValue());
         assertEquals(Optional.of("IP address of target node"), address_u.getDescription());
@@ -206,7 +204,7 @@ public class GroupingTest {
         assertFalse(address_u.isMandatory());
 
         final LeafSchemaNode address_g = (LeafSchemaNode) grouping.getDataChildByName(QName.create(
-                baz.getQNameModule(), "address"));
+                BAZ.getQNameModule(), "address"));
         assertNotNull(address_g);
         assertFalse(address_g.isAddedByUses());
         assertEquals(Optional.empty(), address_g.getType().getDefaultValue());
@@ -218,24 +216,24 @@ public class GroupingTest {
         assertEquals(address_g, extractOriginal(address_u));
 
         final ContainerSchemaNode port_u = (ContainerSchemaNode) destination.getDataChildByName(QName.create(
-                foo.getQNameModule(), "port"));
+                FOO.getQNameModule(), "port"));
         assertNotNull(port_u);
         assertIsAddedByUses(port_u, true);
 
         final ContainerSchemaNode port_g = (ContainerSchemaNode) grouping.getDataChildByName(QName.create(
-                baz.getQNameModule(), "port"));
+                BAZ.getQNameModule(), "port"));
         assertNotNull(port_g);
         assertIsAddedByUses(port_g, false);
         assertFalse(port_u.equals(port_g));
         assertEquals(port_g, extractOriginal(port_u));
 
         final ListSchemaNode addresses_u = (ListSchemaNode) destination.getDataChildByName(QName.create(
-                foo.getQNameModule(), "addresses"));
+                FOO.getQNameModule(), "addresses"));
         assertNotNull(addresses_u);
         assertIsAddedByUses(addresses_u, true);
 
         final ListSchemaNode addresses_g = (ListSchemaNode) grouping.getDataChildByName(QName.create(
-                baz.getQNameModule(), "addresses"));
+                BAZ.getQNameModule(), "addresses"));
         assertNotNull(addresses_g);
         assertIsAddedByUses(addresses_g, false);
         assertFalse(addresses_u.equals(addresses_g));
@@ -262,28 +260,28 @@ public class GroupingTest {
         // suffix _g = defined in grouping
 
         // get grouping
-        final Collection<? extends GroupingDefinition> groupings = baz.getGroupings();
+        final Collection<? extends GroupingDefinition> groupings = BAZ.getGroupings();
         assertEquals(1, groupings.size());
         final GroupingDefinition grouping = groupings.iterator().next();
 
         // check uses
-        final Collection<? extends UsesNode> uses = foo.getUses();
+        final Collection<? extends UsesNode> uses = FOO.getUses();
         assertEquals(1, uses.size());
 
         // check uses process
-        final AnyxmlSchemaNode data_u = (AnyxmlSchemaNode) foo.getDataChildByName(QName.create(foo.getQNameModule(),
+        final AnyxmlSchemaNode data_u = (AnyxmlSchemaNode) FOO.getDataChildByName(QName.create(FOO.getQNameModule(),
                 "data"));
         assertNotNull(data_u);
         assertTrue(data_u.isAddedByUses());
 
         final AnyxmlSchemaNode data_g = (AnyxmlSchemaNode) grouping.getDataChildByName(QName.create(
-            baz.getQNameModule(), "data"));
+            BAZ.getQNameModule(), "data"));
         assertNotNull(data_g);
         assertFalse(data_g.isAddedByUses());
         assertFalse(data_u.equals(data_g));
         assertEquals(data_g, extractOriginal(data_u));
 
-        final ChoiceSchemaNode how_u = (ChoiceSchemaNode) foo.getDataChildByName(QName.create(foo.getQNameModule(),
+        final ChoiceSchemaNode how_u = (ChoiceSchemaNode) FOO.getDataChildByName(QName.create(FOO.getQNameModule(),
                 "how"));
         assertNotNull(how_u);
         assertIsAddedByUses(how_u, true);
@@ -292,21 +290,21 @@ public class GroupingTest {
         assertEquals(2, cases_u.size());
         final CaseSchemaNode interval = how_u.findCaseNodes("interval").iterator().next();
         assertFalse(interval.isAugmenting());
-        final LeafSchemaNode name = (LeafSchemaNode) interval.getDataChildByName(QName.create(foo.getQNameModule(),
+        final LeafSchemaNode name = (LeafSchemaNode) interval.getDataChildByName(QName.create(FOO.getQNameModule(),
                 "name"));
         assertTrue(name.isAugmenting());
         final LeafSchemaNode intervalLeaf = (LeafSchemaNode) interval.getDataChildByName(QName.create(
-                foo.getQNameModule(), "interval"));
+                FOO.getQNameModule(), "interval"));
         assertFalse(intervalLeaf.isAugmenting());
 
         final ChoiceSchemaNode how_g = (ChoiceSchemaNode) grouping.getDataChildByName(QName.create(
-                baz.getQNameModule(), "how"));
+                BAZ.getQNameModule(), "how"));
         assertNotNull(how_g);
         assertIsAddedByUses(how_g, false);
         assertFalse(how_u.equals(how_g));
         assertEquals(how_g, extractOriginal(how_u));
 
-        final LeafSchemaNode address_u = (LeafSchemaNode) foo.getDataChildByName(QName.create(foo.getQNameModule(),
+        final LeafSchemaNode address_u = (LeafSchemaNode) FOO.getDataChildByName(QName.create(FOO.getQNameModule(),
                 "address"));
         assertNotNull(address_u);
         assertEquals(Optional.empty(), address_u.getType().getDefaultValue());
@@ -316,7 +314,7 @@ public class GroupingTest {
         assertTrue(address_u.isAddedByUses());
 
         final LeafSchemaNode address_g = (LeafSchemaNode) grouping.getDataChildByName(QName.create(
-                baz.getQNameModule(), "address"));
+                BAZ.getQNameModule(), "address"));
         assertNotNull(address_g);
         assertFalse(address_g.isAddedByUses());
         assertEquals(Optional.empty(), address_g.getType().getDefaultValue());
@@ -326,32 +324,32 @@ public class GroupingTest {
         assertFalse(address_u.equals(address_g));
         assertEquals(address_g, extractOriginal(address_u));
 
-        final ContainerSchemaNode port_u = (ContainerSchemaNode) foo.getDataChildByName(QName.create(
-                foo.getQNameModule(), "port"));
+        final ContainerSchemaNode port_u = (ContainerSchemaNode) FOO.getDataChildByName(QName.create(
+                FOO.getQNameModule(), "port"));
         assertNotNull(port_u);
         assertIsAddedByUses(port_u, true);
 
         final ContainerSchemaNode port_g = (ContainerSchemaNode) grouping.getDataChildByName(QName.create(
-                baz.getQNameModule(), "port"));
+                BAZ.getQNameModule(), "port"));
         assertNotNull(port_g);
         assertIsAddedByUses(port_g, false);
         assertFalse(port_u.equals(port_g));
         assertEquals(port_g, extractOriginal(port_u));
 
-        final ListSchemaNode addresses_u = (ListSchemaNode) foo.getDataChildByName(QName.create(foo.getQNameModule(),
+        final ListSchemaNode addresses_u = (ListSchemaNode) FOO.getDataChildByName(QName.create(FOO.getQNameModule(),
                 "addresses"));
         assertNotNull(addresses_u);
         assertIsAddedByUses(addresses_u, true);
 
         final ListSchemaNode addresses_g = (ListSchemaNode) grouping.getDataChildByName(QName.create(
-                baz.getQNameModule(), "addresses"));
+                BAZ.getQNameModule(), "addresses"));
         assertNotNull(addresses_g);
         assertIsAddedByUses(addresses_g, false);
         assertFalse(addresses_u.equals(addresses_g));
         assertEquals(addresses_g, extractOriginal(addresses_u));
 
         // grouping defined by 'uses'
-        final Collection<? extends GroupingDefinition> groupings_u = foo.getGroupings();
+        final Collection<? extends GroupingDefinition> groupings_u = FOO.getGroupings();
         assertEquals(0, groupings_u.size());
 
         // grouping defined in 'grouping' node
@@ -378,10 +376,10 @@ public class GroupingTest {
 
     @Test
     public void testCascadeUses() throws Exception {
-        ctx = TestUtils.parseYangSource("/grouping-test/cascade-uses.yang");
-        assertEquals(1, ctx.getModules().size());
+        final EffectiveModelContext loadModules = TestUtils.parseYangSource("/grouping-test/cascade-uses.yang");
+        assertEquals(1, loadModules.getModules().size());
 
-        final Module testModule = TestUtils.findModule(ctx, "cascade-uses").get();
+        final Module testModule =  Iterables.getOnlyElement(loadModules.findModules("cascade-uses"));
         final QNameModule namespace = testModule.getQNameModule();
         final Collection<? extends GroupingDefinition> groupings = testModule.getGroupings();
 
@@ -462,8 +460,7 @@ public class GroupingTest {
         // grouping-V/container-grouping-V
         assertNotNull(containerGroupingV);
         assertFalse(containerGroupingV.isAddedByUses());
-        SchemaPath expectedPath = createPath(true, expectedModule, "grouping-V", "container-grouping-V");
-        assertPathEquals(expectedPath, containerGroupingV);
+        assertEquals(QName.create(expectedModule, "container-grouping-V"), containerGroupingV.getQName());
         childNodes = containerGroupingV.getChildNodes();
         assertEquals(2, childNodes.size());
         for (final DataSchemaNode childNode : childNodes) {
@@ -473,15 +470,11 @@ public class GroupingTest {
         // grouping-V/container-grouping-V/leaf-grouping-X
         final LeafSchemaNode leafXinContainerV = (LeafSchemaNode) containerGroupingV.getDataChildByName(
             QName.create(namespace, "leaf-grouping-X"));
-        expectedPath = createPath(true, expectedModule, "grouping-V", "container-grouping-V",
-            "leaf-grouping-X");
-        assertPathEquals(expectedPath, leafXinContainerV);
+        assertEquals(QName.create(expectedModule, "leaf-grouping-X"), leafXinContainerV.getQName());
         // grouping-V/container-grouping-V/leaf-grouping-Y
         final LeafSchemaNode leafYinContainerV = (LeafSchemaNode) containerGroupingV.getDataChildByName(
             QName.create(namespace, "leaf-grouping-Y"));
-        expectedPath = createPath(true, expectedModule, "grouping-V", "container-grouping-V",
-            "leaf-grouping-Y");
-        assertPathEquals(expectedPath, leafYinContainerV);
+        assertEquals(QName.create(expectedModule, "leaf-grouping-Y"), leafYinContainerV.getQName());
 
         // grouping-X
         childNodes = gx.getChildNodes();
@@ -491,15 +484,13 @@ public class GroupingTest {
         final LeafSchemaNode leafXinGX = (LeafSchemaNode) gx.getDataChildByName(
             QName.create(namespace, "leaf-grouping-X"));
         assertFalse(leafXinGX.isAddedByUses());
-        expectedPath = createPath(true, expectedModule, "grouping-X", "leaf-grouping-X");
-        assertPathEquals(expectedPath, leafXinGX);
+        assertEquals(QName.create(expectedModule, "leaf-grouping-X"), leafXinGX.getQName());
 
         // grouping-X/leaf-grouping-Y
         final LeafSchemaNode leafYinGX = (LeafSchemaNode) gx.getDataChildByName(
             QName.create(namespace, "leaf-grouping-Y"));
         assertTrue(leafYinGX.isAddedByUses());
-        expectedPath = createPath(true, expectedModule, "grouping-X", "leaf-grouping-Y");
-        assertPathEquals(expectedPath, leafYinGX);
+        assertEquals(QName.create(expectedModule, "leaf-grouping-Y"), leafYinGX.getQName());
 
         // grouping-Y
         childNodes = gy.getChildNodes();
@@ -509,8 +500,7 @@ public class GroupingTest {
         final LeafSchemaNode leafYinGY = (LeafSchemaNode) gy.getDataChildByName(
             QName.create(namespace, "leaf-grouping-Y"));
         assertFalse(leafYinGY.isAddedByUses());
-        expectedPath = createPath(true, expectedModule, "grouping-Y", "leaf-grouping-Y");
-        assertPathEquals(expectedPath, leafYinGY);
+        assertEquals(QName.create(expectedModule, "leaf-grouping-Y"), leafYinGY.getQName());
 
         // grouping-Z
         childNodes = gz.getChildNodes();
@@ -520,8 +510,7 @@ public class GroupingTest {
         final LeafSchemaNode leafZinGZ = (LeafSchemaNode) gz.getDataChildByName(
             QName.create(namespace, "leaf-grouping-Z"));
         assertFalse(leafZinGZ.isAddedByUses());
-        expectedPath = createPath(true, expectedModule, "grouping-Z", "leaf-grouping-Z");
-        assertPathEquals(expectedPath, leafZinGZ);
+        assertEquals(QName.create(expectedModule, "leaf-grouping-Z"), leafZinGZ.getQName());
 
         // grouping-ZZ
         childNodes = gzz.getChildNodes();
@@ -531,8 +520,7 @@ public class GroupingTest {
         final LeafSchemaNode leafZZinGZZ = (LeafSchemaNode) gzz.getDataChildByName(
             QName.create(namespace, "leaf-grouping-ZZ"));
         assertFalse(leafZZinGZZ.isAddedByUses());
-        expectedPath = createPath(true, expectedModule, "grouping-ZZ", "leaf-grouping-ZZ");
-        assertPathEquals(expectedPath, leafZZinGZZ);
+        assertEquals(QName.create(expectedModule, "leaf-grouping-ZZ"), leafZZinGZZ.getQName());
 
         // TEST getOriginal from grouping-U
         assertEquals(gv.getDataChildByName(QName.create(namespace, "leaf-grouping-V")),
@@ -566,8 +554,9 @@ public class GroupingTest {
     public void testAddedByUsesLeafTypeQName() throws Exception {
         final EffectiveModelContext loadModules = TestUtils.parseYangSources("/added-by-uses-leaf-test");
         assertEquals(2, loadModules.getModules().size());
-        foo = TestUtils.findModule(loadModules, "foo").get();
-        final Module imp = TestUtils.findModule(loadModules, "import-module").get();
+
+        final Module foo = Iterables.getOnlyElement(loadModules.findModules("foo"));
+        final Module imp = Iterables.getOnlyElement(loadModules.findModules("import-module"));
 
         final LeafSchemaNode leaf = (LeafSchemaNode)
             ((ContainerSchemaNode) foo.getDataChildByName(QName.create(foo.getQNameModule(), "my-container")))
@@ -585,11 +574,6 @@ public class GroupingTest {
         assertEquals(leaf.getType().getQName(), impType.getQName());
     }
 
-    private static SchemaPath createPath(final boolean absolute, final QNameModule module, final String... names) {
-        return SchemaPath.create(
-            Arrays.stream(names).map(name -> QName.create(module, name)).collect(Collectors.toList()), true);
-    }
-
     private static void assertIsAddedByUses(final GroupingDefinition node, final boolean expected) {
         assertEquals(expected, node.isAddedByUses());
         for (DataSchemaNode child : node.getChildNodes()) {
index 916b8f9d5ff243737eaa3a6451e002ccd2a7363e..6b0d4d3b30c2a6c1c8b83292f2b1f07836aaaaeb 100644 (file)
@@ -7,8 +7,6 @@
  */
 package org.opendaylight.yangtools.yang.stmt;
 
-import static org.junit.Assert.assertEquals;
-
 import com.google.common.io.Files;
 import java.io.File;
 import java.io.FileFilter;
@@ -29,8 +27,6 @@ import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.ModuleImport;
 import org.opendaylight.yangtools.yang.model.api.ModuleLike;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Submodule;
 import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
 import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
@@ -281,26 +277,6 @@ public final class StmtTestUtils {
                 .orElse(null);
     }
 
-    /**
-     * Assertion that a {@link SchemaNode} reports expected path. This method deals with {@link SchemaNode#getPath()}
-     * being unavailable by comparing {@link SchemaNode#getQName()} to {@link SchemaPath#getLastComponent()}.
-     *
-     * @param expected Expected
-     * @param node Node to examine
-     * @throws AssertionError if the
-     */
-    public static void assertPathEquals(final SchemaPath expected, final SchemaNode node) {
-        final SchemaPath actual;
-        try {
-            actual = node.getPath();
-        } catch (UnsupportedOperationException e) {
-            LOG.trace("Node {} does not support getPath()", node, e);
-            assertEquals(expected.getLastComponent(), node.getQName());
-            return;
-        }
-        assertEquals(expected, actual);
-    }
-
     private static CrossSourceStatementReactor getReactor(final YangParserConfiguration config) {
         return YangParserConfiguration.DEFAULT.equals(config) ? RFC7950Reactors.defaultReactor()
             : RFC7950Reactors.defaultReactorBuilder(config).build();
index 9d5756e51dfb002aa1fb9b7321dbdd34bf40e2ea..490889fb591e84bf28ffb8ade02a5ac35aa3c621 100644 (file)
@@ -11,13 +11,10 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 
 import java.io.IOException;
 import java.net.URISyntaxException;
-import java.util.ArrayDeque;
 import java.util.Collection;
-import java.util.Deque;
 import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
@@ -32,7 +29,6 @@ import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.Uint8TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
@@ -114,60 +110,37 @@ public class UsesAugmentTest {
     public void testAugmentInUses() throws Exception {
         final Module testModule = TestUtils.findModule(context, "uses-grouping").get();
 
-        final Deque<QName> path = new ArrayDeque<>();
-
         // * notification pcreq
         final Collection<? extends NotificationDefinition> notifications = testModule.getNotifications();
         assertEquals(1, notifications.size());
         final NotificationDefinition pcreq = notifications.iterator().next();
         assertNotNull(pcreq);
-        QName expectedQName = QName.create(UG, "pcreq");
-        path.offer(expectedQName);
-        SchemaPath expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, pcreq);
+        assertEquals(QName.create(UG, "pcreq"), pcreq.getQName());
         Collection<? extends DataSchemaNode> childNodes = pcreq.getChildNodes();
         assertEquals(4, childNodes.size());
         // * |-- leaf version
         LeafSchemaNode version = (LeafSchemaNode) pcreq.getDataChildByName(QName.create(testModule.getQNameModule(),
                 "version"));
         assertNotNull(version);
-        expectedQName = QName.create(UG, "version");
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, version);
-        expectedQName = QName.create(UG, "version");
-        path.offer(expectedQName);
-        assertEquals(expectedQName, version.getType().getQName());
+        assertEquals(QName.create(UG, "version"), version.getQName());
+        assertEquals(QName.create(UG, "version"), version.getType().getQName());
         assertEquals(BaseTypes.uint8Type(), version.getType().getBaseType().getBaseType());
         assertTrue(version.isAddedByUses());
         // * |-- leaf type
         LeafSchemaNode type = (LeafSchemaNode) pcreq.getDataChildByName(QName.create(testModule.getQNameModule(),
                 "type"));
         assertNotNull(type);
-        expectedQName = QName.create(UG, "type");
         assertTrue(type.isAddedByUses());
-        path.pollLast();
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, type);
-        expectedQName = QName.create(GD, "int-ext");
-        path.offer(expectedQName);
-        assertEquals(expectedQName, type.getType().getQName());
+        assertEquals(QName.create(UG, "type"), type.getQName());
+        assertEquals(QName.create(GD, "int-ext"), type.getType().getQName());
         final UnionTypeDefinition union = (UnionTypeDefinition) type.getType().getBaseType();
-        assertEquals(QName.create(expectedQName, "union"), union.getQName());
+        assertEquals(QName.create(GD, "union"), union.getQName());
         assertEquals(2, union.getTypes().size());
         // * |-- list requests
         final ListSchemaNode requests = (ListSchemaNode) pcreq.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "requests"));
         assertNotNull(requests);
-        expectedQName = QName.create(UG, "requests");
-        assertEquals(expectedQName, requests.getQName());
-        path.pollLast();
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, requests);
+        assertEquals(QName.create(UG, "requests"), requests.getQName());
         assertFalse(requests.isAddedByUses());
         childNodes = requests.getChildNodes();
         assertEquals(3, childNodes.size());
@@ -175,10 +148,7 @@ public class UsesAugmentTest {
         final ContainerSchemaNode rp = (ContainerSchemaNode) requests.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "rp"));
         assertNotNull(rp);
-        expectedQName = QName.create(UG, "rp");
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, rp);
+        assertEquals(QName.create(UG, "rp"), rp.getQName());
         assertFalse(rp.isAddedByUses());
         childNodes = rp.getChildNodes();
         assertEquals(4, childNodes.size());
@@ -186,63 +156,36 @@ public class UsesAugmentTest {
         LeafSchemaNode processingRule = (LeafSchemaNode) rp.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "processing-rule"));
         assertNotNull(processingRule);
-        expectedQName = QName.create(UG, "processing-rule");
-        assertEquals(expectedQName, processingRule.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, processingRule);
+        assertEquals(QName.create(UG, "processing-rule"), processingRule.getQName());
         assertEquals(BaseTypes.booleanType(), processingRule.getType());
         assertTrue(processingRule.isAddedByUses());
         // * |-- |-- |-- leaf ignore
         LeafSchemaNode ignore = (LeafSchemaNode) rp.getDataChildByName(QName.create(testModule.getQNameModule(),
                 "ignore"));
         assertNotNull(ignore);
-        expectedQName = QName.create(UG, "ignore");
-        assertEquals(expectedQName, ignore.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, ignore);
+        assertEquals(QName.create(UG, "ignore"), ignore.getQName());
         assertEquals(BaseTypes.booleanType(), ignore.getType());
         assertTrue(ignore.isAddedByUses());
         // * |-- |-- |-- leaf priority
         final LeafSchemaNode priority = (LeafSchemaNode) rp.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "priority"));
         assertNotNull(priority);
-        expectedQName = QName.create(UG, "priority");
-        assertEquals(expectedQName, priority.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, priority);
-        expectedQName = QName.create(UG, "uint8");
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
+        assertEquals(QName.create(UG, "priority"), priority.getQName());
         // TODO
-        // assertEquals(expectedPath, priority.getType().getPath());
+        // assertEquals(QName.create(UG, "uint8"), priority.getType().getQName());
         assertEquals(BaseTypes.uint8Type(), priority.getType().getBaseType());
         assertTrue(priority.isAddedByUses());
         // * |-- |-- |-- container box
         ContainerSchemaNode box = (ContainerSchemaNode) rp.getDataChildByName(QName.create(testModule.getQNameModule(),
                 "box"));
         assertNotNull(box);
-        expectedQName = QName.create(UG, "box");
-        assertEquals(expectedQName, box.getQName());
-        path.pollLast();
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, box);
+        assertEquals(QName.create(UG, "box"), box.getQName());
         assertTrue(box.isAddedByUses());
         // * |-- |-- |-- |-- container order
         final ContainerSchemaNode order = (ContainerSchemaNode) box.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "order"));
         assertNotNull(order);
-        expectedQName = QName.create(UG, "order");
-        assertEquals(expectedQName, order.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, order);
+        assertEquals(QName.create(UG, "order"), order.getQName());
         assertTrue(order.isAddedByUses());
         assertTrue(order.isAugmenting());
         assertEquals(2, order.getChildNodes().size());
@@ -250,93 +193,54 @@ public class UsesAugmentTest {
         final LeafSchemaNode delete = (LeafSchemaNode) order.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "delete"));
         assertNotNull(delete);
-        expectedQName = QName.create(UG, "delete");
-        assertEquals(expectedQName, delete.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, delete);
+        assertEquals(QName.create(UG, "delete"), delete.getQName());
         assertEquals(BaseTypes.uint32Type(), delete.getType());
         assertTrue(delete.isAddedByUses());
         // * |-- |-- |-- |-- |-- leaf setup
         final LeafSchemaNode setup = (LeafSchemaNode) order.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "setup"));
         assertNotNull(setup);
-        expectedQName = QName.create(UG, "setup");
-        assertEquals(expectedQName, setup.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, setup);
+        assertEquals(QName.create(UG, "setup"), setup.getQName());
         assertEquals(BaseTypes.uint32Type(), setup.getType());
         assertTrue(setup.isAddedByUses());
         // * |-- |-- path-key-expansion
         final ContainerSchemaNode pke = (ContainerSchemaNode) requests.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "path-key-expansion"));
         assertNotNull(pke);
-        expectedQName = QName.create(UG, "path-key-expansion");
-        assertEquals(expectedQName, pke.getQName());
-        path.pollLast();
-        path.pollLast();
-        path.pollLast();
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, pke);
+        assertEquals(QName.create(UG, "path-key-expansion"), pke.getQName());
         assertFalse(pke.isAddedByUses());
         // * |-- |-- |-- path-key
         final ContainerSchemaNode pathKey = (ContainerSchemaNode) pke.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "path-key"));
         assertNotNull(pathKey);
-        expectedQName = QName.create(UG, "path-key");
-        assertEquals(expectedQName, pathKey.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, pathKey);
+        assertEquals(QName.create(UG, "path-key"), pathKey.getQName());
         assertFalse(pathKey.isAddedByUses());
         assertEquals(3, pathKey.getChildNodes().size());
         // * |-- |-- |-- |-- leaf processing-rule
         processingRule = (LeafSchemaNode) pathKey.getDataChildByName(QName.create(testModule.getQNameModule(),
                 "processing-rule"));
         assertNotNull(processingRule);
-        expectedQName = QName.create(UG, "processing-rule");
-        assertEquals(expectedQName, processingRule.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, processingRule);
+        assertEquals(QName.create(UG, "processing-rule"), processingRule.getQName());
         assertEquals(BaseTypes.booleanType(), processingRule.getType());
         assertTrue(processingRule.isAddedByUses());
         // * |-- |-- |-- |-- leaf ignore
         ignore = (LeafSchemaNode) pathKey.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
         assertNotNull(ignore);
-        expectedQName = QName.create(UG, "ignore");
-        assertEquals(expectedQName, ignore.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, ignore);
+        assertEquals(QName.create(UG, "ignore"), ignore.getQName());
         assertEquals(BaseTypes.booleanType(), ignore.getType());
         assertTrue(ignore.isAddedByUses());
         // * |-- |-- |-- |-- list path-keys
         final ListSchemaNode pathKeys = (ListSchemaNode) pathKey.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "path-keys"));
         assertNotNull(pathKeys);
-        expectedQName = QName.create(UG, "path-keys");
-        assertEquals(expectedQName, pathKeys.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, pathKeys);
+        assertEquals(QName.create(UG, "path-keys"), pathKeys.getQName());
         assertTrue(pathKeys.isAddedByUses());
         childNodes = pathKeys.getChildNodes();
         assertEquals(2, childNodes.size());
         // * |-- |-- |-- |-- |-- leaf version
         version = (LeafSchemaNode) pathKeys.getDataChildByName(QName.create(testModule.getQNameModule(), "version"));
         assertNotNull(version);
-        expectedQName = QName.create(UG, "version");
-        assertEquals(expectedQName, version.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, version);
+        assertEquals(QName.create(UG, "version"), version.getQName());
         assertTrue(version.getType() instanceof Uint8TypeDefinition);
         assertEquals(BaseTypes.uint8Type(), version.getType().getBaseType().getBaseType());
         assertTrue(version.isAddedByUses());
@@ -344,12 +248,7 @@ public class UsesAugmentTest {
         // * |-- |-- |-- |-- |-- leaf type
         type = (LeafSchemaNode) pathKeys.getDataChildByName(QName.create(testModule.getQNameModule(), "type"));
         assertNotNull(type);
-        expectedQName = QName.create(UG, "type");
-        assertEquals(expectedQName, type.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, type);
+        assertEquals(QName.create(UG, "type"), type.getQName());
         assertTrue(type.getType() instanceof UnionTypeDefinition);
         assertTrue(type.isAddedByUses());
         assertTrue(type.isAugmenting());
@@ -357,282 +256,155 @@ public class UsesAugmentTest {
         final ContainerSchemaNode sc = (ContainerSchemaNode) requests.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "segment-computation"));
         assertNotNull(sc);
-        expectedQName = QName.create(UG, "segment-computation");
-        assertEquals(expectedQName, sc.getQName());
-        path.pollLast();
-        path.pollLast();
-        path.pollLast();
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, sc);
+        assertEquals(QName.create(UG, "segment-computation"), sc.getQName());
         assertFalse(sc.isAddedByUses());
         // * |-- |-- |-- container p2p
         final ContainerSchemaNode p2p = (ContainerSchemaNode) sc.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "p2p"));
         assertNotNull(p2p);
-        expectedQName = QName.create(UG, "p2p");
-        assertEquals(expectedQName, p2p.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, p2p);
+        assertEquals(QName.create(UG, "p2p"), p2p.getQName());
         assertFalse(p2p.isAddedByUses());
         // * |-- |-- |-- |-- container endpoints
         final ContainerSchemaNode endpoints = (ContainerSchemaNode) p2p.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "endpoints"));
         assertNotNull(endpoints);
-        expectedQName = QName.create(UG, "endpoints");
-        assertEquals(expectedQName, endpoints.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, endpoints);
+        assertEquals(QName.create(UG, "endpoints"), endpoints.getQName());
         assertFalse(endpoints.isAddedByUses());
         // * |-- |-- |-- |-- |-- leaf processing-rule
         processingRule = (LeafSchemaNode) endpoints.getDataChildByName(QName.create(testModule.getQNameModule(),
                 "processing-rule"));
         assertNotNull(processingRule);
-        expectedQName = QName.create(UG, "processing-rule");
-        assertEquals(expectedQName, processingRule.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, processingRule);
+        assertEquals(QName.create(UG, "processing-rule"), processingRule.getQName());
         assertEquals(BaseTypes.booleanType(), processingRule.getType());
         assertTrue(processingRule.isAddedByUses());
         // * |-- |-- |-- |-- |-- leaf ignore
         ignore = (LeafSchemaNode) endpoints.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
         assertNotNull(ignore);
-        expectedQName = QName.create(UG, "ignore");
-        assertEquals(expectedQName, ignore.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, ignore);
+        assertEquals(QName.create(UG, "ignore"), ignore.getQName());
         assertEquals(BaseTypes.booleanType(), ignore.getType());
         assertTrue(ignore.isAddedByUses());
         // * |-- |-- |-- |-- |-- container box
         box = (ContainerSchemaNode) endpoints.getDataChildByName(QName.create(testModule.getQNameModule(), "box"));
         assertNotNull(box);
-        expectedQName = QName.create(UG, "box");
-        assertEquals(expectedQName, box.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, box);
+        assertEquals(QName.create(UG, "box"), box.getQName());
         assertTrue(box.isAddedByUses());
         // * |-- |-- |-- |-- |-- choice address-family
         final ChoiceSchemaNode af = (ChoiceSchemaNode) endpoints.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "address-family"));
         assertNotNull(af);
-        expectedQName = QName.create(UG, "address-family");
-        assertEquals(expectedQName, af.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, af);
+        assertEquals(QName.create(UG, "address-family"), af.getQName());
         assertTrue(af.isAddedByUses());
         // * |-- |-- |-- |-- container reported-route
         final ContainerSchemaNode reportedRoute = (ContainerSchemaNode) p2p.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "reported-route"));
         assertNotNull(reportedRoute);
-        expectedQName = QName.create(UG, "reported-route");
-        assertEquals(expectedQName, reportedRoute.getQName());
-        path.pollLast();
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, reportedRoute);
+        assertEquals(QName.create(UG, "reported-route"), reportedRoute.getQName());
         assertFalse(reportedRoute.isAddedByUses());
         // * |-- |-- |-- |-- |-- leaf processing-rule
         processingRule = (LeafSchemaNode) reportedRoute.getDataChildByName(QName.create(testModule.getQNameModule(),
                 "processing-rule"));
         assertNotNull(processingRule);
-        expectedQName = QName.create(UG, "processing-rule");
-        assertEquals(expectedQName, processingRule.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, processingRule);
+        assertEquals(QName.create(UG, "processing-rule"), processingRule.getQName());
         assertEquals(BaseTypes.booleanType(), processingRule.getType());
         assertTrue(processingRule.isAddedByUses());
         // * |-- |-- |-- |-- |-- leaf ignore
         ignore = (LeafSchemaNode) reportedRoute.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
         assertNotNull(ignore);
-        expectedQName = QName.create(UG, "ignore");
-        assertEquals(expectedQName, ignore.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, ignore);
+        assertEquals(QName.create(UG, "ignore"), ignore.getQName());
         assertEquals(BaseTypes.booleanType(), ignore.getType());
         assertTrue(ignore.isAddedByUses());
         // * |-- |-- |-- |-- |-- list subobjects
         final ListSchemaNode subobjects = (ListSchemaNode) reportedRoute.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "subobjects"));
         assertNotNull(subobjects);
-        expectedQName = QName.create(UG, "subobjects");
-        assertEquals(expectedQName, subobjects.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, subobjects);
+        assertEquals(QName.create(UG, "subobjects"), subobjects.getQName());
         assertTrue(subobjects.isAddedByUses());
         // * |-- |-- |-- |-- |-- container bandwidth
         ContainerSchemaNode bandwidth = (ContainerSchemaNode) reportedRoute.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "bandwidth"));
         assertNotNull(bandwidth);
-        expectedQName = QName.create(UG, "bandwidth");
-        assertEquals(expectedQName, bandwidth.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, bandwidth);
+        assertEquals(QName.create(UG, "bandwidth"), bandwidth.getQName());
         assertFalse(bandwidth.isAddedByUses());
         // * |-- |-- |-- |-- container bandwidth
         bandwidth = (ContainerSchemaNode) p2p
                 .getDataChildByName(QName.create(testModule.getQNameModule(), "bandwidth"));
         assertNotNull(bandwidth);
-        expectedQName = QName.create(UG, "bandwidth");
-        assertEquals(expectedQName, bandwidth.getQName());
-        path.pollLast();
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, bandwidth);
+        assertEquals(QName.create(UG, "bandwidth"), bandwidth.getQName());
         assertTrue(bandwidth.isAddedByUses());
         // * |-- |-- |-- |-- |-- leaf processing-rule
         processingRule = (LeafSchemaNode) bandwidth.getDataChildByName(QName.create(testModule.getQNameModule(),
                 "processing-rule"));
         assertNotNull(processingRule);
-        expectedQName = QName.create(UG, "processing-rule");
-        assertEquals(expectedQName, processingRule.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, processingRule);
+        assertEquals(QName.create(UG, "processing-rule"), processingRule.getQName());
         assertEquals(BaseTypes.booleanType(), processingRule.getType());
         assertTrue(processingRule.isAddedByUses());
         // * |-- |-- |-- |-- |-- leaf ignore
         ignore = (LeafSchemaNode) bandwidth.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
         assertNotNull(ignore);
-        expectedQName = QName.create(UG, "ignore");
-        assertEquals(expectedQName, ignore.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, ignore);
+        assertEquals(QName.create(UG, "ignore"), ignore.getQName());
         assertEquals(BaseTypes.booleanType(), ignore.getType());
         assertTrue(ignore.isAddedByUses());
         // * |-- |-- |-- |-- |-- container bandwidth
         final ContainerSchemaNode bandwidthInner = (ContainerSchemaNode) bandwidth.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "bandwidth"));
         assertNotNull(bandwidthInner);
-        expectedQName = QName.create(UG, "bandwidth");
-        assertEquals(expectedQName, bandwidth.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, bandwidthInner);
+        assertEquals(QName.create(UG, "bandwidth"), bandwidth.getQName());
         assertTrue(bandwidthInner.isAddedByUses());
         // * |-- list svec
         final ListSchemaNode svec = (ListSchemaNode) pcreq.getDataChildByName(QName.create(testModule.getQNameModule(),
                 "svec"));
         assertNotNull(svec);
-        expectedQName = QName.create(UG, "svec");
-        assertEquals(expectedQName, svec.getQName());
-        path.pollLast();
-        path.pollLast();
-        path.pollLast();
-        path.pollLast();
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, svec);
+        assertEquals(QName.create(UG, "svec"), svec.getQName());
         assertFalse(svec.isAddedByUses());
         // * |-- |-- leaf link-diverse
         final LeafSchemaNode linkDiverse = (LeafSchemaNode) svec.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "link-diverse"));
         assertNotNull(linkDiverse);
-        expectedQName = QName.create(UG, "link-diverse");
-        assertEquals(expectedQName, linkDiverse.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, linkDiverse);
+        assertEquals(QName.create(UG, "link-diverse"), linkDiverse.getQName());
         assertEquals(BaseTypes.booleanType(), linkDiverse.getType().getBaseType());
         assertTrue(linkDiverse.isAddedByUses());
         // * |-- |-- leaf processing-rule
         processingRule = (LeafSchemaNode) svec.getDataChildByName(QName.create(testModule.getQNameModule(),
                 "processing-rule"));
         assertNotNull(processingRule);
-        expectedQName = QName.create(UG, "processing-rule");
-        assertEquals(expectedQName, processingRule.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, processingRule);
+        assertEquals(QName.create(UG, "processing-rule"), processingRule.getQName());
         assertEquals(BaseTypes.booleanType(), processingRule.getType());
         assertTrue(processingRule.isAddedByUses());
         // * |-- |-- leaf ignore
         ignore = (LeafSchemaNode) svec.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
         assertNotNull(ignore);
-        expectedQName = QName.create(UG, "ignore");
-        assertEquals(expectedQName, ignore.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, ignore);
+        assertEquals(QName.create(UG, "ignore"), ignore.getQName());
         assertEquals(BaseTypes.booleanType(), ignore.getType());
         assertTrue(ignore.isAddedByUses());
         // * |-- |-- list metric
         final ListSchemaNode metric = (ListSchemaNode) svec.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "metric"));
         assertNotNull(metric);
-        expectedQName = QName.create(UG, "metric");
-        assertEquals(expectedQName, metric.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, metric);
+        assertEquals(QName.create(UG, "metric"), metric.getQName());
         assertFalse(metric.isAddedByUses());
         // * |-- |-- |-- leaf metric-type
         final LeafSchemaNode metricType = (LeafSchemaNode) metric.getDataChildByName(QName.create(
                 testModule.getQNameModule(), "metric-type"));
         assertNotNull(metricType);
-        expectedQName = QName.create(UG, "metric-type");
-        assertEquals(expectedQName, metricType.getQName());
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, metricType);
+        assertEquals(QName.create(UG, "metric-type"), metricType.getQName());
         assertEquals(BaseTypes.uint8Type(), metricType.getType());
         assertTrue(metricType.isAddedByUses());
         // * |-- |-- |-- box
         box = (ContainerSchemaNode) metric.getDataChildByName(QName.create(testModule.getQNameModule(), "box"));
         assertNotNull(box);
-        expectedQName = QName.create(UG, "box");
-        assertEquals(expectedQName, box.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, box);
+        assertEquals(QName.create(UG, "box"), box.getQName());
         assertTrue(box.isAddedByUses());
         // * |-- |-- |-- leaf processing-rule
         processingRule = (LeafSchemaNode) metric.getDataChildByName(QName.create(testModule.getQNameModule(),
                 "processing-rule"));
         assertNotNull(processingRule);
-        expectedQName = QName.create(UG, "processing-rule");
-        assertEquals(expectedQName, processingRule.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, processingRule);
+        assertEquals(QName.create(UG, "processing-rule"), processingRule.getQName());
         assertEquals(BaseTypes.booleanType(), processingRule.getType());
         assertTrue(processingRule.isAddedByUses());
         // * |-- |-- |-- leaf ignore
         ignore = (LeafSchemaNode) metric.getDataChildByName(QName.create(testModule.getQNameModule(), "ignore"));
         assertNotNull(ignore);
-        expectedQName = QName.create(UG, "ignore");
-        assertEquals(expectedQName, ignore.getQName());
-        path.pollLast();
-        path.offer(expectedQName);
-        expectedPath = SchemaPath.create(path, true);
-        assertPathEquals(expectedPath, ignore);
+        assertEquals(QName.create(UG, "ignore"), ignore.getQName());
         assertEquals(BaseTypes.booleanType(), ignore.getType());
         assertTrue(ignore.isAddedByUses());
     }
index ec06bba087cc3ca45596e53995a328c19f6acff5..b8e7d63accf331d82e86f09dd7d379f4e96c16cb 100644 (file)
@@ -11,11 +11,8 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
 import java.util.Optional;
 import org.junit.Before;
 import org.junit.Test;
@@ -32,16 +29,14 @@ import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.UsesNode;
 
 public class YangParserSimpleTest {
-    private static final QNameModule SN = QNameModule.create(XMLNamespace.of("urn:opendaylight:simple-nodes"),
-        Revision.of("2013-07-30"));
+    private static final XMLNamespace NS = XMLNamespace.of("urn:opendaylight:simple-nodes");
+    private static final QNameModule SN = QNameModule.create(NS, Revision.of("2013-07-30"));
     private static final QName SN_NODES = QName.create(SN, "nodes");
-    private static final SchemaPath SN_NODES_PATH = SchemaPath.create(true, SN_NODES);
 
     private SchemaContext context;
     private Module testModule;
@@ -149,7 +144,6 @@ public class YangParserSimpleTest {
                 .getDataChildByName(QName.create(testModule.getQNameModule(), "nodes"));
         // test SchemaNode args
         assertEquals(SN_NODES, nodes.getQName());
-        assertPathEquals(SN_NODES_PATH, nodes);
         assertEquals(Optional.of("nodes collection"), nodes.getDescription());
         assertEquals(Optional.of("nodes ref"), nodes.getReference());
         assertEquals(Status.CURRENT, nodes.getStatus());
@@ -202,8 +196,8 @@ public class YangParserSimpleTest {
         assertEquals(8, nodes.getChildNodes().size());
         final LeafListSchemaNode added = (LeafListSchemaNode)nodes.getDataChildByName(QName.create(
             testModule.getQNameModule(), "added"));
-        assertPathEquals(createPath("nodes", "added"), added);
-        assertEquals(createPath("mytype").getLastComponent(), added.getType().getQName());
+        assertEquals(QName.create(SN, "added"), added.getQName());
+        assertEquals(QName.create(SN, "mytype"), added.getType().getQName());
 
         final ListSchemaNode links = (ListSchemaNode) nodes.getDataChildByName(QName.create(
             testModule.getQNameModule(), "links"));
@@ -219,17 +213,4 @@ public class YangParserSimpleTest {
         final UsesNode use = uses.iterator().next();
         assertEquals(nodeGroup, use.getSourceGrouping());
     }
-
-
-    private static final XMLNamespace NS = XMLNamespace.of("urn:opendaylight:simple-nodes");
-
-    private static SchemaPath createPath(final String... names) {
-        final Revision rev = Revision.of("2013-07-30");
-        final List<QName> path = new ArrayList<>();
-        for (final String name : names) {
-            path.add(QName.create(NS, rev, name));
-        }
-        return SchemaPath.create(path, true);
-    }
-
 }
index ce22eaedac0448bcd6a079a8317d7fe663947a2a..5135b130992a5826848c4fceeb42d558d4cd37c9 100644 (file)
@@ -12,7 +12,6 @@ import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.assertPathEquals;
 import static org.opendaylight.yangtools.yang.stmt.StmtTestUtils.sourceForResource;
 
 import com.google.common.collect.Range;
@@ -50,7 +49,6 @@ import org.opendaylight.yangtools.yang.model.api.ModuleImport;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
@@ -127,8 +125,6 @@ public class YangParserTest {
         // test SchemaNode args
         assertEquals(QName.create(BAR, "ifEntry"), ifEntry.getQName());
 
-        assertPathEquals(SchemaPath.create(true, QName.create(BAR, "interfaces"), QName.create(BAR, "ifEntry")),
-            ifEntry);
         assertFalse(ifEntry.getDescription().isPresent());
         assertFalse(ifEntry.getReference().isPresent());
         assertEquals(Status.CURRENT, ifEntry.getStatus());
@@ -558,8 +554,6 @@ public class YangParserTest {
         final NotificationDefinition notification = notifications.iterator().next();
         // test SchemaNode args
         assertEquals(QName.create(BAZ, "event"), notification.getQName());
-        final SchemaPath expectedPath = SchemaPath.create(true,  QName.create(BAZ, "event"));
-        assertPathEquals(expectedPath, notification);
         assertFalse(notification.getDescription().isPresent());
         assertFalse(notification.getReference().isPresent());
         assertEquals(Status.CURRENT, notification.getStatus());
index 3e330101b998828598c64b6934df00ce9d069318..1ef3df167840fae51b0cd2a6043c7252f061861f 100644 (file)
@@ -8,27 +8,20 @@
 package org.opendaylight.yangtools.yang.thirdparty.plugin;
 
 import com.google.common.collect.ImmutableList;
-import org.eclipse.jdt.annotation.Nullable;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.UnknownEffectiveStatementBase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.EffectiveStmtCtx.Current;
-import org.opendaylight.yangtools.yang.parser.spi.meta.SchemaPathSupport;
 
 final class ThirdPartyExtensionEffectiveStatementImpl
         extends UnknownEffectiveStatementBase<String, ThirdPartyExtensionStatement>
         implements ThirdPartyExtensionEffectiveStatement {
-
-    private final @Nullable SchemaPath path;
     private final String valueFromNamespace;
 
     ThirdPartyExtensionEffectiveStatementImpl(final Current<String, ThirdPartyExtensionStatement> stmt,
             final ImmutableList<? extends EffectiveStatement<?, ?>> substatements) {
         super(stmt, substatements);
-        path = SchemaPathSupport.toOptionalPath(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType()));
         valueFromNamespace = stmt.getFromNamespace(ThirdPartyNamespace.class, Empty.getInstance());
     }
 
@@ -42,12 +35,6 @@ final class ThirdPartyExtensionEffectiveStatementImpl
         return getNodeType();
     }
 
-    @Override
-    @Deprecated
-    public SchemaPath getPath() {
-        return SchemaNodeDefaults.throwUnsupportedIfNull(this, path);
-    }
-
     @Override
     public ThirdPartyExtensionEffectiveStatement asEffectiveStatement() {
         return this;
index 2369ed24f919ba0c0752a71c46006532d5f6e42c..1d8c10d7ed5a2fb238bf9db6aff8dd66d2121401 100644 (file)
@@ -49,9 +49,7 @@ public abstract class AbstractSchemaTreeStatementSupport<D extends DeclaredState
         public boolean canReuseCurrent(final Current<QName, D> copy, final Current<QName, D> current,
                 final Collection<? extends EffectiveStatement<?, ?>> substatements) {
             return equalHistory(copy.history(), current.history())
-                && copy.getArgument().equals(current.getArgument())
-                // FIXME: 8.0.0: eliminate this call
-                && copy.equalParentPath(current);
+                && copy.getArgument().equals(current.getArgument());
         }
 
         private static boolean equalHistory(final CopyHistory copy, final CopyHistory current) {
@@ -74,7 +72,6 @@ public abstract class AbstractSchemaTreeStatementSupport<D extends DeclaredState
      * Return the {@link StatementPolicy} corresponding to a potentially-instantiated YANG statement. Statements are
      * reused as long as:
      * <ul>
-     *   <li>{@link Current#schemaPath()} does not change</li>
      *   <li>{@link Current#argument()} does not change</li>
      *   <li>{@link Current#history()} does not change as far as {@link CopyableNode} is concerned</li>
      *   <li>{@link Current#effectiveConfig()} does not change</li>
@@ -96,7 +93,6 @@ public abstract class AbstractSchemaTreeStatementSupport<D extends DeclaredState
      * Return the {@link StatementPolicy} corresponding to an uninstantiated YANG statement. Statements are
      * reused as long as:
      * <ul>
-     *   <li>{@link Current#schemaPath()} does not change</li>
      *   <li>{@link Current#argument()} does not change</li>
      *   <li>{@link Current#history()} does not change as far as {@link CopyableNode} is concerned</li>
      * </ul>
index 82ce9bcd4b8f4039d0f6e408d973af80721050ed..9f75ac7dcc48a3c1b1e11a8252d217345c14bcab 100644 (file)
@@ -17,9 +17,6 @@ import org.opendaylight.yangtools.concepts.Immutable;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaNodeDefaults;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
 
@@ -99,56 +96,6 @@ public interface EffectiveStmtCtx extends CommonStmtCtx, StmtContextCompat, Immu
 
         // FIXME: 7.0.0: this is currently only used by AbstractTypeStatement
         @NonNull QNameModule effectiveNamespace();
-
-        /**
-         * Return the effective path of this statement. This method is intended for use with statements which naturally
-         * have a {@link QName} identifier and this identifier forms the ultimate step in their
-         * {@link SchemaNode#getPath()}.
-         *
-         * <p>
-         * Returned object conforms to {@link SchemaPathSupport}'s view of how these are to be handled. Users of this
-         * method are expected to consult {@link SchemaNodeDefaults#extractQName(Immutable)} and
-         * {@link SchemaNodeDefaults#extractPath(Object, Immutable)} to ensure correct implementation behaviour with
-         * respect to {@link SchemaNode#getQName()} and {@link SchemaNode#getPath()} respectively.
-         *
-         * @return An {@link Immutable} effective path object
-         */
-        // FIXME: Remove this when SchemaNode.getPath() is removed. QName users will store getArgument() instead.
-        default @NonNull Immutable effectivePath() {
-            return SchemaPathSupport.toEffectivePath(getSchemaPath());
-        }
-
-        /**
-         * Return an optional-to-provide path for {@link SchemaNode#getPath()}. The result of this method is expected
-         * to be consulted with {@link SchemaNodeDefaults#throwUnsupportedIfNull(Object, SchemaPath)} to get consistent
-         * API behaviour.
-         *
-         * @return Potentially-null {@link SchemaPath}.
-         */
-        // FIXME: Remove this when SchemaNode.getPath() is removed
-        default @Nullable SchemaPath optionalPath() {
-            return SchemaPathSupport.toOptionalPath(getSchemaPath());
-        }
-
-        /**
-         * Return the {@link SchemaNode#getPath()} of this statement. Not all statements have a SchemaPath, in which
-         * case null is returned.
-         *
-         * @return SchemaPath or null
-         */
-        // FIXME: Remove this when SchemaNode.getPath() is removed
-        @Nullable SchemaPath schemaPath();
-
-        /**
-         * Return the {@link SchemaNode#getPath()} of this statement, failing if it is not present.
-         *
-         * @return A SchemaPath.
-         * @throws VerifyException if {@link #schemaPath()} returns null
-         */
-        // FIXME: Remove this when SchemaNode.getPath() is removed
-        default @NonNull SchemaPath getSchemaPath() {
-            return verifyNotNull(schemaPath(), "Missing path for %s", this);
-        }
     }
 
     /**
@@ -181,20 +128,5 @@ public interface EffectiveStmtCtx extends CommonStmtCtx, StmtContextCompat, Immu
         // FIXME: YANGTOOLS-1186: lob the Holy Hand Grenade of Antioch
         @Deprecated
         <E extends EffectiveStatement<A, D>> @NonNull StmtContext<A, D, E> caerbannog();
-
-        /**
-         * Compare another context for equality of {@code getEffectiveParent().getSchemaPath()}, just in a safer manner.
-         *
-         * @param other Other {@link Current}
-         * @return True if {@code other} has parent path equal to this context's parent path.
-         */
-        // FIXME: Remove this when SchemaNode.getPath() is removed
-        default boolean equalParentPath(final Current<A, D> other) {
-            final Parent ours = effectiveParent();
-            final Parent theirs = other.effectiveParent();
-            return ours == theirs
-                || ours != null && theirs != null && SchemaPathSupport.effectivelyEqual(
-                    ours.schemaPath(), theirs.schemaPath());
-        }
     }
 }
diff --git a/parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/SchemaPathSupport.java b/parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/SchemaPathSupport.java
deleted file mode 100644 (file)
index 8be7e23..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (c) 2020 PANTHEON.tech, 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.spi.meta;
-
-import com.google.common.annotations.Beta;
-import java.util.Objects;
-import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.yangtools.concepts.Immutable;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-
-@Beta
-// FIXME: remove this class once we ditch SchemaPath.getPath()
-public abstract class SchemaPathSupport implements Immutable {
-    private static final class Enabled extends SchemaPathSupport {
-        @Override
-        SchemaPath effectivePath(final SchemaPath path) {
-            return path;
-        }
-
-        @Override
-        SchemaPath optionalPath(final SchemaPath path) {
-            return path;
-        }
-
-        @Override
-        boolean equalPaths(final SchemaPath first, final SchemaPath second) {
-            return Objects.equals(first, second);
-        }
-    }
-
-    private static final SchemaPathSupport DEFAULT = new Enabled();
-
-    private SchemaPathSupport() {
-        // Hidden on purpose
-    }
-
-    public static @NonNull Immutable toEffectivePath(final @NonNull SchemaPath path) {
-        return DEFAULT.effectivePath(path);
-    }
-
-    public static @Nullable SchemaPath toOptionalPath(final @Nullable SchemaPath path) {
-        return DEFAULT.optionalPath(path);
-    }
-
-    public static boolean effectivelyEqual(@Nullable final SchemaPath first, @Nullable final SchemaPath second) {
-        return DEFAULT.equalPaths(first, second);
-    }
-
-    abstract boolean equalPaths(@Nullable SchemaPath first, @Nullable SchemaPath second);
-
-    abstract @NonNull Immutable effectivePath(@NonNull SchemaPath path);
-
-    abstract @Nullable SchemaPath optionalPath(@Nullable SchemaPath path);
-}