From 0270443bbc97a9c0711f600b460600367dff1b8a Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 5 Dec 2020 17:14:13 +0100 Subject: [PATCH] Do not use StmtContext for ThirdPartyNamespace This is a simple demo/test, use the typical inference/build argument passing pattern, eliminating the need to deal with nasty rabbits. Change-Id: I3783da94e110bac94a17f6e7db0d2086c1630d37 JIRA: YANGTOOLS-1186 Signed-off-by: Robert Varga --- .../yang/thirdparty/plugin/CustomInferencePipeline.java | 6 ++---- .../plugin/ThirdPartyExtensionEffectiveStatementImpl.java | 3 ++- .../thirdparty/plugin/ThirdPartyExtensionSupport.java | 3 ++- .../yang/thirdparty/plugin/ThirdPartyNamespace.java | 8 ++++++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/CustomInferencePipeline.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/CustomInferencePipeline.java index 7b02c6020f..8f69864c34 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/CustomInferencePipeline.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/CustomInferencePipeline.java @@ -7,8 +7,6 @@ */ package org.opendaylight.yangtools.yang.thirdparty.plugin; -import static org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour.sourceLocal; - import org.opendaylight.yangtools.yang.parser.rfc7950.reactor.RFC7950Reactors; import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase; import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor; @@ -16,10 +14,10 @@ import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementR public final class CustomInferencePipeline { public static final CrossSourceStatementReactor CUSTOM_REACTOR = RFC7950Reactors.defaultReactorBuilder() .addStatementSupport(ModelProcessingPhase.FULL_DECLARATION, ThirdPartyExtensionSupport.getInstance()) - .addNamespaceSupport(ModelProcessingPhase.FULL_DECLARATION, sourceLocal(ThirdPartyNamespace.class)) + .addNamespaceSupport(ModelProcessingPhase.FULL_DECLARATION, ThirdPartyNamespace.BEHAVIOR) .build(); private CustomInferencePipeline() { - throw new UnsupportedOperationException("Utility class"); + // Hidden on purpose } } diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionEffectiveStatementImpl.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionEffectiveStatementImpl.java index 0a18437111..670695e9ba 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionEffectiveStatementImpl.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionEffectiveStatementImpl.java @@ -9,6 +9,7 @@ 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; @@ -28,7 +29,7 @@ final class ThirdPartyExtensionEffectiveStatementImpl final ImmutableList> substatements) { super(stmt, substatements); path = SchemaPathSupport.wrap(stmt.getEffectiveParent().getSchemaPath().createChild(getNodeType())); - valueFromNamespace = stmt.getFromNamespace(ThirdPartyNamespace.class, stmt.caerbannog()); + valueFromNamespace = stmt.getFromNamespace(ThirdPartyNamespace.class, Empty.getInstance()); } @Override diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionSupport.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionSupport.java index 2ffc4e4224..bc7701a758 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionSupport.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyExtensionSupport.java @@ -8,6 +8,7 @@ package org.opendaylight.yangtools.yang.thirdparty.plugin; import com.google.common.collect.ImmutableList; +import org.opendaylight.yangtools.yang.common.Empty; import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement; import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.BaseStringStatementSupport; @@ -33,7 +34,7 @@ public final class ThirdPartyExtensionSupport public void onFullDefinitionDeclared( final Mutable stmt) { super.onFullDefinitionDeclared(stmt); - stmt.addToNs(ThirdPartyNamespace.class, stmt, "Third-party namespace test."); + stmt.addToNs(ThirdPartyNamespace.class, Empty.getInstance(), "Third-party namespace test."); } @Override diff --git a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyNamespace.java b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyNamespace.java index d61d2de06b..c16a1d5cdf 100644 --- a/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyNamespace.java +++ b/yang/yang-parser-rfc7950/src/test/java/org/opendaylight/yangtools/yang/thirdparty/plugin/ThirdPartyNamespace.java @@ -7,12 +7,16 @@ */ package org.opendaylight.yangtools.yang.thirdparty.plugin; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.yangtools.yang.common.Empty; import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace; -import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; +import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour; /** * ThirdPartyNamespace. */ -public interface ThirdPartyNamespace extends IdentifierNamespace, String> { +public interface ThirdPartyNamespace extends IdentifierNamespace { + @NonNull NamespaceBehaviour BEHAVIOR = + NamespaceBehaviour.statementLocal(ThirdPartyNamespace.class); } -- 2.36.6