Use QName.withModule() 71/69371/11
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 12 Mar 2018 10:53:51 +0000 (11:53 +0100)
committerRobert Varga <nite@hq.sk>
Thu, 12 Apr 2018 17:31:55 +0000 (17:31 +0000)
There are multiple places where we are creating a well-known QName
with a new namespace. Use QName.withModule() so we do not end up
checking localName over and over.

Change-Id: I932bf3762bfb6ae201e6b309f8a7d95887b99b00
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/BindingDOMRpcImplementationAdapter.java
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/RpcServiceAdapter.java
binding/mdsal-binding-dom-codec/src/main/java/org/opendaylight/mdsal/binding/dom/codec/impl/DataObjectCodecContext.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/BindingSchemaContextUtils.java
binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/util/BindingReflections.java

index 9fc717ba930d97a581ae4a6348d0ddddf3b7106c..ffd175d0429f3282030c3ca6d65303c45ce811fe 100644 (file)
@@ -30,6 +30,7 @@ import org.opendaylight.yangtools.yang.binding.util.BindingReflections;
 import org.opendaylight.yangtools.yang.binding.util.RpcServiceInvoker;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.RpcResult;
+import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
@@ -63,7 +64,7 @@ public class BindingDOMRpcImplementationAdapter implements DOMRpcImplementation
 
         this.codec = Preconditions.checkNotNull(codec);
         this.delegate = Preconditions.checkNotNull(delegate);
-        inputQname = QName.create(BindingReflections.getQNameModule(type), "input").intern();
+        inputQname = YangConstants.operationInputQName(BindingReflections.getQNameModule(type)).intern();
     }
 
     @Nonnull
index ce6292c48734909ee357c0de77868dd781764904..6363c279a022a95e14b2f1aeeb317341014526b8 100644 (file)
@@ -34,6 +34,7 @@ import org.opendaylight.yangtools.yang.common.RpcError;
 import org.opendaylight.yangtools.yang.common.RpcError.ErrorSeverity;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
@@ -44,7 +45,6 @@ import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 
 class RpcServiceAdapter implements InvocationHandler {
-
     private final ImmutableMap<Method, RpcInvocationStrategy> rpcNames;
     private final Class<? extends RpcService> type;
     private final BindingToNormalizedNodeCodec codec;
@@ -161,7 +161,8 @@ class RpcServiceAdapter implements InvocationHandler {
                 final NormalizedNode<?, ?> domData = input.getResult();
                 final DataObject bindingResult;
                 if (domData != null) {
-                    final SchemaPath rpcOutput = rpc.createChild(QName.create(rpc.getLastComponent(), "output"));
+                    final SchemaPath rpcOutput = rpc.createChild(YangConstants.operationOutputQName(
+                        rpc.getLastComponent().getModule()));
                     bindingResult = resultCodec.fromNormalizedNodeRpcData(rpcOutput, (ContainerNode) domData);
                 } else {
                     bindingResult = null;
index c69941bfba78b8f4bc0bf8b6f68b4051e5c0cdfd..5ef88440759a682b18799f533eedcca125e258d0 100644 (file)
@@ -236,7 +236,7 @@ abstract class DataObjectCodecContext<D extends DataObject, T extends DataNodeCo
             }
         } else {
             // We are looking for instantiation via uses in other module
-            final QName instantiedName = QName.create(namespace(), origDef.getQName().getLocalName());
+            final QName instantiedName = origDef.getQName().withModule(namespace());
             final DataSchemaNode potential = getSchema().getDataChildByName(instantiedName);
             // We check if it is really instantiated from same
             // definition as class was derived
index 307fb5fd27eb1c246648af6e7dcaad23de7b6ab4..970bece0190e935269b6c040ad0a71d65ca1f1e7 100644 (file)
@@ -802,7 +802,7 @@ abstract class AbstractTypeGenerator {
         SchemaNode result = targetGrouping;
         for (final QName node : targetPath.getPathFromRoot()) {
             if (result instanceof DataNodeContainer) {
-                final QName resultNode = QName.create(result.getQName().getModule(), node.getLocalName());
+                final QName resultNode = node.withModule(result.getQName().getModule());
                 result = ((DataNodeContainer) result).getDataChildByName(resultNode);
             } else if (result instanceof ChoiceSchemaNode) {
                 result = findNamedCase((ChoiceSchemaNode) result, node.getLocalName());
index 3d9ae7e47a4cedafbb4268cd2404dd4d4b37daea..aa93836df65432bf93a692a5a74b39bf06e31f5c 100644 (file)
@@ -73,7 +73,7 @@ public final class BindingSchemaContextUtils {
             if(ChildOf.class.isAssignableFrom(currentArg.getType()) && BindingReflections.isAugmentationChild(currentArg.getType())) {
                 currentQName = BindingReflections.findQName(currentArg.getType());
             } else {
-                currentQName = QName.create(currentQName, BindingReflections.findQName(currentArg.getType()).getLocalName());
+                currentQName = BindingReflections.findQName(currentArg.getType()).withModule(currentQName.getModule());
             }
             Optional<DataNodeContainer> potential = findDataNodeContainer(currentContainer.get(), currentQName);
             if (potential.isPresent()) {
index 6f4d6a814ad8aada80f9f8ddb9592650204773af..3198e5cd4e7a610d3a74f3a37384566b758d98fb 100644 (file)
@@ -46,6 +46,7 @@ import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
 import org.opendaylight.yangtools.yang.binding.YangModuleInfo;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -523,10 +524,10 @@ public final class BindingReflections {
             } else if (isRpcType(key)) {
                 final String className = key.getSimpleName();
                 if (className.endsWith(BindingMapping.RPC_OUTPUT_SUFFIX)) {
-                    return QName.create(module, "output").intern();
-                } else {
-                    return QName.create(module, "input").intern();
+                    return YangConstants.operationOutputQName(module.getModule()).intern();
                 }
+
+                return YangConstants.operationInputQName(module.getModule()).intern();
             }
 
             /*
@@ -534,7 +535,6 @@ public final class BindingReflections {
              */
             return module;
         }
-
     }
 
     /**