Class BeanTransformer

java.lang.Object
org.nuiton.eugene.Template<org.nuiton.eugene.models.object.ObjectModel>
org.nuiton.eugene.Transformer<org.nuiton.eugene.models.object.ObjectModel, org.nuiton.eugene.models.object.ObjectModel>
org.nuiton.eugene.models.object.ObjectModelTransformer<org.nuiton.eugene.models.object.ObjectModel>
org.nuiton.eugene.java.ObjectModelTransformerToJava
org.nuiton.eugene.java.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 final BeanTransformerTagValues
     
    protected final EugeneJavaTagValues
     
    protected boolean
     

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

    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

    Methods inherited from class Object

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

  • Constructor Details

    • BeanTransformer

      public BeanTransformer()
  • 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>
    • 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)
    • generateName

      protected String generateName(String prefix, String name, String suffix)
    • 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)