Class EntityDAOTransformer

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.EntityDAOTransformer
All Implemented Interfaces:
org.nuiton.eugene.TemplateConfiguration

@Component(role=org.nuiton.eugene.Template.class, hint="org.nuiton.topia.generator.EntityDAOTransformer") public class EntityDAOTransformer extends org.nuiton.eugene.java.ObjectModelTransformerToJava
To generate all DAO related classes for a given entity.
Since:
2.5.4
Author:
tchemit <chemit@codelutin.com>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Class<?>
    The class of abstract dao to use.
    protected String
     
    protected String
     
    protected Map<org.nuiton.eugene.models.object.ObjectModelClass,Set<org.nuiton.eugene.models.object.ObjectModelClass>>
    map of direct usages (values) for each entity (key).

    Fields inherited from class org.nuiton.eugene.java.ObjectModelTransformerToJava

    builder, eugeneTagValues

    Fields inherited from class org.nuiton.eugene.Transformer

    outputModel, outputProperties, outputTemplate, previousTransformer

    Fields inherited from class org.nuiton.eugene.Template

    configuration, excludeTemplates, generatedPackages, model, resourcesHelper

    Fields inherited from interface org.nuiton.eugene.TemplateConfiguration

    PROP_CLASS_LOADER, PROP_DEFAULT_PACKAGE, PROP_ENCODING, PROP_EXCLUDE_TEMPLATES, PROP_GENERATED_PACKAGES, PROP_LAST_MODIFIED_SOURCE, PROP_OVERWRITE, PROP_VERBOSE, PROP_WRITER_REPORT
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected void
    generateDAOAbstract(org.nuiton.eugene.models.object.ObjectModelClass clazz, String clazzName, String clazzFQN)
     
    protected void
    generateDAOClass(org.nuiton.eugene.models.object.ObjectModelClass clazz, String clazzName, String clazzFQN)
     
    protected void
    generateDAOImpl(org.nuiton.eugene.models.object.ObjectModelClass clazz, String clazzName, String clazzFQN)
     
    protected void
    generateDelete(org.nuiton.eugene.models.object.ObjectModelClass clazz, org.nuiton.eugene.models.object.ObjectModelClass result)
     
    protected void
    generateFindUsages(org.nuiton.eugene.models.object.ObjectModelClass clazz, org.nuiton.eugene.models.object.ObjectModelClass result, Set<org.nuiton.eugene.models.object.ObjectModelClass> usagesForclass)
     
    protected void
    generateNMultiplicity(String clazzName, org.nuiton.eugene.models.object.ObjectModelClass result, org.nuiton.eugene.models.object.ObjectModelAttribute attr)
     
    protected void
    generateNoNMultiplicity(String clazzName, org.nuiton.eugene.models.object.ObjectModelClass result, org.nuiton.eugene.models.object.ObjectModelAttribute attr, boolean isAssoc)
     
    Collection<org.nuiton.eugene.models.object.ObjectModelOperation>
    getDAOOperations(org.nuiton.eugene.models.object.ObjectModelClass clazz)
    Obtain business operations of the DAO.
    protected boolean
    isGenerateDAO(org.nuiton.eugene.models.object.ObjectModelClass input)
     
    protected boolean
    isGenerateDAOAbstract(org.nuiton.eugene.models.object.ObjectModelClass input)
     
    protected boolean
    isGenerateImpl(org.nuiton.eugene.models.object.ObjectModelClass input)
     
    void
    transformFromClass(org.nuiton.eugene.models.object.ObjectModelClass clazz)
     
    void
    transformFromInterface(org.nuiton.eugene.models.object.ObjectModelInterface interfacez)
     
    void
    transformFromModel(org.nuiton.eugene.models.object.ObjectModel model)
     

    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, setSuperClass

    Methods inherited from class org.nuiton.eugene.models.object.ObjectModelTransformer

    transform, transformFromClassifier, transformFromElement, transformFromEnumeration

    Methods inherited from class org.nuiton.eugene.Transformer

    addOutputProperty, applyTemplate, getDefaultPackageName, getOutputModel, getOutputProperties, getOutputTemplate, init, initPreviousTransformer, transform

    Methods inherited from class org.nuiton.eugene.Template

    getClassLoader, getConfiguration, getEncoding, getExcludeTemplates, getGeneratedPackages, getLastModifiedSource, getModel, getOverwrite, getProperties, getProperty, getProperty, getResourcesHelper, getWriterReport, isOverwrite, isVerbose, setConfiguration, setProperty

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • usages

      protected Map<org.nuiton.eugene.models.object.ObjectModelClass,Set<org.nuiton.eugene.models.object.ObjectModelClass>> usages
      map of direct usages (values) for each entity (key). This map is used to generate the findUsages methods for DAOAbstract.
    • daoImplementation

      protected Class<?> daoImplementation
      The class of abstract dao to use.
      Since:
      2.5
    • entityEnumName

      protected String entityEnumName
    • entityEnumPackage

      protected String entityEnumPackage
  • Constructor Details

    • EntityDAOTransformer

      public EntityDAOTransformer()
  • Method Details

    • transformFromModel

      public void transformFromModel(org.nuiton.eugene.models.object.ObjectModel model)
      Overrides:
      transformFromModel in class org.nuiton.eugene.models.object.ObjectModelTransformer<org.nuiton.eugene.models.object.ObjectModel>
    • transformFromInterface

      public void transformFromInterface(org.nuiton.eugene.models.object.ObjectModelInterface interfacez)
      Overrides:
      transformFromInterface in class org.nuiton.eugene.models.object.ObjectModelTransformer<org.nuiton.eugene.models.object.ObjectModel>
    • transformFromClass

      public void transformFromClass(org.nuiton.eugene.models.object.ObjectModelClass clazz)
      Overrides:
      transformFromClass in class org.nuiton.eugene.models.object.ObjectModelTransformer<org.nuiton.eugene.models.object.ObjectModel>
    • isGenerateDAO

      protected boolean isGenerateDAO(org.nuiton.eugene.models.object.ObjectModelClass input)
    • isGenerateDAOAbstract

      protected boolean isGenerateDAOAbstract(org.nuiton.eugene.models.object.ObjectModelClass input)
    • isGenerateImpl

      protected boolean isGenerateImpl(org.nuiton.eugene.models.object.ObjectModelClass input)
    • generateDAOClass

      protected void generateDAOClass(org.nuiton.eugene.models.object.ObjectModelClass clazz, String clazzName, String clazzFQN)
    • generateDAOImpl

      protected void generateDAOImpl(org.nuiton.eugene.models.object.ObjectModelClass clazz, String clazzName, String clazzFQN)
    • generateDAOAbstract

      protected void generateDAOAbstract(org.nuiton.eugene.models.object.ObjectModelClass clazz, String clazzName, String clazzFQN)
    • generateDelete

      protected void generateDelete(org.nuiton.eugene.models.object.ObjectModelClass clazz, org.nuiton.eugene.models.object.ObjectModelClass result)
    • generateFindUsages

      protected void generateFindUsages(org.nuiton.eugene.models.object.ObjectModelClass clazz, org.nuiton.eugene.models.object.ObjectModelClass result, Set<org.nuiton.eugene.models.object.ObjectModelClass> usagesForclass)
    • generateNoNMultiplicity

      protected void generateNoNMultiplicity(String clazzName, org.nuiton.eugene.models.object.ObjectModelClass result, org.nuiton.eugene.models.object.ObjectModelAttribute attr, boolean isAssoc)
    • generateNMultiplicity

      protected void generateNMultiplicity(String clazzName, org.nuiton.eugene.models.object.ObjectModelClass result, org.nuiton.eugene.models.object.ObjectModelAttribute attr)
    • getDAOOperations

      public Collection<org.nuiton.eugene.models.object.ObjectModelOperation> getDAOOperations(org.nuiton.eugene.models.object.ObjectModelClass clazz)
      Obtain business operations of the DAO. This operations can not be generated, but must be written by developper.
      Parameters:
      clazz - the clazz to test.
      Returns:
      collections of extra operations, or empty collection if none found.