Add JavaTypeNames for annotation types
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / main / java / org / opendaylight / mdsal / binding / java / api / generator / BaseTemplate.xtend
index 51abd5dcd51b5fb7c5b168650e84c7e40822b587..fb97640c1a572771ce9eb298d995f6cced128856 100644 (file)
@@ -22,6 +22,7 @@ import java.util.Map.Entry
 import java.util.StringTokenizer
 import java.util.regex.Pattern
 import org.gaul.modernizer_maven_annotations.SuppressModernizer
+import org.opendaylight.mdsal.binding.model.api.AnnotationType
 import org.opendaylight.mdsal.binding.model.api.ConcreteType
 import org.opendaylight.mdsal.binding.model.api.Constant
 import org.opendaylight.mdsal.binding.model.api.GeneratedProperty
@@ -172,7 +173,7 @@ abstract class BaseTemplate extends JavaFileTemplate {
      * group of generated property instances which are transformed to the sequence of parameter names
      * @return string with the list of the parameter names of the <code>parameters</code>
      */
-    def final protected asArguments(Iterable<GeneratedProperty> parameters) '''«IF !parameters.empty»«FOR parameter : parameters SEPARATOR ", "»«parameter.
+    def final protected asArguments(Collection<GeneratedProperty> parameters) '''«IF !parameters.empty»«FOR parameter : parameters SEPARATOR ", "»«parameter.
         fieldName»«ENDFOR»«ENDIF»'''
 
     /**
@@ -387,15 +388,11 @@ abstract class BaseTemplate extends JavaFileTemplate {
             val nextElement = tokenizer.nextToken
 
             if (lineBuilder.length != 0 && lineBuilder.length + nextElement.length > 80) {
-                // FIXME: what tricks are we playing here? Equality probably does not trigger ever
-                //        and then the setLength()/append() combo does not work, either
-                if (lineBuilder.charAt(lineBuilder.length - 1) == ' ') {
-                    lineBuilder.setLength(0)
-                    lineBuilder.append(lineBuilder.substring(0, lineBuilder.length - 1))
+                if (lineBuilder.charAt(lineBuilder.length - 1) == SPACE) {
+                    lineBuilder.setLength(lineBuilder.length - 1)
                 }
-                if (lineBuilder.charAt(0) == ' ') {
-                    lineBuilder.setLength(0)
-                    lineBuilder.append(lineBuilder.substring(1))
+                if (lineBuilder.length != 0 && lineBuilder.charAt(0) == SPACE) {
+                    lineBuilder.deleteCharAt(0)
                 }
 
                 sb.append(lineBuilder).append(NEW_LINE)
@@ -418,7 +415,7 @@ abstract class BaseTemplate extends JavaFileTemplate {
 
     def protected generateToString(Collection<GeneratedProperty> properties) '''
         «IF !properties.empty»
-            @«Override.importedName»
+            @«OVERRIDE.importedName»
             public «String.importedName» toString() {
                 final «MoreObjects.importedName».ToStringHelper helper = «MoreObjects.importedName».toStringHelper(«type.importedName».class);
                 «FOR property : properties»
@@ -496,4 +493,15 @@ abstract class BaseTemplate extends JavaFileTemplate {
             result = prime * result + «property.importedUtilClass».hashCode(«property.fieldName»);
         «ENDFOR»
     '''
+
+    def protected final generateAnnotation(AnnotationType annotation) '''
+        @«annotation.importedName»
+        «IF annotation.parameters !== null && !annotation.parameters.empty»
+        (
+        «FOR param : annotation.parameters SEPARATOR ","»
+            «param.name»=«param.value»
+        «ENDFOR»
+        )
+        «ENDIF»
+    '''
 }