Class BeanTransformer

  • All Implemented Interfaces:
    org.nuiton.eugene.TemplateConfiguration

    @Component(role=org.nuiton.eugene.Template.class,
               hint="org.nuiton.eugene.java.BeanTransformer")
    public class BeanTransformer
    extends org.nuiton.eugene.java.ObjectModelTransformerToJava
    Generates a bean and a helper class around it. Generates also a model initializer contract which permits you to interact with all classes of your model. For example:
         GeneratedBoat
         Boat (extends GeneratedBoat)
         GeneratedBoatHelper
         BoatHelper (extends AbstractBoats)
     
    Since:
    3.0
    Author:
    Tony Chemit - chemit@codelutin.com
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected BeanTransformerTagValues beanTagValues  
      protected EugeneJavaTagValues javaTemplatesTagValues  
      protected boolean useJava8  
      • 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
      BeanTransformer()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addDefaultMethodForNoneBeanSuperClass​(org.nuiton.eugene.models.object.ObjectModelClass output, boolean usePCS, List<org.nuiton.eugene.models.object.ObjectModelAttribute> properties)  
      protected boolean addInterfaces​(org.nuiton.eugene.models.object.ObjectModelClass input, org.nuiton.eugene.models.object.ObjectModelClassifier output, String extraInterfaceName)
      Add all interfaces defines in input class and returns if Serializable interface was found.
      protected void addSerializable​(org.nuiton.eugene.models.object.ObjectModelClass input, org.nuiton.eugene.models.object.ObjectModelClass output, boolean interfaceFound)  
      protected boolean canGenerateAbstractClass​(org.nuiton.eugene.models.object.ObjectModelClass aClass, String abstractClassName)  
      protected boolean containsMultiple​(List<org.nuiton.eugene.models.object.ObjectModelAttribute> attributes)  
      protected void createAddAllChildrenMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName, String attrType, String constantName, boolean usePCS)  
      protected void createAddChildMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName, String attrType, String constantName, boolean usePCS)  
      protected void createContainsAllChildrenMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName, String attrType, String constantName)  
      protected void createContainsChildMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName, String attrType, String constantName, boolean usePCS)  
      protected void createGetChildMethod​(org.nuiton.eugene.models.object.ObjectModelClass output)  
      protected void createGetChildMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName, String attrType, String simpleType)  
      protected void createGetMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName, String attrType, String methodPrefix)  
      protected void createGetMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName, String attrType, String methodPrefix, boolean generateLayzCode, String collectionImplementationType)  
      protected void createIsEmptyMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName)  
      protected void createProperty​(org.nuiton.eugene.models.object.ObjectModelClass output, org.nuiton.eugene.models.object.ObjectModelAttribute attr, boolean usePCS, boolean generateBooleanGetMethods, boolean generateNotEmptyCollections)  
      protected void createPropertyChangeSupport​(org.nuiton.eugene.models.object.ObjectModelClass output)  
      protected void createPropertyConstant​(org.nuiton.eugene.models.object.ObjectModelClassifier output, org.nuiton.eugene.models.object.ObjectModelAttribute attr, String prefix, Set<String> constantNames)  
      protected void createRemoveAllChildrenMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName, String attrType, String constantName, boolean usePCS)  
      protected void createRemoveChildMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName, String attrType, String constantName, boolean usePCS)  
      protected void createSetMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName, String attrType, String simpleType, String constantName, boolean usePCS)  
      protected void createSizeMethod​(org.nuiton.eugene.models.object.ObjectModelClass output, String attrName)  
      protected org.nuiton.eugene.models.object.ObjectModelClass generateClass​(org.nuiton.eugene.models.object.ObjectModelClass input, String className, String abstractClassName)  
      protected org.nuiton.eugene.models.object.ObjectModelClass generateGeneratedClass​(org.nuiton.eugene.models.object.ObjectModelPackage aPackage, org.nuiton.eugene.models.object.ObjectModelClass input, String className)  
      protected void generateGeneratedHelper​(org.nuiton.eugene.models.object.ObjectModelPackage aPackage, org.nuiton.eugene.models.object.ObjectModelClass aClass, String typeName, String abstractClassName)  
      protected void generateGeneratedHelperConstructors​(org.nuiton.eugene.models.object.ObjectModelClass output, String typeName)  
      protected void generateGeneratedHelperCopyMethods​(org.nuiton.eugene.models.object.ObjectModelClass output, String typeName)  
      protected void generateGeneratedHelperFunctions​(org.nuiton.eugene.models.object.ObjectModelClass input, org.nuiton.eugene.models.object.ObjectModelClass output, String typeName)  
      protected void generateGeneratedHelperPredicates​(org.nuiton.eugene.models.object.ObjectModelClass input, org.nuiton.eugene.models.object.ObjectModelClass output, String typeName)  
      protected void generateHelper​(org.nuiton.eugene.models.object.ObjectModelClass aClass, String abstractClassName, String defaultClassName)  
      protected void generateI18nBlockAndConstants​(org.nuiton.eugene.models.object.ObjectModelPackage aPackage, org.nuiton.eugene.models.object.ObjectModelClass input, org.nuiton.eugene.models.object.ObjectModelClassifier output)  
      protected String generateName​(String prefix, String name, String suffix)  
      protected String getAttributeName​(org.nuiton.eugene.models.object.ObjectModelAttribute attr)  
      protected String getAttributeType​(String attrType)  
      protected String getAttributeType​(org.nuiton.eugene.models.object.ObjectModelAttribute attr)  
      protected String getAttributeTypeWithGeneric​(org.nuiton.eugene.models.object.ObjectModelAttribute attr)  
      protected String getGeneratedHelperSuperClassName​(org.nuiton.eugene.models.object.ObjectModelPackage aPackage, org.nuiton.eugene.models.object.ObjectModelClass aClass)  
      protected String getGetterName​(org.nuiton.eugene.models.object.ObjectModelAttribute attribute, String attrName)  
      protected List<org.nuiton.eugene.models.object.ObjectModelAttribute> getProperties​(org.nuiton.eugene.models.object.ObjectModelClass input)  
      protected boolean notFoundInClassPath​(org.nuiton.eugene.models.object.ObjectModelClass input, String className)  
      void transformFromClass​(org.nuiton.eugene.models.object.ObjectModelClass input)  
      void transformFromModel​(org.nuiton.eugene.models.object.ObjectModel model)  
      protected String wrapPrimitiveType​(String attrType)  
      • 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, transformFromInterface
      • 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
    • Constructor Detail

      • BeanTransformer

        public BeanTransformer()
    • Method Detail

      • 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>
      • transformFromClass

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

        protected org.nuiton.eugene.models.object.ObjectModelClass generateClass​(org.nuiton.eugene.models.object.ObjectModelClass input,
                                                                                 String className,
                                                                                 String abstractClassName)
      • generateGeneratedClass

        protected org.nuiton.eugene.models.object.ObjectModelClass generateGeneratedClass​(org.nuiton.eugene.models.object.ObjectModelPackage aPackage,
                                                                                          org.nuiton.eugene.models.object.ObjectModelClass input,
                                                                                          String className)
      • generateHelper

        protected void generateHelper​(org.nuiton.eugene.models.object.ObjectModelClass aClass,
                                      String abstractClassName,
                                      String defaultClassName)
      • generateGeneratedHelper

        protected void generateGeneratedHelper​(org.nuiton.eugene.models.object.ObjectModelPackage aPackage,
                                               org.nuiton.eugene.models.object.ObjectModelClass aClass,
                                               String typeName,
                                               String abstractClassName)
      • generateGeneratedHelperConstructors

        protected void generateGeneratedHelperConstructors​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                                           String typeName)
      • generateGeneratedHelperCopyMethods

        protected void generateGeneratedHelperCopyMethods​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                                          String typeName)
      • generateGeneratedHelperPredicates

        protected void generateGeneratedHelperPredicates​(org.nuiton.eugene.models.object.ObjectModelClass input,
                                                         org.nuiton.eugene.models.object.ObjectModelClass output,
                                                         String typeName)
      • generateGeneratedHelperFunctions

        protected void generateGeneratedHelperFunctions​(org.nuiton.eugene.models.object.ObjectModelClass input,
                                                        org.nuiton.eugene.models.object.ObjectModelClass output,
                                                        String typeName)
      • getGeneratedHelperSuperClassName

        protected String getGeneratedHelperSuperClassName​(org.nuiton.eugene.models.object.ObjectModelPackage aPackage,
                                                          org.nuiton.eugene.models.object.ObjectModelClass aClass)
      • getAttributeType

        protected String getAttributeType​(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
      • getAttributeType

        protected String getAttributeType​(String attrType)
      • notFoundInClassPath

        protected boolean notFoundInClassPath​(org.nuiton.eugene.models.object.ObjectModelClass input,
                                              String className)
      • createProperty

        protected void createProperty​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                      org.nuiton.eugene.models.object.ObjectModelAttribute attr,
                                      boolean usePCS,
                                      boolean generateBooleanGetMethods,
                                      boolean generateNotEmptyCollections)
      • getProperties

        protected List<org.nuiton.eugene.models.object.ObjectModelAttribute> getProperties​(org.nuiton.eugene.models.object.ObjectModelClass input)
      • createGetMethod

        protected void createGetMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                       String attrName,
                                       String attrType,
                                       String methodPrefix,
                                       boolean generateLayzCode,
                                       String collectionImplementationType)
      • createGetMethod

        protected void createGetMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                       String attrName,
                                       String attrType,
                                       String methodPrefix)
      • createGetChildMethod

        protected void createGetChildMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                            String attrName,
                                            String attrType,
                                            String simpleType)
      • createIsEmptyMethod

        protected void createIsEmptyMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                           String attrName)
      • createSizeMethod

        protected void createSizeMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                        String attrName)
      • createAddChildMethod

        protected void createAddChildMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                            String attrName,
                                            String attrType,
                                            String constantName,
                                            boolean usePCS)
      • createAddAllChildrenMethod

        protected void createAddAllChildrenMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                                  String attrName,
                                                  String attrType,
                                                  String constantName,
                                                  boolean usePCS)
      • createRemoveChildMethod

        protected void createRemoveChildMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                               String attrName,
                                               String attrType,
                                               String constantName,
                                               boolean usePCS)
      • createRemoveAllChildrenMethod

        protected void createRemoveAllChildrenMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                                     String attrName,
                                                     String attrType,
                                                     String constantName,
                                                     boolean usePCS)
      • createContainsChildMethod

        protected void createContainsChildMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                                 String attrName,
                                                 String attrType,
                                                 String constantName,
                                                 boolean usePCS)
      • createContainsAllChildrenMethod

        protected void createContainsAllChildrenMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                                       String attrName,
                                                       String attrType,
                                                       String constantName)
      • createSetMethod

        protected void createSetMethod​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                       String attrName,
                                       String attrType,
                                       String simpleType,
                                       String constantName,
                                       boolean usePCS)
      • addSerializable

        protected void addSerializable​(org.nuiton.eugene.models.object.ObjectModelClass input,
                                       org.nuiton.eugene.models.object.ObjectModelClass output,
                                       boolean interfaceFound)
      • addInterfaces

        protected boolean addInterfaces​(org.nuiton.eugene.models.object.ObjectModelClass input,
                                        org.nuiton.eugene.models.object.ObjectModelClassifier output,
                                        String extraInterfaceName)
        Add all interfaces defines in input class and returns if Serializable interface was found.
        Parameters:
        input - the input model class to process
        output - the output generated class
        Returns:
        true if Serializable was found from input, false otherwise
      • createPropertyChangeSupport

        protected void createPropertyChangeSupport​(org.nuiton.eugene.models.object.ObjectModelClass output)
      • createGetChildMethod

        protected void createGetChildMethod​(org.nuiton.eugene.models.object.ObjectModelClass output)
      • generateI18nBlockAndConstants

        protected void generateI18nBlockAndConstants​(org.nuiton.eugene.models.object.ObjectModelPackage aPackage,
                                                     org.nuiton.eugene.models.object.ObjectModelClass input,
                                                     org.nuiton.eugene.models.object.ObjectModelClassifier output)
      • addDefaultMethodForNoneBeanSuperClass

        protected void addDefaultMethodForNoneBeanSuperClass​(org.nuiton.eugene.models.object.ObjectModelClass output,
                                                             boolean usePCS,
                                                             List<org.nuiton.eugene.models.object.ObjectModelAttribute> properties)
      • wrapPrimitiveType

        protected String wrapPrimitiveType​(String attrType)
      • getGetterName

        protected String getGetterName​(org.nuiton.eugene.models.object.ObjectModelAttribute attribute,
                                       String attrName)
      • canGenerateAbstractClass

        protected boolean canGenerateAbstractClass​(org.nuiton.eugene.models.object.ObjectModelClass aClass,
                                                   String abstractClassName)
      • createPropertyConstant

        protected void createPropertyConstant​(org.nuiton.eugene.models.object.ObjectModelClassifier output,
                                              org.nuiton.eugene.models.object.ObjectModelAttribute attr,
                                              String prefix,
                                              Set<String> constantNames)
      • getAttributeName

        protected String getAttributeName​(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
      • getAttributeTypeWithGeneric

        protected String getAttributeTypeWithGeneric​(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
      • containsMultiple

        protected boolean containsMultiple​(List<org.nuiton.eugene.models.object.ObjectModelAttribute> attributes)