Simplify StmtContext generics 39/105339/2
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 10 Apr 2023 18:47:37 +0000 (20:47 +0200)
committerRobert Varga <nite@hq.sk>
Mon, 10 Apr 2023 19:20:23 +0000 (19:20 +0000)
We have generic signatures that hark back to when we used .class
references for namespaces. Simplify them, which makes it clear that
addContext() is just an alias to addToNs() -- and hence can be
eliminated.

Change-Id: I34637bbe913f7e23b615cfb51a7b0b69c14507db
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/AbstractNamespaceStorage.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/StatementContextBase.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/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/TypedefStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/module/ModuleStatementSupport.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/submodule/SubmoduleStatementSupport.java
parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContext.java

index 04a97921947c0e20ba8addd0fed3b5ca84c0be7a..85a9199c4bd10942aa4d82d75f0360c23b03cbdd 100644 (file)
@@ -62,8 +62,7 @@ abstract class AbstractNamespaceStorage implements NamespaceStorage {
         return (Map<K, V>) local.get(type);
     }
 
-    final <K, V, T extends K, U extends V> void addToNamespace(final ParserNamespace<K, V> type, final T key,
-            final U value) {
+    final <K, V> void addToNamespace(final ParserNamespace<K, V> type, final K key, final V value) {
         accessNamespace(type).valueTo(this, key, value);
     }
 
index bab618c558f2b83b748362a8993e546db47addc3..5af0597bc684fb8f0e2ae5a505d40175f1c4e866 100644 (file)
@@ -158,7 +158,7 @@ final class ReplicaStatementContext<A, D extends DeclaredStatement<A>, E extends
 
     @Override
     @Deprecated
-    public <K, V, T extends K, U extends V> void addToNs(final ParserNamespace<K, V> type, final T key, final U value) {
+    public <K, V> void addToNs(final ParserNamespace<K, V> type, final K key, final V value) {
         throw new UnsupportedOperationException();
     }
 
@@ -168,13 +168,6 @@ final class ReplicaStatementContext<A, D extends DeclaredStatement<A>, E extends
         throw new UnsupportedOperationException();
     }
 
-    @Override
-    @Deprecated
-    public <K, KT extends K, C extends StmtContext<?, ?, ?>> void addContext(
-            final ParserNamespace<K, ? super C> namespace, final KT key, final C stmt) {
-        throw new UnsupportedOperationException();
-    }
-
     @Override
     @Deprecated
     public void addAsEffectOfStatement(final Collection<? extends StmtContext<?, ?, ?>> ctxs) {
index 527b86c09a146218cb310ca829a20c0143147b4e..9ac728d5a7d38c9b0e7f20fbbcc7398cf0ba6184 100644 (file)
@@ -260,8 +260,7 @@ abstract class StatementContextBase<A, D extends DeclaredStatement<A>, E extends
     }
 
     @Override
-    public final <K, V, T extends K, U extends V> void addToNs(final ParserNamespace<K, V> type, final T key,
-            final U value) {
+    public final <K, V> void addToNs(final ParserNamespace<K, V> type, final K key, final V value) {
         addToNamespace(type, key, value);
     }
 
@@ -696,12 +695,6 @@ abstract class StatementContextBase<A, D extends DeclaredStatement<A>, E extends
         }
     }
 
-    @Override
-    public final <K, KT extends K, C extends StmtContext<?, ?, ?>> void addContext(
-            final ParserNamespace<K, ? super C> namespace, final KT key, final C stmt) {
-        accessNamespace(namespace).valueTo(this, key, stmt);
-    }
-
     @Override
     public final Optional<Mutable<A, D, E>> copyAsChildOf(final Mutable<?, ?, ?> parent, final CopyType type,
             final QNameModule targetModule) {
index 592b097a8ed14d09f1c8e26bbecdb100906f286b..4b3be0fc88757014e1dff8c5acc06496f125ca58 100644 (file)
@@ -60,7 +60,7 @@ public final class ExtensionStatementSupport
             final Mutable<QName, ExtensionStatement, ExtensionEffectiveStatement> stmt) {
         super.onStatementDefinitionDeclared(stmt);
 
-        stmt.addContext(ParserNamespaces.EXTENSION, stmt.getArgument(), stmt);
+        stmt.addToNs(ParserNamespaces.EXTENSION, stmt.getArgument(), stmt);
 
         final StmtContext<QName, ?, ?> argument = StmtContextUtils.findFirstDeclaredSubstatement(stmt,
             ArgumentStatement.class);
index fcab16fcf51a7e83fe676fb08c2b22a78d64742e..6b347cbc1210aa21c9661dfe345a770617fbc7c3 100644 (file)
@@ -54,7 +54,7 @@ public final class FeatureStatementSupport
     @Override
     public void onFullDefinitionDeclared(final Mutable<QName, FeatureStatement, FeatureEffectiveStatement> stmt) {
         super.onFullDefinitionDeclared(stmt);
-        stmt.addContext(ParserNamespaces.FEATURE, stmt.getArgument(), stmt);
+        stmt.addToNs(ParserNamespaces.FEATURE, stmt.getArgument(), stmt);
 
         // Do not build effective statement if supported features does not include this feature
         final var supportedFeatures = stmt.namespaceItem(ParserNamespaces.SUPPORTED_FEATURES, Empty.value());
index d8921a6e9936229f3effc3cf8faa4011ac8e88b9..9f0a056346e00b01815bcc576a667f6091ee7ea0 100644 (file)
@@ -106,7 +106,7 @@ public final class GroupingStatementSupport
             // Shadowing check: make sure we do not trample on pre-existing definitions. This catches sibling
             // declarations and parent declarations which have already been declared.
             checkConflict(parent, stmt);
-            parent.addContext(ParserNamespaces.GROUPING, stmt.getArgument(), stmt);
+            parent.addToNs(ParserNamespaces.GROUPING, stmt.getArgument(), stmt);
 
             final StmtContext<?, ?, ?> grandParent = parent.getParentContext();
             if (grandParent != null) {
index 2d2546d97edc70f2fd0c695649e575cd20ed4bd0..d2f15486dea3f266dc5ab3a7804051c97c838731 100644 (file)
@@ -73,7 +73,7 @@ public final class TypedefStatementSupport extends
             // Shadowing check: make sure we do not trample on pre-existing definitions. This catches sibling
             // declarations and parent declarations which have already been declared.
             checkConflict(parent, stmt);
-            parent.addContext(ParserNamespaces.TYPE, stmt.getArgument(), stmt);
+            parent.addToNs(ParserNamespaces.TYPE, stmt.getArgument(), stmt);
 
             final StmtContext<?, ?, ?> grandParent = parent.getParentContext();
             if (grandParent != null) {
index b93e46189842c8c4f128deae85aea65f731a4215..03c4300b7ea64b9b141826cd74a23f372c9307c3 100644 (file)
@@ -138,7 +138,7 @@ public final class ModuleStatementSupport
             "Prefix of the module [%s] is missing", moduleName);
         stmt.addToNs(ParserNamespaces.IMP_PREFIX_TO_NAMESPACE, modulePrefix, moduleNs);
 
-        stmt.addContext(ParserNamespaces.PRELINKAGE_MODULE, moduleName, stmt);
+        stmt.addToNs(ParserNamespaces.PRELINKAGE_MODULE, moduleName, stmt);
 
         final Revision revisionDate = StmtContextUtils.getLatestRevision(stmt.declaredSubstatements()).orElse(null);
         final QNameModule qNameModule = QNameModule.create(moduleNs, revisionDate).intern();
@@ -165,9 +165,9 @@ public final class ModuleStatementSupport
         final Unqualified moduleName = stmt.getArgument();
         final SourceIdentifier moduleIdentifier = new SourceIdentifier(moduleName, revisionDate);
 
-        stmt.addContext(ParserNamespaces.MODULE, moduleIdentifier, stmt);
-        stmt.addContext(ParserNamespaces.MODULE_FOR_BELONGSTO, moduleName, stmt);
-        stmt.addContext(ParserNamespaces.NAMESPACE_TO_MODULE, qNameModule, stmt);
+        stmt.addToNs(ParserNamespaces.MODULE, moduleIdentifier, stmt);
+        stmt.addToNs(ParserNamespaces.MODULE_FOR_BELONGSTO, moduleName, stmt);
+        stmt.addToNs(ParserNamespaces.NAMESPACE_TO_MODULE, qNameModule, stmt);
 
         final String modulePrefix = SourceException.throwIfNull(
             firstAttributeOf(stmt.declaredSubstatements(), PrefixStatement.class), stmt,
index af77a0cc09c1eab162ce37ecf4a2b0a315abc7cb..231c99f16d5e16bc6a8eaebec0b4ab980722ac34 100644 (file)
@@ -129,7 +129,7 @@ public final class SubmoduleStatementSupport
                 possibleDuplicateSubmodule.sourceReference());
         }
 
-        stmt.addContext(ParserNamespaces.SUBMODULE, submoduleIdentifier, stmt);
+        stmt.addToNs(ParserNamespaces.SUBMODULE, submoduleIdentifier, stmt);
 
         final Unqualified belongsToModuleName = firstAttributeOf(stmt.declaredSubstatements(),
             BelongsToStatement.class);
index e87fa9ac21b2d26c6eff4aa90626074b92b73c25..e5cc2c4c1d43905d867d8408da480d2cc5d9d6c6 100644 (file)
@@ -184,16 +184,14 @@ public interface StmtContext<A, D extends DeclaredStatement<A>, E extends Effect
         /**
          * Associate a value with a key within a namespace.
          *
+         * @param <K> key type
+         * @param <V> value type
          * @param type Namespace type
          * @param key Key
          * @param value value
-         * @param <K> namespace key type
-         * @param <V> namespace value type
-         * @param <T> key type
-         * @param <U> value type
          * @throws NamespaceNotAvailableException when the namespace is not available.
          */
-        <K, V, T extends K, U extends V> void addToNs(@NonNull ParserNamespace<K, V> type, T key, U value);
+        <K, V> void addToNs(@NonNull ParserNamespace<K, V> type, K key, V value);
 
         @Override
         RootStmtContext.Mutable<?, ?, ?> getRoot();
@@ -254,19 +252,6 @@ public interface StmtContext<A, D extends DeclaredStatement<A>, E extends Effect
          */
         @NonNull ModelActionBuilder newInferenceAction(@NonNull ModelProcessingPhase phase);
 
-        /**
-         * Adds s statement to namespace map with a key.
-         *
-         * @param namespace
-         *            {@link ParserNamespace} child that determines namespace to be added to
-         * @param key
-         *            of type according to namespace class specification
-         * @param stmt
-         *            to be added to namespace map
-         */
-        <K, KT extends K, C extends StmtContext<?, ?, ?>> void addContext(
-            @NonNull ParserNamespace<K, ? super C> namespace, KT key, C stmt);
-
         /**
          * Set version of root statement context.
          *