org.nuiton.wikitty.generator
Class WikengoCommonGenerator

java.lang.Object
  extended by org.nuiton.eugene.Template<M>
      extended by org.nuiton.eugene.AbstractGenerator<org.nuiton.eugene.models.object.ObjectModel>
          extended by org.nuiton.eugene.models.object.ObjectModelGenerator
              extended by org.nuiton.wikitty.generator.WikengoCommonGenerator
All Implemented Interfaces:
org.nuiton.eugene.TemplateConfiguration
Direct Known Subclasses:
BusinessEntityAbstractGenerator, BusinessEntityImplGenerator, BusinessEntityInterfaceGenerator, EnumGenerator, InterfaceGenerator, WikittyHelperGenerator

public class WikengoCommonGenerator
extends org.nuiton.eugene.models.object.ObjectModelGenerator


Field Summary
protected  org.nuiton.eugene.java.ImportsManager imports
           
 
Fields inherited from class org.nuiton.eugene.AbstractGenerator
parent
 
Fields inherited from class org.nuiton.eugene.Template
configuration, excludeTemplates, generatedPackages, model
 
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
WikengoCommonGenerator()
           
 
Method Summary
protected  void addImport(Class<?> clazz)
           
protected  void addImport(org.nuiton.eugene.models.object.ObjectModelClass clazz)
           
protected  void addImport(String fqn)
           
protected  boolean canGenerateElement(Object element)
           
protected  String checkForDatatype(String type)
          Look on the model for a tag value that indicates an implementation for a specific datatype
protected  void clearImports()
           
protected  String computeDefaultValue(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
           
protected  String computeType(org.nuiton.eugene.models.object.ObjectModelParameter param)
          Compute correct type of param.
protected  boolean containsClassAndGeneric(String fqn)
           
protected  Collection<org.nuiton.eugene.models.object.ObjectModelClass> findSubClasses(org.nuiton.eugene.models.object.ObjectModelClass clazz)
           
protected  org.nuiton.eugene.models.object.ObjectModelClass findSuperClass(org.nuiton.eugene.models.object.ObjectModelClass clazz)
          Run throw the superclasses to get the first one.
protected  void generateAttributeAccessors(Writer output, org.nuiton.eugene.models.object.ObjectModelAttribute attr)
           
protected  void generateAttributeDeclaration(Writer output, org.nuiton.eugene.models.object.ObjectModelAttribute attr)
           
protected  void generateAttributesAccessors(Writer output, org.nuiton.eugene.models.object.ObjectModelClass clazz)
           
protected  void generateAttributesDeclaration(Writer output, org.nuiton.eugene.models.object.ObjectModelClass clazz)
           
protected  void generateClazzDocumentation(Writer output, org.nuiton.eugene.models.object.ObjectModelClassifier classifier, String... defaultDoc)
           
protected  void generateCopyright(Writer output)
           
protected  void generateDefaultConstructor(Writer output, String name)
           
protected  void generateDocumentation(Writer output, org.nuiton.eugene.models.object.ObjectModelElement element, String prefix, String... defaultDoc)
           
protected  void generateExceptionConstructors(Writer output, org.nuiton.eugene.models.object.ObjectModelClass clazz)
           
protected  void generateFullConstructor(Writer output, String name, Collection<org.nuiton.eugene.models.object.ObjectModelAttribute> attrs)
           
protected  void generateHashCode(Writer output, org.nuiton.eugene.models.object.ObjectModelClass clazz)
           
protected  void generateImports(Writer output, String currentPackage)
           
protected  void generateIocDependency(Writer output, org.nuiton.eugene.models.object.ObjectModelDependency dep)
          Generates a ioc name and injection.
protected  void generateOperationHeader(Writer output, org.nuiton.eugene.models.object.ObjectModelOperation op, boolean generateForInterface, String... additionalExceptions)
          Generates a header for the given operation.
protected  void generateStaticAttributes(Writer output, org.nuiton.eugene.models.object.ObjectModelClass clazz)
           
protected  String[] getClassAndGeneric(String fqn)
           
protected  String getType(String fqn)
          Return the minimum syntax for the type.
protected  String getType(String fqn, boolean convert)
          Return the minimum syntax for the type.
protected  boolean hasNavigableAndNonStaticAttributes(Collection<org.nuiton.eugene.models.object.ObjectModelAttribute> attrs)
           
protected  boolean hasNavigableAndNonStaticAttributes(org.nuiton.eugene.models.object.ObjectModelClass clazz)
           
protected  boolean isArray(String fqn)
           
protected  void lookForAttributeImports(org.nuiton.eugene.models.object.ObjectModelClass clazz)
          Run throw the given ObjectModelClass and declare as an import each found attribute type
protected  void lookForIocImports(org.nuiton.eugene.models.object.ObjectModelClassifier classifier)
          Run throw the given ObjectModelClassifier and declare as an import each dependency's type found.
protected  void lookForOperationImports(org.nuiton.eugene.models.object.ObjectModelClassifier classifier)
          Run throw the given ObjectModelClassifier and declare each type found on the operation declaration (return type, parameters type, exception thrown)
protected  void lookForStaticAttributeImports(org.nuiton.eugene.models.object.ObjectModelClass clazz)
          Run throw the given ObjectModelClass and declare as an import each found static attribute type
 
Methods inherited from class org.nuiton.eugene.models.object.ObjectModelGenerator
applyTemplate, generateFromClass, generateFromClassifier, generateFromElement, generateFromEnum, generateFromEnumeration, generateFromInterface, generateFromModel, getFilenameForClass, getFilenameForClassifier, getFilenameForEnumeration, getFilenameForInterface, getFilenameForModel, getFilenameForPackage
 
Methods inherited from class org.nuiton.eugene.AbstractGenerator
canGeneratePackage, getDestinationFile, getEncoding, getLastModifiedSource, getProperty, getProperty, getWriter, isNewerThanSource, isOverwrite, setParent, write
 
Methods inherited from class org.nuiton.eugene.Template
getClassLoader, getConfiguration, getExcludeTemplates, getGeneratedPackages, getModel, getOverwrite, getProperties, getWriterReport, isVerbose, setConfiguration, setProperties, setProperty
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

imports

protected org.nuiton.eugene.java.ImportsManager imports
Constructor Detail

WikengoCommonGenerator

public WikengoCommonGenerator()
Method Detail

clearImports

protected void clearImports()

canGenerateElement

protected boolean canGenerateElement(Object element)
Overrides:
canGenerateElement in class org.nuiton.eugene.models.object.ObjectModelGenerator

addImport

protected void addImport(String fqn)

addImport

protected void addImport(Class<?> clazz)

addImport

protected void addImport(org.nuiton.eugene.models.object.ObjectModelClass clazz)

getType

protected String getType(String fqn)
Return the minimum syntax for the type. The result depend of import added by addImport.

Parameters:
fqn - the fully qualified name of type
Returns:
minimum needed type

getType

protected String getType(String fqn,
                         boolean convert)
Return the minimum syntax for the type. The result depend of import added by addImport.

Parameters:
fqn - the fully qualified name of type
convert - if true try to convert some type to other (ex: enum to string, dto to string)
Returns:
minimum needed type

isArray

protected boolean isArray(String fqn)

containsClassAndGeneric

protected boolean containsClassAndGeneric(String fqn)

getClassAndGeneric

protected String[] getClassAndGeneric(String fqn)

generateImports

protected void generateImports(Writer output,
                               String currentPackage)
                        throws IOException
Throws:
IOException

generateCopyright

protected void generateCopyright(Writer output)
                          throws IOException
Throws:
IOException

generateClazzDocumentation

protected void generateClazzDocumentation(Writer output,
                                          org.nuiton.eugene.models.object.ObjectModelClassifier classifier,
                                          String... defaultDoc)
                                   throws IOException
Throws:
IOException

generateDocumentation

protected void generateDocumentation(Writer output,
                                     org.nuiton.eugene.models.object.ObjectModelElement element,
                                     String prefix,
                                     String... defaultDoc)
                              throws IOException
Throws:
IOException

generateOperationHeader

protected void generateOperationHeader(Writer output,
                                       org.nuiton.eugene.models.object.ObjectModelOperation op,
                                       boolean generateForInterface,
                                       String... additionalExceptions)
                                throws IOException
Generates a header for the given operation.

Parameters:
output - The stream to write inside
op - the operation which header is to generate
hasBody - need to generate a body ?
  • true (for classes) : generates ' {' at the end
  • false (for interfaces) : generates ';' at the end
  • hasBody -
    Throws:
    IOException

    generateIocDependency

    protected void generateIocDependency(Writer output,
                                         org.nuiton.eugene.models.object.ObjectModelDependency dep)
                                  throws IOException
    Generates a ioc name and injection. Will generate the class attribute and getter/setter. The name used is the name specified in the dependency class name.

    Parameters:
    output - The stream to write inside
    dep - the dependency to generate.
    Throws:
    IOException

    generateAttributesDeclaration

    protected void generateAttributesDeclaration(Writer output,
                                                 org.nuiton.eugene.models.object.ObjectModelClass clazz)
                                          throws IOException
    Throws:
    IOException

    generateAttributeDeclaration

    protected void generateAttributeDeclaration(Writer output,
                                                org.nuiton.eugene.models.object.ObjectModelAttribute attr)
                                         throws IOException
    Throws:
    IOException

    computeType

    protected String computeType(org.nuiton.eugene.models.object.ObjectModelParameter param)
    Compute correct type of param. If param is
  • null : void
  • cardinality > 1 : Collection of type
  • cardinality > 1 and ordered: List of type
  • cardinality > 1 and unique: Set of type
  • other : the type

    Parameters:
    param -
    Returns:

  • generateAttributesAccessors

    protected void generateAttributesAccessors(Writer output,
                                               org.nuiton.eugene.models.object.ObjectModelClass clazz)
                                        throws IOException
    Throws:
    IOException

    generateAttributeAccessors

    protected void generateAttributeAccessors(Writer output,
                                              org.nuiton.eugene.models.object.ObjectModelAttribute attr)
                                       throws IOException
    Throws:
    IOException

    generateStaticAttributes

    protected void generateStaticAttributes(Writer output,
                                            org.nuiton.eugene.models.object.ObjectModelClass clazz)
                                     throws IOException
    Throws:
    IOException

    computeDefaultValue

    protected String computeDefaultValue(org.nuiton.eugene.models.object.ObjectModelAttribute attr)

    generateDefaultConstructor

    protected void generateDefaultConstructor(Writer output,
                                              String name)
                                       throws IOException
    Throws:
    IOException

    generateExceptionConstructors

    protected void generateExceptionConstructors(Writer output,
                                                 org.nuiton.eugene.models.object.ObjectModelClass clazz)
                                          throws IOException
    Throws:
    IOException

    generateFullConstructor

    protected void generateFullConstructor(Writer output,
                                           String name,
                                           Collection<org.nuiton.eugene.models.object.ObjectModelAttribute> attrs)
                                    throws IOException
    Throws:
    IOException

    hasNavigableAndNonStaticAttributes

    protected boolean hasNavigableAndNonStaticAttributes(org.nuiton.eugene.models.object.ObjectModelClass clazz)

    hasNavigableAndNonStaticAttributes

    protected boolean hasNavigableAndNonStaticAttributes(Collection<org.nuiton.eugene.models.object.ObjectModelAttribute> attrs)

    lookForAttributeImports

    protected void lookForAttributeImports(org.nuiton.eugene.models.object.ObjectModelClass clazz)
    Run throw the given ObjectModelClass and declare as an import each found attribute type

    Parameters:
    clazz - the class to run throw

    lookForStaticAttributeImports

    protected void lookForStaticAttributeImports(org.nuiton.eugene.models.object.ObjectModelClass clazz)
    Run throw the given ObjectModelClass and declare as an import each found static attribute type

    Parameters:
    clazz - the class to run throw

    lookForOperationImports

    protected void lookForOperationImports(org.nuiton.eugene.models.object.ObjectModelClassifier classifier)
    Run throw the given ObjectModelClassifier and declare each type found on the operation declaration (return type, parameters type, exception thrown)

    Parameters:
    classifier - the classifier to run throw

    lookForIocImports

    protected void lookForIocImports(org.nuiton.eugene.models.object.ObjectModelClassifier classifier)
    Run throw the given ObjectModelClassifier and declare as an import each dependency's type found. The import is added only if the dependency's supplier is a service or a dao

    Parameters:
    classifier - the classifier to run throw

    checkForDatatype

    protected String checkForDatatype(String type)
    Look on the model for a tag value that indicates an implementation for a specific datatype

    Parameters:
    type - the type to look for a declared implementation
    Returns:
    the found type or the original type

    findSuperClass

    protected org.nuiton.eugene.models.object.ObjectModelClass findSuperClass(org.nuiton.eugene.models.object.ObjectModelClass clazz)
    Run throw the superclasses to get the first one.

    Parameters:
    clazz - the class to run throw
    Returns:
    the first found superClass or null

    findSubClasses

    protected Collection<org.nuiton.eugene.models.object.ObjectModelClass> findSubClasses(org.nuiton.eugene.models.object.ObjectModelClass clazz)

    generateHashCode

    protected void generateHashCode(Writer output,
                                    org.nuiton.eugene.models.object.ObjectModelClass clazz)
                             throws IOException
    Throws:
    IOException


    Copyright © 2009-2010 CodeLutin. All Rights Reserved.