Remove BelongsToModuleContext 31/102131/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 17 Aug 2022 11:32:50 +0000 (13:32 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 17 Aug 2022 11:34:50 +0000 (13:34 +0200)
This namespace is not really useful, as it can contain really just a
single mapping (due to belongs-to cardinality). Also the key is never
used, which means BelongsToPrefixToModuleCtx can serve exactly the same
needs.

Change-Id: I08d92148f330fc0da8ff99443bdce270def3924c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/SourceSpecificContext.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/reactor/RFC7950Reactors.java
parser/yang-parser-rfc7950/src/main/java/org/opendaylight/yangtools/yang/parser/rfc7950/stmt/meta/BelongsToStatementSupport.java
parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/BelongsToModuleContext.java [deleted file]
parser/yang-parser-spi/src/test/java/org/opendaylight/yangtools/yang/parser/spi/source/NamespaceTest.java

index 56a701efd964cd10413eab1757e4b7f6bd287b92..2bb9cae87ef4668488d58f9d19a8d182b2239f8e 100644 (file)
@@ -42,7 +42,6 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupport;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupportBundle;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupportNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToModuleContext;
 import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleCtx;
 import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.source.ImportPrefixToModuleCtx;
@@ -218,7 +217,8 @@ final class SourceSpecificContext implements NamespaceStorageNode, NamespaceBeha
     }
 
     private void updateImportedNamespaces(final Class<?> type, final Object value) {
-        if (BelongsToModuleContext.class.isAssignableFrom(type) || ImportedModuleContext.class.isAssignableFrom(type)) {
+        if (BelongsToPrefixToModuleCtx.class.isAssignableFrom(type)
+            || ImportedModuleContext.class.isAssignableFrom(type)) {
             verify(value instanceof RootStatementContext, "Unexpected imported value %s", value);
 
             if (importedNamespaces.isEmpty()) {
index e756825b2c6d710a6847caccc334659d5b0b7356..ff355df7345a1f0ca5979db09b070008c7ef9549 100644 (file)
@@ -112,7 +112,6 @@ import org.opendaylight.yangtools.yang.parser.spi.TypeNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementDefinitionNamespace;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StatementSupportBundle;
-import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToModuleContext;
 import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleCtx;
 import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleName;
 import org.opendaylight.yangtools.yang.parser.spi.source.ImpPrefixToNamespace;
@@ -199,7 +198,6 @@ public final class RFC7950Reactors {
             .addSupport(ImportPrefixToModuleCtx.BEHAVIOUR)
             .addSupport(BelongsToPrefixToModuleCtx.BEHAVIOUR)
             .addSupport(ModuleQNameToPrefix.BEHAVIOUR)
-            .addSupport(BelongsToModuleContext.BEHAVIOUR)
             .addSupport(BelongsToPrefixToModuleName.BEHAVIOUR)
             .build();
     }
index 2d1427e3afd44c7b9f37676e554de22ca805200a..56a4e4e54e0da7783f58f4b6857f9fdca5e4b50e 100644 (file)
@@ -36,7 +36,6 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase;
 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.SubstatementValidator;
-import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToModuleContext;
 import org.opendaylight.yangtools.yang.parser.spi.source.BelongsToPrefixToModuleCtx;
 import org.opendaylight.yangtools.yang.parser.spi.source.ModuleNamespaceForBelongsTo;
 
@@ -59,19 +58,15 @@ public final class BelongsToStatementSupport
             final Mutable<Unqualified, BelongsToStatement, BelongsToEffectiveStatement> belongsToCtx) {
         ModelActionBuilder belongsToAction = belongsToCtx.newInferenceAction(ModelProcessingPhase.SOURCE_LINKAGE);
 
-        final SourceIdentifier belongsToSourceIdentifier = new SourceIdentifier(belongsToCtx.getArgument());
         final Prerequisite<StmtContext<?, ?, ?>> belongsToPrereq = belongsToAction.requiresCtx(belongsToCtx,
             ModuleNamespaceForBelongsTo.class, belongsToCtx.getArgument(), ModelProcessingPhase.SOURCE_LINKAGE);
 
         belongsToAction.apply(new InferenceAction() {
             @Override
             public void apply(final InferenceContext ctx) {
-                StmtContext<?, ?, ?> belongsToModuleCtx = belongsToPrereq.resolve(ctx);
-
-                belongsToCtx.addToNs(BelongsToModuleContext.class, belongsToSourceIdentifier, belongsToModuleCtx);
                 belongsToCtx.addToNs(BelongsToPrefixToModuleCtx.class,
                     findFirstDeclaredSubstatement(belongsToCtx, PrefixStatement.class).getArgument(),
-                    belongsToModuleCtx);
+                    belongsToPrereq.resolve(ctx));
             }
 
             @Override
diff --git a/parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/BelongsToModuleContext.java b/parser/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/source/BelongsToModuleContext.java
deleted file mode 100644 (file)
index 54e756a..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (c) 2015 Cisco Systems, Inc. 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.source;
-
-import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.parser.spi.meta.ImportedNamespaceContext;
-import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
-import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-
-/**
- * Namespace key class for storing belongs-to statements in YANG model storage.
- */
-public interface BelongsToModuleContext extends ImportedNamespaceContext<SourceIdentifier> {
-    NamespaceBehaviour<SourceIdentifier, StmtContext<?, ?, ?>, @NonNull BelongsToModuleContext> BEHAVIOUR =
-            NamespaceBehaviour.sourceLocal(BelongsToModuleContext.class);
-}
index 8cc2fed5c697e7c4795a408acf6f6e6013e1c801..8c3a8cd4fc4a371cdb66d8aba2ea88dd72256d56 100644 (file)
@@ -16,7 +16,6 @@ public class NamespaceTest {
     public void testNamespaces() {
         // Touch behaviors
         // FIXME: add more checks/split this up when behaviours are testable
-        assertNotNull(BelongsToModuleContext.BEHAVIOUR);
         assertNotNull(BelongsToPrefixToModuleCtx.BEHAVIOUR);
         assertNotNull(BelongsToPrefixToModuleName.BEHAVIOUR);
         assertNotNull(ImpPrefixToNamespace.BEHAVIOUR);