From: Robert Varga Date: Mon, 26 Mar 2018 16:44:54 +0000 (+0200) Subject: Cleanup EnumTemplate and UnionTemplate X-Git-Tag: release/fluorine~225 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=d2ef9ba8f53c06104ecc9f399ed06a940745c2b7;p=mdsal.git Cleanup EnumTemplate and UnionTemplate Now that import tracking works correctly, fixup templates which can be instantiated as inner classes. JIRA: MDSAL-327 Change-Id: I4c9e7917a8bc2d021d6cdd60c3d6ef41ccb9af59 Signed-off-by: Robert Varga --- diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/EnumTemplate.xtend b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/EnumTemplate.xtend index 5f814ae719..0bca47918e 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/EnumTemplate.xtend +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/EnumTemplate.xtend @@ -9,6 +9,11 @@ package org.opendaylight.mdsal.binding.java.api.generator import static org.opendaylight.mdsal.binding.model.util.BindingGeneratorUtil.encodeAngleBrackets +import com.google.common.collect.ImmutableMap +import com.google.common.collect.ImmutableMap.Builder +import java.util.Map +import java.util.Objects +import java.util.Optional import org.opendaylight.mdsal.binding.model.api.Enumeration import org.opendaylight.mdsal.binding.model.api.GeneratedType @@ -60,20 +65,17 @@ class EnumTemplate extends BaseTemplate { * * @return string with the enumeration body */ - // FIXME: for some reason importedName does not work here :( override body() ''' «wrapToDocumentation(formatDataForJavaDoc(enums))» - public enum «enums.name» implements org.opendaylight.yangtools.yang.binding.Enumeration { + public enum «enums.name» implements «org.opendaylight.yangtools.yang.binding.Enumeration.importedName» { «writeEnumeration(enums)» - private static final java.util.Map NAME_MAP; - private static final java.util.Map VALUE_MAP; + private static final «Map.importedName»<«String.importedName», «enums.name»> NAME_MAP; + private static final «Map.importedName»<«Integer.importedName», «enums.name»> VALUE_MAP; static { - final com.google.common.collect.ImmutableMap.Builder nb = - com.google.common.collect.ImmutableMap.builder(); - final com.google.common.collect.ImmutableMap.Builder vb = - com.google.common.collect.ImmutableMap.builder(); + final «Builder.importedName»<«String.importedName», «enums.name»> nb = «ImmutableMap.importedName».builder(); + final «Builder.importedName»<«Integer.importedName», «enums.name»> vb = «ImmutableMap.importedName».builder(); for («enums.name» enumItem : «enums.name».values()) { vb.put(enumItem.value, enumItem); nb.put(enumItem.name, enumItem); @@ -83,7 +85,7 @@ class EnumTemplate extends BaseTemplate { VALUE_MAP = vb.build(); } - private final java.lang.String name; + private final «String.importedName» name; private final int value; private «enums.name»(int value, «String.importedName» name) { @@ -92,7 +94,7 @@ class EnumTemplate extends BaseTemplate { } @Override - public java.lang.String getName() { + public «String.importedName» getName() { return name; } @@ -108,8 +110,8 @@ class EnumTemplate extends BaseTemplate { * @return corresponding «enums.name» item, if present * @throws NullPointerException if name is null */ - public static java.util.Optional<«enums.name»> forName(«String.importedName» name) { - return java.util.Optional.ofNullable(NAME_MAP.get(java.util.Objects.requireNonNull(name))); + public static «Optional.importedName»<«enums.name»> forName(«String.importedName» name) { + return «Optional.importedName».ofNullable(NAME_MAP.get(«Objects.importedName».requireNonNull(name))); } /** diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/UnionTemplate.xtend b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/UnionTemplate.xtend index 71c80181d3..31b0892b33 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/UnionTemplate.xtend +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/UnionTemplate.xtend @@ -13,6 +13,7 @@ import static org.opendaylight.mdsal.binding.model.util.Types.getOuterClassName; import com.google.common.base.Preconditions; import com.google.common.io.BaseEncoding import java.beans.ConstructorProperties +import java.util.Arrays import org.opendaylight.mdsal.binding.model.api.GeneratedProperty import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject import org.opendaylight.mdsal.binding.model.api.Enumeration @@ -30,9 +31,6 @@ class UnionTemplate extends ClassTemplate { */ new(NestedJavaGeneratedType javaType, GeneratedTransferObject genType) { super(javaType, genType) - if (isBaseEncodingImportRequired) { - addImport(BaseEncoding) - } } /** @@ -42,23 +40,6 @@ class UnionTemplate extends ClassTemplate { */ new(GeneratedTransferObject genType) { super(genType) - if (isBaseEncodingImportRequired) { - addImport(BaseEncoding) - } - } - - final private def boolean isBaseEncodingImportRequired() { - for (property : finalProperties) { - val propRet = property.returnType - if (propRet instanceof GeneratedTransferObject && (propRet as GeneratedTransferObject).typedef && - (propRet as GeneratedTransferObject).properties !== null && - !(propRet as GeneratedTransferObject).properties.empty && - ((propRet as GeneratedTransferObject).properties.size == 1) && - (propRet as GeneratedTransferObject).properties.get(0).name.equals("value") && - "byte[]".equals((propRet as GeneratedTransferObject).properties.get(0).returnType.name)) { - return true; - } - } } override constructors() ''' @@ -174,12 +155,12 @@ class UnionTemplate extends ClassTemplate { && (propRet as GeneratedTransferObject).properties.get(0).name.equals("value") && "byte[]".equals((propRet as GeneratedTransferObject).properties.get(0).returnType.name)» ««« generated byte[] typedef - «field.fieldName» = BaseEncoding.base64().encode(«property.fieldName».getValue()).toCharArray(); + «field.fieldName» = «BaseEncoding.importedName».base64().encode(«property.fieldName».getValue()).toCharArray(); «ELSEIF propRet instanceof GeneratedTransferObject // Is it a GeneratedTransferObject && (propRet as GeneratedTransferObject).typedef // Is it a typedef && (propRet as GeneratedTransferObject).baseType instanceof BitsTypeDefinition» ««« generated bits typedef - «field.fieldName» = java.util.Arrays.toString(«property.fieldName».getValue()).toCharArray(); + «field.fieldName» = «Arrays.importedName».toString(«property.fieldName».getValue()).toCharArray(); «ELSE» ««« generated type «field.fieldName» = «property.fieldName».getValue().toString().toCharArray();