Revert "Bug 3147 - Binding spec v1: auto generated code by YANGTOOLS could"
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / main / java / org / opendaylight / yangtools / sal / java / api / generator / BuilderTemplate.xtend
index 6913a84193cd2f7f03103c0193f4c2d79c59ee6c..300d725f97847938ce89cc39b76ebaf324930264 100644 (file)
@@ -414,10 +414,6 @@ class BuilderTemplate extends BaseTemplate {
         «IF properties !== null»
             «FOR f : properties»
                 private«IF _final» final«ENDIF» «f.returnType.importedName» «f.fieldName»;
-                «val restrictions = f.returnType.restrictions»
-                «IF !_final && restrictions != null && !(restrictions.lengthConstraints.empty)»
-                    «LengthGenerator.generateLengthChecker(f.fieldName.toString, f.returnType, restrictions.lengthConstraints)»
-                «ENDIF»
             «ENDFOR»
         «ENDIF»
     '''
@@ -435,16 +431,22 @@ class BuilderTemplate extends BaseTemplate {
      */
     def private generateSetters() '''
         «FOR field : properties SEPARATOR '\n'»
-            «val restrictions = field.returnType.restrictions»
-            «IF restrictions != null»
-                «IF !restrictions.rangeConstraints.nullOrEmpty»
-                    «val rangeGenerator = AbstractRangeGenerator.forType(field.returnType)»
-                    «rangeGenerator.generateRangeChecker(field.name.toFirstUpper, restrictions.rangeConstraints)»
+             «/* FIXME: generate checkers as simple blocks and embed them directly in setters  */»
+             «val restrictions = field.returnType.restrictions»
+             «IF !(field.returnType instanceof GeneratedType) && restrictions != null»
+                    «IF !restrictions.rangeConstraints.nullOrEmpty»
+                        «val rangeGenerator = AbstractRangeGenerator.forType(field.returnType)»
+                        «rangeGenerator.generateRangeChecker(field.name.toFirstUpper, restrictions.rangeConstraints)»
 
-                «ENDIF»
+                    «ENDIF»
+                    «IF !restrictions.lengthConstraints.nullOrEmpty»
+                    «LengthGenerator.generateLengthChecker(field.fieldName.toString, field.returnType, restrictions.lengthConstraints)»
+
+                    «ENDIF»
             «ENDIF»
-            public «type.name»«BUILDER» set«field.name.toFirstUpper»(«field.returnType.importedName» value) {
-                «IF restrictions != null»
+            public «type.name»«BUILDER» set«field.name.toFirstUpper»(final «field.returnType.importedName» value) {
+            «IF !(field.returnType instanceof GeneratedType) && restrictions != null»
+                «IF restrictions != null && (!restrictions.rangeConstraints.nullOrEmpty || !restrictions.lengthConstraints.nullOrEmpty)»
                 if (value != null) {
                     «IF !restrictions.rangeConstraints.nullOrEmpty»
                         «val rangeGenerator = AbstractRangeGenerator.forType(field.returnType)»
@@ -454,9 +456,16 @@ class BuilderTemplate extends BaseTemplate {
                             «rangeGenerator.generateRangeCheckerCall(field.name.toFirstUpper, "value.getValue()")»
                         «ENDIF»
                     «ENDIF»
-                    «generateRestrictions(field, "value")»
+                    «IF !restrictions.lengthConstraints.nullOrEmpty»
+                        «IF field.returnType instanceof ConcreteType»
+                            «LengthGenerator.generateLengthCheckerCall(field.fieldName.toString, "value")»
+                         «ELSE»
+                            «LengthGenerator.generateLengthCheckerCall(field.fieldName.toString, "value.getValue()")»
+                        «ENDIF»
+                    «ENDIF»
                 }
                 «ENDIF»
+            «ENDIF»
                 this.«field.fieldName» = value;
                 return this;
             }
@@ -485,18 +494,6 @@ class BuilderTemplate extends BaseTemplate {
         «ENDIF»
     '''
 
-    def private generateRestrictions(GeneratedProperty field, String paramName) '''
-        «val Type type = field.returnType»
-        «val restrictions = type.getRestrictions»
-        «IF restrictions !== null && !restrictions.lengthConstraints.empty»
-            «IF type instanceof ConcreteType»
-                «LengthGenerator.generateLengthCheckerCall(field.fieldName.toString, paramName)»
-            «ELSE»
-                «LengthGenerator.generateLengthCheckerCall(field.fieldName.toString, paramName + ".getValue()")»
-            «ENDIF»
-        «ENDIF»
-    '''
-
     def private CharSequence generateCopyConstructor(boolean impl) '''
         «IF impl»private«ELSE»public«ENDIF» «type.name»«IF impl»«IMPL»«ELSE»«BUILDER»«ENDIF»(«type.name»«IF impl»«BUILDER»«ENDIF» base) {
             «val allProps = new ArrayList(properties)»