java.DomainObject.xpt Maven / Gradle / Ivy
«EXTENSION java::Naming»
«EXTENSION java::ObjectMapper»
«EXTENSION java::GeneratorCommons»
«EXTENSION entity::ModelProperties»
«IMPORT JMM»
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Generate domain object for business object
//
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
«DEFINE DomainClass FOR DomainObject»
«IF generateDomainObjects() == true»
«IF this.ownedOperation.size == 0 && this.hasCustomImplementation == false»
«FILE packagePath() + "/" + name +".java" src_gen»
«getFileHeader()»
package «this.packageName()»;
«EXPAND functions::Javadoc::JavadocForType»
«EXPAND java::Helper::GenerateGeneratedAnnotation»
«EXPAND java::Helper::GenerateSuppressWarningsAnnotation»
«EXPAND java::Helper::GenerateDeprecationAnnotation-»
public «IF isAbstract»abstract«ENDIF» class «name» extends «IF !superClass.isEmpty»«superClass.get(0).fqn()»«ELSE»com.anaptecs.jeaf.core.api.DomainObject«ENDIF»«IF needsToImplementIdentifiable()==true» implements com.anaptecs.jeaf.xfun.api.common.Identifiable<«this.getObjectIDClassName()»>«ENDIF» {
/**
* Default serial version uid.
*/
private static final long serialVersionUID = 1L;
«REM»Generate constants for all real attributes«ENDREM»
«EXPAND java::Helper::GenerateConstantsForAttributeNames FOR ((uml::Class) this)»
«IF needsToImplementIdentifiable() == true»
«EXPAND java::Identifiable::GenerateIdentifiableDeclaration (this.getObjectIDClassName())»
«ENDIF»
«EXPAND Attribute::PropertyDeclaration FOREACH ownedAttribute»
/**
* Initialize object. Nothing special to do.
*/
public «name»() {
«IF needsToImplementIdentifiable() == true»
objectID = null;
«ENDIF»
«EXPAND DomainObjectConstructorInits»
}
/**
* Initialize object. Therefore its domain object id has to be passed.
*
* @param pDomainObjectID Id of this domain object. The parameter must not be null.
*/
public «name»(com.anaptecs.jeaf.core.api.DomainObjectID pDomainObjectID) {
super(pDomainObjectID);
«IF needsToImplementIdentifiable() == true»
objectID = null;
«ENDIF»
«EXPAND DomainObjectConstructorInits»
}
«IF needsToImplementIdentifiable() == true»
«EXPAND java::Identifiable::GenerateIdentifiableGetters (this.getObjectIDClassName())»
«ENDIF»
«EXPAND Attribute::PropertyAccessors FOREACH ownedAttribute»
«EXPAND java::Helper::GenerateToStringMethod»
}
«ENDFILE»
«ELSE»
«FILE packagePath() + "/" + name +"Base.java" src_gen»
«getFileHeader()»
package «this.packageName()»;
«EXPAND functions::Javadoc::JavadocForType»
«EXPAND java::Helper::GenerateGeneratedAnnotation»
«EXPAND java::Helper::GenerateSuppressWarningsAnnotation»
«EXPAND java::Helper::GenerateDeprecationAnnotation-»
public abstract class «name»Base extends «IF !superClass.isEmpty»«superClass.get(0).fqn()»«ELSE»com.anaptecs.jeaf.core.api.DomainObject«ENDIF»«IF needsToImplementIdentifiable()==true» implements com.anaptecs.jeaf.xfun.api.common.Identifiable<«this.getObjectIDClassName()»>«ENDIF» {
/**
* Default serial version uid.
*/
private static final long serialVersionUID = 1L;
«REM»Generate constants for all attributes«ENDREM»
«FOREACH this.ownedAttribute AS attr»
«IF attr.isMultivalued() == false»
/**
* Constant for the name of attribute "«attr.name»".
*/
public static final String «attr.asInstanceVar().toUpperCase()» = "«attr.asInstanceVar()»";
«ENDIF»«ENDFOREACH»
«IF needsToImplementIdentifiable() == true»
«EXPAND java::Identifiable::GenerateIdentifiableDeclaration (this.getObjectIDClassName())»
«ENDIF»
«EXPAND Attribute::PropertyDeclaration FOREACH ownedAttribute»
/**
* Initialize object. Nothing special to do.
*/
public «name»Base() {
«IF needsToImplementIdentifiable() == true»
objectID = null;
«ENDIF»
«EXPAND DomainObjectConstructorInits»
}
/**
* Initialize object. Therefore its domain object id has to be passed.
*
* @param pDomainObjectID Id of this domain object. The parameter must not be null.
*/
public «name»Base(com.anaptecs.jeaf.core.api.DomainObjectID pDomainObjectID) {
super(pDomainObjectID);
«IF needsToImplementIdentifiable() == true»
objectID = null;
«ENDIF»
«EXPAND DomainObjectConstructorInits»
}
«IF needsToImplementIdentifiable() == true»
«EXPAND java::Identifiable::GenerateIdentifiableGetters (this.getObjectIDClassName())»
«ENDIF»
«EXPAND Attribute::PropertyAccessors FOREACH ownedAttribute»
«EXPAND jeaf::JEAFOperation::BusinessOperation FOREACH ownedOperation»
«EXPAND java::Helper::GenerateToStringMethod»
}
«ENDFILE»
«FILE packagePath() + "/" + name +".java" src»
«getFileHeader()»
package «this.packageName()»;
«EXPAND functions::Javadoc::JavadocForType»
«EXPAND java::Helper::GenerateDeprecationAnnotation-»
public «IF isAbstract»abstract«ENDIF» class «name» extends «name»Base {
/**
* Default serial version uid.
*/
private static final long serialVersionUID = 1L;
/**
* Initialize object. Nothing special to do.
*/
public «name»() {
// Nothing to do.
}
/**
* Initialize object. Therefore its domain object id has to be passed.
*
* @param pDomainObjectID Id of this domain object. The parameter must not be null.
*/
public «name»(com.anaptecs.jeaf.core.api.DomainObjectID pDomainObjectID) {
super(pDomainObjectID);
}
«EXPAND jeaf::JEAFOperation::BusinessOperationImpl FOREACH ownedOperation»
}
«ENDFILE»
«ENDIF»
«ENDIF»
«REM»Generate Object Mappers for POJO«ENDREM»
«EXPAND java::ObjectMapper::GenerateObjectMappers»
«ENDDEFINE»
«DEFINE DomainObjectConstructorInits FOR DomainObject»
«FOREACH this.ownedAttribute AS attr»
«IF attr.isReadOnly == true && attr.isStatic == false»
«IF attr.type.isPrimitiveType() == true»
«IF attr.isMultivalued() == false»
«IF attr.isRealInitValue()»
«attr.name» = «attr.initValue()»;
«ELSE»
«attr.name» = «attr.getPrimitiveDefaultValue()»;
«ENDIF»
«ELSE»
«attr.name» = null;
«ENDIF»
«ELSE»
«IF attr.isMultivalued()»
«REM»Distiguish between arrays and collections.«ENDREM»
«IF attr.association == null»
«attr.name» = null;
«ELSE»
«attr.name» = new «attr.getCollectionImplType()»<«attr.type.fqn()»>();
«ENDIF»
«ELSE»
«attr.name» = null;
«ENDIF»
«ENDIF»
«ELSE»
«IF attr.isMultivalued() && attr.association != null»
«REM»Only in case of collections we have to initilize them.«ENDREM»
«attr.name» = new «attr.getCollectionImplType()»<«attr.type.fqn()»>();
«ELSE»
«IF attr.isRealInitValue() && attr.isStatic == false »
«attr.name» = «IF attr.isJEAFEnumerationProperty()»«attr.type.name».«ENDIF»«attr.initValue()»;
«ENDIF»
«ENDIF»
«ENDIF»
«ENDFOREACH»
«ENDDEFINE»