From: Jie Han Date: Mon, 17 Jul 2017 07:25:46 +0000 (+0800) Subject: Binding generator v2 - fix action #3 X-Git-Tag: release/carbon-sr2~25 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F22%2F61422%2F1;p=mdsal.git Binding generator v2 - fix action #3 - Just let RPC process not throw exception when the parent is null. TODO: process action that the parent is null. Change-Id: I730c7e19db6bd708dbf1693d8116bc088c45ba98 Signed-off-by: Jie Han (cherry picked from commit ffd5a1f75a7f1eb930c16ba65c4c655b46db5c80) --- diff --git a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/RpcActionGenHelper.java b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/RpcActionGenHelper.java index a9b9f438c0..1a85b1ab45 100644 --- a/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/RpcActionGenHelper.java +++ b/binding2/mdsal-binding2-generator-impl/src/main/java/org/opendaylight/mdsal/binding/javav2/generator/impl/RpcActionGenHelper.java @@ -260,29 +260,33 @@ final class RpcActionGenHelper { operationMethod.addParameter(inTypeInstance, "input"); if (isAction) { - //action, routed RPC - checkState(parent != null, "Parent node of " + operation.getQName().getLocalName() + " can't be NULL"); - GeneratedTypeBuilder parentType = genCtx.get(module).getChildNode(parent.getPath()); - checkState(parentType != null, "Parent generated type for " + parent - + " data schema node must have been generated already"); - annotateDeprecatedIfNecessary(parent.getStatus(), parentType); - - if (parent instanceof ListSchemaNode) { - //ListAction - GeneratedTransferObject keyType = null; - for (MethodSignatureBuilder method : parentType.getMethodDefinitions()) { - if (method.getName().equals("getKey")) { - keyType = (GeneratedTransferObject) method.toInstance(parentType).getReturnType(); + if (parent != null) { + //action + GeneratedTypeBuilder parentType = genCtx.get(module).getChildNode(parent.getPath()); + checkState(parentType != null, "Parent generated type for " + parent + + " data schema node must have been generated already"); + annotateDeprecatedIfNecessary(parent.getStatus(), parentType); + + if (parent instanceof ListSchemaNode) { + //ListAction + GeneratedTransferObject keyType = null; + for (MethodSignatureBuilder method : parentType.getMethodDefinitions()) { + if (method.getName().equals("getKey")) { + keyType = (GeneratedTransferObject) method.toInstance(parentType).getReturnType(); + } } - } - operationMethod.addParameter( - parameterizedTypeFor(KEYED_INSTANCE_IDENTIFIER, parentType, keyType), "kii"); - interfaceBuilder.addImplementsType(parameterizedTypeFor(LIST_ACTION, parentType, inType, outType)); + operationMethod.addParameter( + parameterizedTypeFor(KEYED_INSTANCE_IDENTIFIER, parentType, keyType), "kii"); + interfaceBuilder.addImplementsType(parameterizedTypeFor(LIST_ACTION, parentType, inType, outType)); + } else { + //Action + operationMethod.addParameter(parameterizedTypeFor(INSTANCE_IDENTIFIER, parentType), "ii"); + interfaceBuilder.addImplementsType(parameterizedTypeFor(ACTION, parentType, inType, outType)); + } } else { - //Action - operationMethod.addParameter(parameterizedTypeFor(INSTANCE_IDENTIFIER, parentType), "ii"); - interfaceBuilder.addImplementsType(parameterizedTypeFor(ACTION, parentType, inType, outType)); + //TODO:routed RPC + throw new UnsupportedOperationException("Not implemented yet."); } } else { //RPC