Do not lose newlines/tabs from javadoc
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / main / java / org / opendaylight / mdsal / binding / java / api / generator / BaseTemplate.xtend
index 5aa6d5560a8d26ca1cc43d0d0ce3ed383b894e38..0ebe404e0fc9d95e63934291023cfe8f61689bcc 100644 (file)
@@ -89,8 +89,10 @@ abstract class BaseTemplate extends JavaFileTemplate {
             prefix = BindingMapping.BOOLEAN_GETTER_PREFIX
         } else if (getter.name.startsWith(BindingMapping.GETTER_PREFIX)) {
             prefix = BindingMapping.GETTER_PREFIX
+        } else if (getter.name.startsWith(BindingMapping.NONNULL_PREFIX)) {
+            prefix = BindingMapping.NONNULL_PREFIX
         } else {
-            throw new IllegalArgumentException("Not a getter")
+            throw new IllegalArgumentException(getter + " is not a getter")
         }
         return getter.name.substring(prefix.length).toFirstLower;
     }
@@ -361,8 +363,8 @@ abstract class BaseTemplate extends JavaFileTemplate {
         var boolean isFirstElementOnNewLineEmptyChar = false;
 
         formattedText = encodeJavadocSymbols(formattedText)
-        formattedText = NL_MATCHER.removeFrom(formattedText)
-        formattedText = TAB_MATCHER.removeFrom(formattedText)
+        formattedText = NL_MATCHER.replaceFrom(formattedText, ' ')
+        formattedText = TAB_MATCHER.replaceFrom(formattedText, ' ')
         formattedText = SPACES_PATTERN.matcher(formattedText).replaceAll(" ")
 
         val StringTokenizer tokenizer = new StringTokenizer(formattedText, " ", true);
@@ -434,7 +436,7 @@ abstract class BaseTemplate extends JavaFileTemplate {
     def protected emitConstant(Constant c) '''
         «IF BindingMapping.QNAME_STATIC_FIELD_NAME.equals(c.name)»
             «val entry = c.value as Entry<JavaTypeName, String>»
-            public static final «c.type.importedName» «c.name» = «entry.key.importedName».«BindingMapping.MODULE_INFO_QNAMEOF_METHOD_NAME»("«entry.value»");
+            public static final «c.type.importedNonNull» «c.name» = «entry.key.importedName».«BindingMapping.MODULE_INFO_QNAMEOF_METHOD_NAME»("«entry.value»");
         «ELSE»
             public static final «c.type.importedName» «c.name» = «c.value»;
         «ENDIF»
@@ -474,4 +476,12 @@ abstract class BaseTemplate extends JavaFileTemplate {
            «ENDIF»
        «ENDFOR»
     '''
+
+    def protected hashCodeResult(Collection<GeneratedProperty> properties) '''
+        final int prime = 31;
+        int result = 1;
+        «FOR property : properties»
+            result = prime * result + «property.importedUtilClass».hashCode(«property.fieldName»);
+        «ENDFOR»
+    '''
 }