From ffd5a1f75a7f1eb930c16ba65c4c655b46db5c80 Mon Sep 17 00:00:00 2001 From: Jie Han Date: Mon, 17 Jul 2017 15:25:46 +0800 Subject: [PATCH] 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 --- .../generator/impl/RpcActionGenHelper.java | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) 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 -- 2.36.6