Cleanup EnumTemplate and UnionTemplate 10/70110/17
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 26 Mar 2018 16:44:54 +0000 (18:44 +0200)
committerTom Pantelis <tompantelis@gmail.com>
Wed, 2 May 2018 02:27:31 +0000 (02:27 +0000)
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 <robert.varga@pantheon.tech>
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/EnumTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/UnionTemplate.xtend

index 5f814ae719a07d18c7099a10dd0bc073f50f17e7..0bca47918eebcc8cbe5c04cbaa64a0fa08ad5938 100644 (file)
@@ -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<java.lang.String, «enums.name»> NAME_MAP;
-            private static final java.util.Map<java.lang.Integer, «enums.name»> 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<java.lang.String, «enums.name»> nb =
-                    com.google.common.collect.ImmutableMap.builder();
-                final com.google.common.collect.ImmutableMap.Builder<java.lang.Integer, «enums.name»> 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)));
             }
 
             /**
index 71c80181d3b6b8b96c2402ca12b1bda80ac17da1..31b0892b3348c82cab8897401bb10f04f1b23531 100644 (file)
@@ -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();