From c8a52876870b4195ca9421df1156e0cedc91f025 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Thu, 7 Jan 2021 17:00:14 +0100 Subject: [PATCH] Be more defensive around List types We can end up generating a windcard type, in which case the arguments will be empty. Use Types.objectType() in that case. JIRA: MDSAL-651 Change-Id: I5fe15a1cd0eb4f10154c268fea2092dd52cd390a Signed-off-by: Robert Varga --- .../binding/java/api/generator/BuilderTemplate.xtend | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend index 94bbbcc9c5..f70787d07d 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/BuilderTemplate.xtend @@ -14,6 +14,7 @@ import static org.opendaylight.mdsal.binding.spec.naming.BindingMapping.AUGMENTA import static org.opendaylight.mdsal.binding.spec.naming.BindingMapping.DATA_CONTAINER_IMPLEMENTED_INTERFACE_NAME import com.google.common.collect.ImmutableList +import com.google.common.collect.ImmutableSet import com.google.common.collect.Sets import java.util.ArrayList import java.util.Collection @@ -33,7 +34,6 @@ import org.opendaylight.mdsal.binding.model.util.TypeConstants import org.opendaylight.mdsal.binding.model.util.Types import org.opendaylight.mdsal.binding.spec.naming.BindingMapping import org.opendaylight.yangtools.concepts.Builder -import com.google.common.collect.ImmutableSet /** * Template for generating JAVA builder classes. @@ -322,7 +322,11 @@ class BuilderTemplate extends AbstractBuilderTemplate { val returnType = field.returnType if (returnType instanceof ParameterizedType) { if (Types.isListType(returnType)) { - return generateListSetter(field, returnType.actualTypeArguments.get(0)) + val arguments = returnType.actualTypeArguments + if (arguments.isEmpty) { + return generateListSetter(field, Types.objectType) + } + return generateListSetter(field, arguments.get(0)) } else if (Types.isMapType(returnType)) { return generateMapSetter(field, returnType.actualTypeArguments.get(1)) } -- 2.36.6