Tag RPC input/output classes with RpcInput/RpcOutput 08/74008/1
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 13 Jul 2018 10:12:05 +0000 (12:12 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Fri, 13 Jul 2018 10:14:43 +0000 (12:14 +0200)
These interfaces are not just plain DataObjects, they have
a specialized meaning. This meaning was not useful when RpcInput
was a DataContainer, but with it being a DataObject, we can do
better.

Change-Id: Ieaa7e006fe73784486931c30a9b258f20fed4e79
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/generator/impl/AbstractTypeGenerator.java

index b0d8f27aa84852a3126acdee05b716afde0c7f64..216dd4e1884d8cea7e326482684e7f5e48a438f3 100644 (file)
@@ -498,9 +498,9 @@ abstract class AbstractTypeGenerator {
                 method.addAnnotation("javax.annotation", "CheckReturnValue");
                 addComment(method, rpc);
                 method.addParameter(
-                    createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getInput())), "input");
+                    createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getInput()), RPC_INPUT), "input");
                 method.setReturnType(listenableFutureTypeFor(
-                    rpcResult(createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getOutput())))));
+                    rpcResult(createRpcContainer(context, rpcName, rpc, verifyNotNull(rpc.getOutput()), RPC_OUTPUT))));
             }
         }
 
@@ -508,13 +508,13 @@ abstract class AbstractTypeGenerator {
     }
 
     private Type createRpcContainer(final ModuleContext context, final String rpcName, final RpcDefinition rpc,
-            final ContainerSchemaNode schema) {
+            final ContainerSchemaNode schema, final Type type) {
         processUsesAugments(schema, context);
         final GeneratedTypeBuilder outType = addRawInterfaceDefinition(
             JavaTypeName.create(context.modulePackageName(), rpcName + BindingMapping.getClassName(schema.getQName())),
             schema);
         addImplementedInterfaceFromUses(schema, outType);
-        outType.addImplementsType(DATA_OBJECT);
+        outType.addImplementsType(type);
         outType.addImplementsType(augmentable(outType));
         annotateDeprecatedIfNecessary(rpc.getStatus(), outType);
         resolveDataSchemaNodes(context, outType, outType, schema.getChildNodes());