return generateDeprecatedAnnotation(found)
}
- def protected final CharSequence generateCopyNonKeys(Collection<GeneratedProperty> props) '''
- «FOR field : props»
- this.«field.fieldName» = base.«field.getterMethodName»();
- «ENDFOR»
- '''
-
def protected abstract CharSequence generateCopyKeys(List<GeneratedProperty> keyProps)
+ def protected abstract CharSequence generateCopyNonKeys(Collection<GeneratedProperty> props)
+
def protected abstract CharSequence generateCopyAugmentation(Type implType)
def protected abstract CharSequence generateDeprecatedAnnotation(AnnotationType ann)
import org.opendaylight.mdsal.binding.model.api.MethodSignature;
import org.opendaylight.mdsal.binding.model.api.ParameterizedType;
import org.opendaylight.mdsal.binding.model.api.Type;
+import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedPropertyBuilder;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTOBuilder;
import org.opendaylight.mdsal.binding.model.api.type.builder.GeneratedTypeBuilder;
import org.opendaylight.mdsal.binding.model.util.Types;
final String fieldName = StringExtensions.toFirstLower(method.getName().substring(prefix.length()));
final GeneratedTOBuilder tmpGenTO = new CodegenGeneratedTOBuilder(JavaTypeName.create("foo", "foo"));
- tmpGenTO.addProperty(fieldName).setReturnType(method.getReturnType());
+ final GeneratedPropertyBuilder builder = tmpGenTO.addProperty(fieldName).setReturnType(method.getReturnType());
+ switch (method.getMechanics()) {
+ case NULLIFY_EMPTY:
+ builder.setNullifyEmpty(true);
+ break;
+ default:
+ break;
+ }
return tmpGenTO.build().getProperties().get(0);
}
}
«ENDFOR»
'''
+ override protected CharSequence generateCopyNonKeys(Collection<GeneratedProperty> props) '''
+ «FOR field : props»
+ «IF field.nullifyEmpty»
+ this.«field.fieldName» = «CODEHELPERS.importedName».emptyToNull(base.«field.getterMethodName»());
+ «ELSE»
+ this.«field.fieldName» = base.«field.getterMethodName»();
+ «ENDIF»
+ «ENDFOR»
+ '''
+
override protected generateCopyAugmentation(Type implType) '''
super(base.«AUGMENTATION_FIELD»);
'''
«generateCopyNonKeys(keyProps)»
'''
+
+ override protected CharSequence generateCopyNonKeys(Collection<GeneratedProperty> props) '''
+ «FOR field : props»
+ this.«field.fieldName» = base.«field.getterMethodName»();
+ «ENDFOR»
+ '''
+
override protected generateCopyAugmentation(Type implType) {
val augmentationHolderRef = AugmentationHolder.importedName
val typeRef = targetType.importedName
import org.opendaylight.mdsal.binding.model.api.GeneratedType;
import org.opendaylight.mdsal.binding.model.api.JavaTypeName;
import org.opendaylight.mdsal.binding.model.api.MethodSignature;
+import org.opendaylight.mdsal.binding.model.api.MethodSignature.ValueMechanics;
import org.opendaylight.mdsal.binding.model.api.Type;
public class BuilderGeneratorTest {
final Type methType = mock(Type.class);
doReturn(TYPE_NAME).when(methType).getIdentifier();
doReturn(methType).when(methSign).getReturnType();
+ doReturn(ValueMechanics.NORMAL).when(methSign).getMechanics();
return methSign;
}
}