From 42c740433dad046caa3e22b84c6f4edccdd58197 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 22 Aug 2020 19:49:36 +0200 Subject: [PATCH] Deprecate StmtContext.getSchemaPath() We want to be identifying everyone who is touching this state, as it ends up logically referencing the parent node and is going away. JIRA: YANGTOOLS-1131 Change-Id: I33a93bec07e6a3a12afc920eb6fe685fa4339f9b Signed-off-by: Robert Varga --- .../yang/parser/stmt/reactor/InferredStatementContext.java | 1 + .../yang/parser/stmt/reactor/RootStatementContext.java | 1 + .../yang/parser/stmt/reactor/StatementContextBase.java | 7 ++++--- .../yang/parser/stmt/reactor/SubstatementContext.java | 1 + .../yangtools/yang/parser/spi/meta/StmtContext.java | 3 +++ 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java index 6d3a50c7c0..03c6a49f5a 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/InferredStatementContext.java @@ -182,6 +182,7 @@ final class InferredStatementContext, E extend * properly updated there. */ @Override + @Deprecated public Optional getSchemaPath() { return substatementGetSchemaPath(); } diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java index dfc0f04472..4380b9cb55 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/RootStatementContext.java @@ -106,6 +106,7 @@ public class RootStatementContext, E extends E } @Override + @Deprecated public Optional getSchemaPath() { return Optional.of(SchemaPath.ROOT); } diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java index 0d728777fa..3d1f8f97b3 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java @@ -1006,15 +1006,15 @@ public abstract class StatementContextBase, E return false; } - // Exists only to support SubstatementContext/InferredStatementContext + // Exists only to support {SubstatementContext,InferredStatementContext}.getSchemaPath() + @Deprecated final @NonNull Optional substatementGetSchemaPath() { SchemaPath local = schemaPath; if (local == null) { synchronized (this) { local = schemaPath; if (local == null) { - local = createSchemaPath(coerceParentContext()); - schemaPath = local; + schemaPath = local = createSchemaPath(coerceParentContext()); } } } @@ -1022,6 +1022,7 @@ public abstract class StatementContextBase, E return Optional.ofNullable(local); } + @Deprecated private SchemaPath createSchemaPath(final Mutable parent) { final Optional maybeParentPath = parent.getSchemaPath(); verify(maybeParentPath.isPresent(), "Parent %s does not have a SchemaPath", parent); diff --git a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java index 503cd821d9..12605eddfb 100644 --- a/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java +++ b/yang/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SubstatementContext.java @@ -58,6 +58,7 @@ final class SubstatementContext, E extends Eff * properly updated there. */ @Override + @Deprecated public Optional getSchemaPath() { return substatementGetSchemaPath(); } diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java index 29b05857c9..c264043d5a 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java @@ -122,7 +122,10 @@ public interface StmtContext, E extends Effect * {@link Optional#empty()} is returned. * * @return Optional SchemaPath + * @deprecated Use of SchemaPath in the context of effective statements is going away. Consider not providing this + * information, if your users can exist without it. */ + @Deprecated @NonNull Optional getSchemaPath(); boolean isConfiguration(); -- 2.36.6