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 java.lang.Class<?> daoImplementation
    The class of abstract dao to use.
    protected java.lang.String entityEnumName  
    protected java.lang.String entityEnumPackage  
    protected java.util.Map<org.nuiton.eugene.models.object.ObjectModelClass,​java.util.Set<org.nuiton.eugene.models.object.ObjectModelClass>> usages
    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
    EntityDAOTransformer()  
  • Method Summary

    Modifier and Type Method Description
    protected void generateDAOAbstract​(org.nuiton.eugene.models.object.ObjectModelClass clazz, java.lang.String clazzName, java.lang.String clazzFQN)  
    protected void generateDAOClass​(org.nuiton.eugene.models.object.ObjectModelClass clazz, java.lang.String clazzName, java.lang.String clazzFQN)  
    protected void generateDAOImpl​(org.nuiton.eugene.models.object.ObjectModelClass clazz, java.lang.String clazzName, java.lang.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, java.util.Set<org.nuiton.eugene.models.object.ObjectModelClass> usagesForclass)  
    protected void generateNMultiplicity​(java.lang.String clazzName, org.nuiton.eugene.models.object.ObjectModelClass result, org.nuiton.eugene.models.object.ObjectModelAttribute attr)  
    protected void generateNoNMultiplicity​(java.lang.String clazzName, org.nuiton.eugene.models.object.ObjectModelClass result, org.nuiton.eugene.models.object.ObjectModelAttribute attr, boolean isAssoc)  
    java.util.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 java.util.Map<org.nuiton.eugene.models.object.ObjectModelClass,​java.util.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 java.lang.Class<?> daoImplementation
      The class of abstract dao to use.
      Since:
      2.5
    • entityEnumName

      protected java.lang.String entityEnumName
    • entityEnumPackage

      protected java.lang.String entityEnumPackage
  • Constructor Details

  • 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, java.lang.String clazzName, java.lang.String clazzFQN)
    • generateDAOImpl

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

      protected void generateDAOAbstract​(org.nuiton.eugene.models.object.ObjectModelClass clazz, java.lang.String clazzName, java.lang.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, java.util.Set<org.nuiton.eugene.models.object.ObjectModelClass> usagesForclass)
    • generateNoNMultiplicity

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

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

      public java.util.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.