Package org.nuiton.topia.generator
Class EntityTransformer
java.lang.Object
org.nuiton.eugene.Template<I>
org.nuiton.eugene.Transformer<org.nuiton.eugene.models.object.ObjectModel,O>
org.nuiton.eugene.models.object.ObjectModelTransformer<org.nuiton.eugene.models.object.ObjectModel>
org.nuiton.eugene.java.ObjectModelTransformerToJava
org.nuiton.topia.generator.EntityTransformer
- All Implemented Interfaces:
org.nuiton.eugene.TemplateConfiguration
@Component(role=org.nuiton.eugene.Template.class,
hint="org.nuiton.topia.generator.EntityTransformer")
public class EntityTransformer
extends org.nuiton.eugene.java.ObjectModelTransformerToJava
A template to generate all the
TopiaEntity api for all classifier
with a entity stereotype.
For example, given a House entity, it will generates :
House: contract of entityAbstractHouse: default abstract implementation of entityHouseImpl: default impl of abstract entity
- There is no abstract method
- There is no already defined such class in class-path
- Since:
- 2.3.4
- Author:
- tchemit <chemit@codelutin.com>
-
Field Summary
Fields Modifier and Type Field Description protected booleangenerateAbstractprotected booleangenerateBooleanGetMethodsprotected booleangenerateImplprotected booleangenerateInterfaceprotected org.nuiton.eugene.models.object.ObjectModelClassoutputAbstractprotected org.nuiton.eugene.models.object.ObjectModelClassoutputImplprotected org.nuiton.eugene.models.object.ObjectModelInterfaceoutputInterfaceFields inherited from class org.nuiton.eugene.java.ObjectModelTransformerToJava
builder, eugeneTagValuesFields inherited from class org.nuiton.eugene.Transformer
outputModel, outputProperties, outputTemplate, previousTransformer -
Constructor Summary
Constructors Constructor Description EntityTransformer() -
Method Summary
Modifier and Type Method Description protected voidaddContextableMethods(org.nuiton.eugene.models.object.ObjectModelClass input, org.nuiton.eugene.models.object.ObjectModelClass outputAbstract)Ajout les methodes necessaire à l'interfaceTopiaEntityContextablesi le tagValueTopiaTagValues.TAG_CONTEXTABLEest renseigné.protected voidaddInterface(java.util.List<java.lang.String> interfaceAlreadyDone, org.nuiton.eugene.models.object.ObjectModelClassifier output, java.lang.Class<?> clazz)protected voidaddInterface(java.util.List<java.lang.String> interfaceAlreadyDone, org.nuiton.eugene.models.object.ObjectModelClassifier output, org.nuiton.eugene.models.object.ObjectModelClassifier interfaze)protected voidaddMultipleAddAllOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String collectionInterface)protected voidaddMultipleAddOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String collectionImpl)protected voidaddMultipleClearOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String collectionInterface, java.lang.String collectionImpl)protected voidaddMultipleGetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String collectionInterface)protected voidaddMultipleGetOperationFromEntity(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)protected voidaddMultipleGetTopiaIdOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)protected voidaddMultipleIsEmptyOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)protected voidaddMultipleRemoveOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)protected voidaddMultipleSetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String collectionInterface, java.lang.String collectionImpl)protected voidaddMultipleSizeOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)protected voidaddSingleGetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String attrType, java.lang.String operationPrefix)Add getter for simple property (neither association nor multiple).protected voidaddSingleSetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)protected voidclean()protected voidcloseAcceptInternalOperation()protected voidcreateAcceptInternalOperation(org.nuiton.eugene.models.object.ObjectModelClass input)protected voidcreateAcceptOperation()protected voidcreateEntityAbstractClass(org.nuiton.eugene.models.object.ObjectModelClass input)protected voidcreateEntityInterface(org.nuiton.eugene.models.object.ObjectModelClass input)protected org.nuiton.eugene.models.object.ObjectModelOperationcreateImplOperation(org.nuiton.eugene.models.object.ObjectModelOperation interfaceOperation)protected org.nuiton.eugene.models.object.ObjectModelOperationcreatePropertySetterSignature(org.nuiton.eugene.models.object.ObjectModelClassifier classifier, java.lang.String propertyType, java.lang.String propertyName, java.lang.String operationDocumentation)TODO-fdesbois-2010-06-25 : This method can be put in JavaBuilder or ObjectModelTransformerToJava This method create an set operation inclassifierwithpropertyTypeas return type andpropertyNameused for operation name ('set[propertyName]').protected voidgenerateAggregateOperation(org.nuiton.eugene.models.object.ObjectModelClass input)protected voidgenerateCompositeOperation(org.nuiton.eugene.models.object.ObjectModelClass input)protected voidgenerateExtraConstants(org.nuiton.eugene.models.object.ObjectModelClass input)Generate extra constants ifinputhas dependencies on enum used as constant injector.protected voidgenerateExtraOperations(org.nuiton.eugene.models.object.ObjectModelClass input)protected voidgenerateImpl(org.nuiton.eugene.models.object.ObjectModelClass input)protected voidgenerateProperties(java.util.Collection<org.nuiton.eugene.models.object.ObjectModelAttribute> attributes)Generate properties fromattributes.protected voidgeneratePropertyAttribute(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)protected voidgeneratePropertyConstant(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)Generate constant in interface forattribute.protected voidgeneratePropertyOperations(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)Generation operations forattributes.protected voidgenerateSerialVersionUID(org.nuiton.eugene.models.object.ObjectModelClass input, org.nuiton.eugene.models.object.ObjectModelClass ouput)protected voidgenerateToStringOperation(org.nuiton.eugene.models.object.ObjectModelClass input)protected java.lang.StringgetCollectionType(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)protected java.lang.StringgetPropertyName(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)protected java.lang.StringgetPropertyType(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)protected booleanisAbstract(org.nuiton.eugene.models.object.ObjectModelClass clazz)protected booleanisGenerateAbstract(org.nuiton.eugene.models.object.ObjectModelClass input)protected booleanisGenerateImpl(org.nuiton.eugene.models.object.ObjectModelClass input)protected booleanisGenerateInterface(org.nuiton.eugene.models.object.ObjectModelClass input)voidtransformFromClass(org.nuiton.eugene.models.object.ObjectModelClass input)protected voidupdateAcceptOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)Methods inherited from class org.nuiton.eugene.java.ObjectModelTransformerToJava
addAnnotation, addAnnotation, addAnnotationParameter, addAttribute, addAttribute, addAttribute, addAttribute, addBlock, addComment, addConstant, addConstant, addConstantsFromDependency, addConstructor, addConstructor, addException, addException, addGeneratedAnnotation, addI18n, addImport, addImport, addImport, addInnerClassifier, addInterface, addInterface, addLiteral, addOperation, addOperation, addOperation, addParameter, addParameter, addStereotype, addTagValue, addTagValue, cloneAttribute, cloneClass, cloneClassifier, cloneClassifier, cloneEnumeration, cloneInterface, cloneOperation, cloneOperationSignature, cloneStereotypes, cloneTagValues, copyClassifier, createAbstractClass, createClass, createEnumeration, createInterface, debugOutputModel, generateI18nBlock, getConstantName, getConstantPrefix, getConstantPrefix, getFileInClassPath, getJavaBeanMethodName, getJavaBeanMethodName, getPackage, getPackage, initConstantPrefixFromModel, initOutputModel, initOutputTemplate, isInClassPath, isInClassPath, isInClassPath, setConstantPrefix, setDocumentation, setMaxMultiplicity, setMinMultiplicity, setNavigable, setOperationBody, setSuperClass, setSuperClassMethods inherited from class org.nuiton.eugene.models.object.ObjectModelTransformer
transform, transformFromClassifier, transformFromElement, transformFromEnumeration, transformFromInterface, transformFromModelMethods inherited from class org.nuiton.eugene.Transformer
addOutputProperty, applyTemplate, getDefaultPackageName, getOutputModel, getOutputProperties, getOutputTemplate, init, initPreviousTransformer, transformMethods inherited from class org.nuiton.eugene.Template
getClassLoader, getConfiguration, getEncoding, getExcludeTemplates, getGeneratedPackages, getLastModifiedSource, getModel, getOverwrite, getProperties, getProperty, getProperty, getResourcesHelper, getWriterReport, isOverwrite, isVerbose, setConfiguration, setProperty
-
Field Details
-
outputInterface
protected org.nuiton.eugene.models.object.ObjectModelInterface outputInterface -
outputAbstract
protected org.nuiton.eugene.models.object.ObjectModelClass outputAbstract -
outputImpl
protected org.nuiton.eugene.models.object.ObjectModelClass outputImpl -
generateInterface
protected boolean generateInterface -
generateAbstract
protected boolean generateAbstract -
generateImpl
protected boolean generateImpl -
generateBooleanGetMethods
protected boolean generateBooleanGetMethods
-
-
Constructor Details
-
EntityTransformer
public EntityTransformer()
-
-
Method Details
-
clean
protected void clean() -
transformFromClass
public void transformFromClass(org.nuiton.eugene.models.object.ObjectModelClass input)- Overrides:
transformFromClassin classorg.nuiton.eugene.models.object.ObjectModelTransformer<org.nuiton.eugene.models.object.ObjectModel>
-
generateSerialVersionUID
protected void generateSerialVersionUID(org.nuiton.eugene.models.object.ObjectModelClass input, org.nuiton.eugene.models.object.ObjectModelClass ouput) -
createEntityInterface
protected void createEntityInterface(org.nuiton.eugene.models.object.ObjectModelClass input) -
createEntityAbstractClass
protected void createEntityAbstractClass(org.nuiton.eugene.models.object.ObjectModelClass input) -
addContextableMethods
protected void addContextableMethods(org.nuiton.eugene.models.object.ObjectModelClass input, org.nuiton.eugene.models.object.ObjectModelClass outputAbstract)Ajout les methodes necessaire à l'interfaceTopiaEntityContextablesi le tagValueTopiaTagValues.TAG_CONTEXTABLEest renseigné.- Parameters:
input-outputAbstract-
-
isGenerateInterface
protected boolean isGenerateInterface(org.nuiton.eugene.models.object.ObjectModelClass input) -
isGenerateAbstract
protected boolean isGenerateAbstract(org.nuiton.eugene.models.object.ObjectModelClass input) -
isGenerateImpl
protected boolean isGenerateImpl(org.nuiton.eugene.models.object.ObjectModelClass input) -
generateImpl
protected void generateImpl(org.nuiton.eugene.models.object.ObjectModelClass input) -
generateExtraConstants
protected void generateExtraConstants(org.nuiton.eugene.models.object.ObjectModelClass input)Generate extra constants ifinputhas dependencies on enum used as constant injector.- Parameters:
input- Entity class to treate
-
generateExtraOperations
protected void generateExtraOperations(org.nuiton.eugene.models.object.ObjectModelClass input) -
generateProperties
protected void generateProperties(java.util.Collection<org.nuiton.eugene.models.object.ObjectModelAttribute> attributes)Generate properties fromattributes. Generate constant, attribute and operations for each property.- Parameters:
attributes- Input attributes
-
generatePropertyConstant
protected void generatePropertyConstant(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)Generate constant in interface forattribute.- Parameters:
attribute- Input attribute to treate- See Also:
getPropertyName(ObjectModelAttribute)
-
generatePropertyAttribute
protected void generatePropertyAttribute(org.nuiton.eugene.models.object.ObjectModelAttribute attribute) -
generatePropertyOperations
protected void generatePropertyOperations(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)Generation operations forattributes. One method exists for each operation to generate. Methods starting with 'addSingle' is for maxMultiplicity attribute = 1 and for collection case, methods start with 'addMultiple'. Other case are take care in each method (association class, reverse, entity reference, ...).- Parameters:
attribute- Input attribute to treate- See Also:
addSingleGetOperation(ObjectModelAttribute, String, String),addSingleSetOperation(ObjectModelAttribute),addMultipleAddOperation(ObjectModelAttribute, String),addMultipleAddAllOperation(ObjectModelAttribute, String),addMultipleSetOperation(ObjectModelAttribute, String, String),addMultipleRemoveOperation(ObjectModelAttribute),addMultipleClearOperation(ObjectModelAttribute, String, String),addMultipleGetOperation(ObjectModelAttribute, String),addMultipleGetTopiaIdOperation(ObjectModelAttribute),addMultipleGetOperationFromEntity(ObjectModelAttribute),addMultipleSizeOperation(ObjectModelAttribute),addMultipleIsEmptyOperation(ObjectModelAttribute)
-
addSingleSetOperation
protected void addSingleSetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute) -
addSingleGetOperation
protected void addSingleGetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String attrType, java.lang.String operationPrefix)Add getter for simple property (neither association nor multiple). Will add two different operations for boolean case ('is' method and 'get' method). This method add the operation in bothoutputAbstractandoutputInterface.- Parameters:
attribute- ObjectModelAttribute for getter operationattrType- type of the attributeoperationPrefix- Operation prefix : 'get' by default, if prefix is null
-
addMultipleAddOperation
protected void addMultipleAddOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String collectionImpl) -
addMultipleAddAllOperation
protected void addMultipleAddAllOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String collectionInterface) -
addMultipleSetOperation
protected void addMultipleSetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String collectionInterface, java.lang.String collectionImpl) -
addMultipleRemoveOperation
protected void addMultipleRemoveOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute) -
addMultipleClearOperation
protected void addMultipleClearOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String collectionInterface, java.lang.String collectionImpl) -
addMultipleGetOperation
protected void addMultipleGetOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, java.lang.String collectionInterface) -
addMultipleGetTopiaIdOperation
protected void addMultipleGetTopiaIdOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute) -
addMultipleGetOperationFromEntity
protected void addMultipleGetOperationFromEntity(org.nuiton.eugene.models.object.ObjectModelAttribute attribute) -
addMultipleSizeOperation
protected void addMultipleSizeOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute) -
addMultipleIsEmptyOperation
protected void addMultipleIsEmptyOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute) -
createAcceptOperation
protected void createAcceptOperation() -
createAcceptInternalOperation
protected void createAcceptInternalOperation(org.nuiton.eugene.models.object.ObjectModelClass input) -
updateAcceptOperation
protected void updateAcceptOperation(org.nuiton.eugene.models.object.ObjectModelAttribute attribute) -
closeAcceptInternalOperation
protected void closeAcceptInternalOperation() -
generateToStringOperation
protected void generateToStringOperation(org.nuiton.eugene.models.object.ObjectModelClass input) -
generateCompositeOperation
protected void generateCompositeOperation(org.nuiton.eugene.models.object.ObjectModelClass input) -
generateAggregateOperation
protected void generateAggregateOperation(org.nuiton.eugene.models.object.ObjectModelClass input) -
isAbstract
protected boolean isAbstract(org.nuiton.eugene.models.object.ObjectModelClass clazz) -
getCollectionType
protected java.lang.String getCollectionType(org.nuiton.eugene.models.object.ObjectModelAttribute attribute) -
getPropertyName
protected java.lang.String getPropertyName(org.nuiton.eugene.models.object.ObjectModelAttribute attribute) -
getPropertyType
protected java.lang.String getPropertyType(org.nuiton.eugene.models.object.ObjectModelAttribute attribute) -
createImplOperation
protected org.nuiton.eugene.models.object.ObjectModelOperation createImplOperation(org.nuiton.eugene.models.object.ObjectModelOperation interfaceOperation) -
createPropertySetterSignature
protected org.nuiton.eugene.models.object.ObjectModelOperation createPropertySetterSignature(org.nuiton.eugene.models.object.ObjectModelClassifier classifier, java.lang.String propertyType, java.lang.String propertyName, java.lang.String operationDocumentation)TODO-fdesbois-2010-06-25 : This method can be put in JavaBuilder or ObjectModelTransformerToJava This method create an set operation inclassifierwithpropertyTypeas return type andpropertyNameused for operation name ('set[propertyName]').operationDocumentcan also be added to the operation created. Only signature with default visibility will be added.- Parameters:
classifier- Classifier where the operation will be addedpropertyType- Type of the property (better if qualified name)propertyName- Name of the property to setoperationDocumentation- Documentation for the operation- Returns:
- the created operation
-
addInterface
protected void addInterface(java.util.List<java.lang.String> interfaceAlreadyDone, org.nuiton.eugene.models.object.ObjectModelClassifier output, org.nuiton.eugene.models.object.ObjectModelClassifier interfaze) -
addInterface
protected void addInterface(java.util.List<java.lang.String> interfaceAlreadyDone, org.nuiton.eugene.models.object.ObjectModelClassifier output, java.lang.Class<?> clazz)
-