«IF augmentType !== null»
«generateCopyAugmentation(implType)»
«ENDIF»
- «val allProps = new ArrayList(properties)»
«IF keyType !== null && implementsIfc(targetType, BindingTypes.identifiable(targetType))»
«val keyProps = new ArrayList((keyType as GeneratedTransferObject).properties)»
«keyProps.sort(KEY_PROPS_COMPARATOR)»
+ «val allProps = new ArrayList(properties)»
«FOR field : keyProps»
«removeProperty(allProps, field.name)»
«ENDFOR»
«generateCopyKeys(keyProps)»
+ «generateCopyNonKeys(allProps)»
+ «ELSE»
+ «generateCopyNonKeys(properties)»
«ENDIF»
- «FOR field : allProps»
- this.«field.fieldName» = base.«field.getterMethodName»();
- «ENDFOR»
}
'''
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 generateCopyAugmentation(Type implType)