Clean up BaseTemplate 99/74599/3
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 27 Jul 2018 22:08:51 +0000 (00:08 +0200)
committerRobert Varga <nite@hq.sk>
Sat, 28 Jul 2018 08:34:24 +0000 (08:34 +0000)
Move logic dispatch methods into JavaFileTemplate, where we can
write the same thing in Java. Also makes a few methods static.

Change-Id: I3ac8c16b5378d0420dcb37c31265f06a5f7770a2
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/BaseTemplate.xtend
binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/mdsal/binding/java/api/generator/JavaFileTemplate.java

index d8d40a575a14faf2b04d807d8345ff941efadafb..553a8baa901b9ee719a0449d491c40b28e359fc7 100644 (file)
@@ -177,7 +177,7 @@ abstract class BaseTemplate extends JavaFileTemplate {
         '''
     }
 
-    def String wrapToDocumentation(String text) {
+    def static String wrapToDocumentation(String text) {
         if (text.empty)
             return ""
 
@@ -314,7 +314,7 @@ abstract class BaseTemplate extends JavaFileTemplate {
         return sb.toString();
     }
 
-    def protected String formatDataForJavaDoc(TypeMember type, String additionalComment) {
+    def protected static String formatDataForJavaDoc(TypeMember type, String additionalComment) {
         val StringBuilder typeDescriptionBuilder = new StringBuilder();
         if (!type.comment.nullOrEmpty) {
             typeDescriptionBuilder.append(formatToParagraph(type.comment))
@@ -356,7 +356,7 @@ abstract class BaseTemplate extends JavaFileTemplate {
         return sb.toString
     }
 
-    protected def formatToParagraph(String text) {
+    protected static def formatToParagraph(String text) {
         if(text === null || text.isEmpty)
             return text
 
@@ -479,32 +479,4 @@ abstract class BaseTemplate extends JavaFileTemplate {
            «ENDIF»
        «ENDFOR»
     '''
-
-    def protected Restrictions restrictionsForSetter(Type actualType) {
-        if (actualType instanceof GeneratedType) {
-            return null;
-        }
-        return actualType.restrictions;
-    }
-
-    def protected generateInnerClass(GeneratedType innerClass) '''
-        «IF innerClass instanceof GeneratedTransferObject»
-            «val innerJavaType = javaType.getEnclosedType(innerClass.identifier)»
-            «IF innerClass.unionType»
-                «new UnionTemplate(innerJavaType, innerClass).generateAsInnerClass»
-            «ELSE»
-                «new ClassTemplate(innerJavaType, innerClass).generateAsInnerClass»
-            «ENDIF»
-        «ENDIF»
-    '''
-
-    def static Restrictions getRestrictions(Type type) {
-        if (type instanceof ConcreteType) {
-            return type.restrictions
-        }
-        if (type instanceof GeneratedTransferObject) {
-            return type.restrictions
-        }
-        return null
-    }
 }
index 02b1150bc074059c2aeee3bb2b96132a404e8745..5387a82c5340020f862c7635de89588cdd4b8f91 100644 (file)
@@ -12,10 +12,12 @@ import static java.util.Objects.requireNonNull;
 
 import java.util.Optional;
 import java.util.stream.Collectors;
+import org.opendaylight.mdsal.binding.model.api.ConcreteType;
 import org.opendaylight.mdsal.binding.model.api.GeneratedProperty;
 import org.opendaylight.mdsal.binding.model.api.GeneratedTransferObject;
 import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
+import org.opendaylight.mdsal.binding.model.api.Restrictions;
 import org.opendaylight.mdsal.binding.model.api.Type;
 import org.opendaylight.mdsal.binding.model.util.Types;
 
@@ -81,4 +83,29 @@ class JavaFileTemplate {
         final Optional<JavaTypeName> optEnc = name.immediatelyEnclosingClass();
         return optEnc.isPresent() && type.getIdentifier().equals(optEnc.get());
     }
+
+    final CharSequence generateInnerClass(final GeneratedType innerClass) {
+        if (!(innerClass instanceof GeneratedTransferObject)) {
+            return "";
+        }
+
+        final GeneratedTransferObject gto = (GeneratedTransferObject) innerClass;
+        final NestedJavaGeneratedType innerJavaType = javaType.getEnclosedType(innerClass.getIdentifier());
+        return gto.isUnionType() ? new UnionTemplate(innerJavaType, gto).generateAsInnerClass()
+                : new ClassTemplate(innerJavaType, gto).generateAsInnerClass();
+    }
+
+    static final Restrictions restrictionsForSetter(final Type actualType) {
+        return actualType instanceof GeneratedType ? null : getRestrictions(actualType);
+    }
+
+    static final Restrictions getRestrictions(final Type type) {
+        if (type instanceof ConcreteType) {
+            return ((ConcreteType) type).getRestrictions();
+        }
+        if (type instanceof GeneratedTransferObject) {
+            return ((GeneratedTransferObject) type).getRestrictions();
+        }
+        return null;
+    }
 }