X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=binding%2Fmdsal-binding-java-api-generator%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fsal%2Fjava%2Fapi%2Fgenerator%2FBuilderTemplate.xtend;h=300d725f97847938ce89cc39b76ebaf324930264;hb=85de37f352faa1ef6319db3141a68a99b6c9f365;hp=6913a84193cd2f7f03103c0193f4c2d79c59ee6c;hpb=9ba501bd6779fcdf3a5ab2ef2dde2803673701e0;p=mdsal.git diff --git a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend index 6913a84193..300d725f97 100644 --- a/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend +++ b/binding/mdsal-binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BuilderTemplate.xtend @@ -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)»