Remove SchemaNode.getPath()
[yangtools.git] / parser / yang-parser-spi / src / main / java / org / opendaylight / yangtools / yang / parser / spi / meta / EffectiveStmtCtx.java
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());
-        }
     }
 }