|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.nuiton.eugene.GeneratorUtil
org.nuiton.topia.generator.TopiaGeneratorUtil
public class TopiaGeneratorUtil
Classe regroupant divers méthodes utiles pour la génération des entités
| Field Summary | |
|---|---|
static java.lang.String |
DEFAULT_PACKAGE
Le package par défaut si aucun n'est spécifié |
static java.lang.String |
PERSISTENCE_TYPE_DEFAULT
Type de persistence par défaut (si aucun précisé) |
static java.lang.String |
PERSISTENCE_TYPE_HIBERNATE
Type de persistence Hibernate |
static java.lang.String |
PERSISTENCE_TYPE_LDAP
Type de persistence LDAP |
static java.lang.String |
PROPERTY_DEFAULT_PACKAGE
Propriété des générateurs indiquant le package par défaut |
static java.lang.String |
STEREOTYPE_ARRAY
Stéréotype pour les attributs considérés comme des tableaux |
static java.lang.String |
STEREOTYPE_BEAN
Stéréotype pour les objets devant être générées sous forme de bean |
static java.lang.String |
STEREOTYPE_DAO
Stéréotype pour les interfaces devant être générées sous forme de DAO |
static java.lang.String |
STEREOTYPE_DTO
Stéréotype pour les objets devant être générées sous forme de DTO |
static java.lang.String |
STEREOTYPE_ENTITY
Stéréotype pour les objets devant être générées sous forme d'entités |
static java.lang.String |
STEREOTYPE_FACADE
Stéréotype pour les interfaces devant être générées sous forme de facades |
static java.lang.String |
STEREOTYPE_INDEXED
Stéréotype pour les attributs à indexer en base |
static java.lang.String |
STEREOTYPE_PRIMARYKAY
Stéréotype pour les attributs étant des clés primaires |
static java.lang.String |
STEREOTYPE_SERVICE
Stéréotype pour les interfaces devant être générées sous forme de services |
static java.lang.String |
STEREOTYPE_UNIQUE
Stéréotype pour les collections avec unicité |
static java.lang.String |
TAG_ACCESS
Tag pour specfier le type d'acces a un champ |
static java.lang.String |
TAG_ANNOTATION
Tag pour ajouter une annotation à un champ |
static java.lang.String |
TAG_COPYRIGHT
Tag pour ajouter specifier le copyright d'un fichier |
static java.lang.String |
TAG_DB_NAME
Tag pour le nom du champ / entité en BD |
static java.lang.String |
TAG_EMBED_XML
Tag pour spécifier la caractère embed-xml d'une association |
static java.lang.String |
TAG_FETCH
Tag pour spécifier la caractère fetch d'une association multiple |
static java.lang.String |
TAG_GENERATE_OPERATOR_FOR_DAO_HELPER
Tag pour specfier si on doit générer la methode getOperator dans les daohelpers ) |
static java.lang.String |
TAG_I18N_PREFIX
Tag pour specfier si on doit générer i18n |
static java.lang.String |
TAG_LAZY
Tag pour spécifier la caractèrelazy d'une association multiple |
static java.lang.String |
TAG_LENGTH
Tag pour la taille du champ en BD |
static java.lang.String |
TAG_NATURAL_ID
Tag pour ajouter un attribut dans une clef métier |
static java.lang.String |
TAG_NATURAL_ID_MUTABLE
Tag pour specifier si une clef metier est mutable |
static java.lang.String |
TAG_NOT_GENERATE_TO_STRING
Tag pour specifier de ne pas generer la methode toString |
static java.lang.String |
TAG_NOT_NULL
Tag pour spécifier la caractère not-null d'un attribut |
static java.lang.String |
TAG_ORDER_BY
Tag pour spécifier la caractère order-by d'une association multiple |
static java.lang.String |
TAG_PERSISTENCE_TYPE
Tag pour le type de persistence |
static java.lang.String |
TAG_PROXY_INTERFACE
Tag pour configurer l'interface du proxy sur autre chose que l'implementation par defaut. |
static java.lang.String |
TAG_SCHEMA_NAME
Tag pour le nom du schema en BD |
static java.lang.String |
TAG_SECURITY_CREATE
Tag pour spécifier le permissions à la création |
static java.lang.String |
TAG_SECURITY_DELETE
Tag pour spécifier le permissions à la suppression |
static java.lang.String |
TAG_SECURITY_LOAD
Tag pour spécifier le permissions au chargement |
static java.lang.String |
TAG_SECURITY_UPDATE
Tag pour spécifier le permissions à la mise à jour |
static java.lang.String |
TAG_SORT_ATTRIBUTE
Tag pour specifier de trier les attributs par nom lors de la generation |
| Constructor Summary | |
|---|---|
TopiaGeneratorUtil()
|
|
| Method Summary | ||
|---|---|---|
protected static java.util.List<java.lang.String> |
cleanImports(java.lang.String packageName,
java.util.Set<java.lang.String> fqns)
Clean a set of fqns, transform it into a List and sort it. |
|
static java.lang.String |
convertVariableNameToConstantName(java.lang.String variableName)
Convertit un nom de variable en nom de constante. |
|
static boolean |
generateToString(org.nuiton.eugene.models.object.ObjectModelClass clazz,
org.nuiton.eugene.models.object.ObjectModel model)
Cherche et renvoie la liste des attributs constituant la clef metier d'une classe. |
|
static java.lang.String |
getAssocAttrName(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
Renvoie le nom de l'attribut de classe d'association en fonction des cas: Si l'attribut porte le même nom que le type (extrémité inverse de l'association), on lui ajoute le nom de la classe d'association |
|
static java.util.List<org.nuiton.eugene.models.object.ObjectModelClass> |
getClassesByStereotype(java.lang.String stereotype,
org.nuiton.eugene.models.object.ObjectModel model,
boolean sort)
Obtain the list of classes for a given stereotype with the possibility to sort the result. |
|
static java.lang.String |
getCopyright(org.nuiton.eugene.models.Model model)
Cherches et renvoie le copyright a utiliser sur le model. |
|
static org.nuiton.eugene.models.object.ObjectModelInterface |
getDAOInterface(org.nuiton.eugene.models.object.ObjectModelClass clazz,
org.nuiton.eugene.models.object.ObjectModel model)
Renvoie l'interface DAO associée à la classe passée en paramètre |
|
static java.lang.String |
getDBName(org.nuiton.eugene.models.object.ObjectModelElement element)
Renvoie le nom BD de l'élement passé en paramètre. |
|
static java.lang.String |
getDefaultPackage(org.nuiton.eugene.AbstractGenerator<?> generator)
Renvoie le package par défaut pour le générateur donné |
|
static java.lang.String |
getDOType(org.nuiton.eugene.models.object.ObjectModelElement elem,
org.nuiton.eugene.models.object.ObjectModel model)
|
|
static java.lang.String |
getDOType(java.lang.String type,
org.nuiton.eugene.models.object.ObjectModel model)
|
|
static
|
getElementsWithStereotype(java.util.Collection<Type> elements,
java.lang.String... stereotypes)
|
|
static java.util.List<org.nuiton.eugene.models.object.ObjectModelClass> |
getEntityClasses(org.nuiton.eugene.models.object.ObjectModel model,
boolean sort)
Obtain the list of entities classes with the possibility to sort the result. |
|
static java.lang.String |
getI18nPrefix(org.nuiton.eugene.models.object.ObjectModelElement element,
org.nuiton.eugene.models.object.ObjectModel model)
Cherche et renvoie le prefixe i18n à utiliser sur cet element, sinon sur le model. |
|
protected static void |
getImports(org.nuiton.eugene.models.object.ObjectModelClass aClass,
java.util.Set<java.lang.String> fqns)
Obtain the list of fqn of object involed in the given class. |
|
static java.util.List<java.lang.String> |
getImports(org.nuiton.eugene.models.object.ObjectModelClass aClass,
java.lang.String... incomingFqns)
Obtain the list of fqn of object involed in the given class. |
|
protected static void |
getImports(org.nuiton.eugene.models.object.ObjectModelInterface anInterface,
java.util.Set<java.lang.String> fqns)
Obtain the list of fqn of object involed in the given interface. |
|
static java.util.List<java.lang.String> |
getImports(org.nuiton.eugene.models.object.ObjectModelInterface anInterface,
java.lang.String... incomingFqns)
Obtain the list of fqn of object involed in the given interface. |
|
protected static void |
getImports(org.nuiton.eugene.models.object.ObjectModelOperation operation,
java.util.Set<java.lang.String> fqns)
Obtain the fqn's list of all involed type in a givne operation. |
|
static java.lang.String |
getManyToManyTableName(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
Renvoie le nom unique de table pour une relation ManyToMany en fonction de l'attribut attr
Plusieurs cas de figure:
|
|
static java.util.List<java.lang.String> |
getNaturalId(org.nuiton.eugene.models.object.ObjectModelClass clazz)
Cherche et renvoie la liste des attributs constituant la clef metier d'une classe. |
|
static java.lang.String |
getNMultiplicityHibernateType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
Renvoie le type d'interface à utiliser en fonction de l'attribut |
|
static java.lang.String |
getNMultiplicityInterfaceType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
Renvoie le type d'interface à utiliser en fonction de l'attribut |
|
static java.lang.String |
getNMultiplicityObjectType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
Renvoie le type d'objet (instance) à utiliser en fonction de l'attribut |
|
static java.lang.String |
getPersistenceType(org.nuiton.eugene.models.object.ObjectModelElement element)
Renvoie le type de persistence pour l'élément donné. |
|
static java.lang.String |
getPrimaryKeyAttributesListDeclaration(org.nuiton.eugene.models.object.ObjectModelClass clazz,
boolean includeName)
|
|
static java.lang.String |
getReverseDBName(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
|
|
static java.lang.String |
getSchemaName(org.nuiton.eugene.models.object.ObjectModelElement element,
org.nuiton.eugene.models.object.ObjectModel model)
Cherche et renvoie le schema a utiliser sur cet element, sinon sur le model. |
|
static java.lang.String |
getSimpleName(java.lang.String fqn)
|
|
static boolean |
hasNothingOrAbstractMethods(org.nuiton.eugene.models.object.ObjectModelClass clazz)
Indique si la classe specifiee n'a aucune ou que des methodes abstraites |
|
static boolean |
hasStereotypes(org.nuiton.eugene.models.object.ObjectModelElement element,
java.lang.String... stereotypes)
|
|
static boolean |
hasUnidirectionalRelationOnAbstractType(org.nuiton.eugene.models.object.ObjectModelAttribute attr,
org.nuiton.eugene.models.object.ObjectModel model)
Cette méthode permet de détecter si - l'attribut représente une relation 1-n - cette relation est unidirectionnelle - le type de l'attribut représente un entité - cette entité a des sous-classes dans le modèle Ce cas correspond à une incompatibilité d'Hibernate qui nous oblige a adopter un comportement particulier. |
|
static boolean |
isAssociationClassDoublon(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
|
|
static boolean |
isBooleanType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
|
|
static boolean |
isDateType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
|
|
static boolean |
isNaturalId(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
Detecte si un attribut fait partie d'une clef metier. |
|
static boolean |
isNaturalIdMutable(org.nuiton.eugene.models.object.ObjectModelClass clazz)
Detecte si la clef metier d'une classe est mutable ou pas. |
|
static boolean |
isNumericType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
|
|
static boolean |
isPrimitiveType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
|
|
static boolean |
isTextType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
|
|
static boolean |
shouldBeAbstract(org.nuiton.eugene.models.object.ObjectModelClass clazz)
Indique si la classe specifiee devrait etre abstraite |
|
static boolean |
shouldgenerateOperatorForDAOHelper(org.nuiton.eugene.models.object.ObjectModelElement element,
org.nuiton.eugene.models.object.ObjectModel model)
Cherche et renvoie le prefixe i18n à utiliser sur cet element, sinon sur le model. |
|
static boolean |
sortAttribute(org.nuiton.eugene.models.object.ObjectModelClass clazz,
org.nuiton.eugene.models.object.ObjectModel model)
Cherche et renvoie la liste des attributs constituant la clef metier d'une classe. |
|
| Methods inherited from class org.nuiton.eugene.GeneratorUtil |
|---|
capitalize, computeSerialVersionUID, findTagValue, getAttributeType, getAttributeType, getCastValue, getClassAttributesListDeclaration, getClassifiers, getClassNameFromQualifiedName, getFilenameFromQualifiedName, getFormatingExpression, getHashCodeExpression, getInitValue, getInitValue, getMethodParameterDeclaration, getMethodParameterListName, getOperationParametersListDeclaration, getOperationParametersListName, getParentPackageName, getParsingExpression, getTypesList, hasDocumentation, hasStereotype, isComposition, isFirstAttribute, isNMultiplicity, isNMultiplicity, isOneMultiplicity, isPrimitiveAttributeType, notEmpty, toLowerCaseFirstLetter, toUpperCaseFirstLetter |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final java.lang.String STEREOTYPE_FACADE
public static final java.lang.String STEREOTYPE_ENTITY
public static final java.lang.String STEREOTYPE_DTO
public static final java.lang.String STEREOTYPE_BEAN
public static final java.lang.String STEREOTYPE_SERVICE
public static final java.lang.String STEREOTYPE_DAO
public static final java.lang.String STEREOTYPE_INDEXED
public static final java.lang.String STEREOTYPE_UNIQUE
public static final java.lang.String STEREOTYPE_PRIMARYKAY
public static final java.lang.String STEREOTYPE_ARRAY
public static final java.lang.String TAG_PERSISTENCE_TYPE
public static final java.lang.String TAG_DB_NAME
public static final java.lang.String TAG_SCHEMA_NAME
public static final java.lang.String TAG_LENGTH
public static final java.lang.String TAG_ANNOTATION
public static final java.lang.String TAG_COPYRIGHT
public static final java.lang.String TAG_ACCESS
public static final java.lang.String TAG_I18N_PREFIX
public static final java.lang.String TAG_NATURAL_ID
public static final java.lang.String TAG_NATURAL_ID_MUTABLE
public static final java.lang.String TAG_LAZY
public static final java.lang.String TAG_FETCH
public static final java.lang.String TAG_ORDER_BY
public static final java.lang.String TAG_NOT_NULL
public static final java.lang.String TAG_EMBED_XML
public static final java.lang.String TAG_PROXY_INTERFACE
public static final java.lang.String TAG_SECURITY_CREATE
public static final java.lang.String TAG_SECURITY_LOAD
public static final java.lang.String TAG_SECURITY_UPDATE
public static final java.lang.String TAG_SECURITY_DELETE
public static final java.lang.String TAG_NOT_GENERATE_TO_STRING
public static final java.lang.String TAG_SORT_ATTRIBUTE
public static final java.lang.String TAG_GENERATE_OPERATOR_FOR_DAO_HELPER
public static final java.lang.String PERSISTENCE_TYPE_HIBERNATE
public static final java.lang.String PERSISTENCE_TYPE_LDAP
public static final java.lang.String PERSISTENCE_TYPE_DEFAULT
public static final java.lang.String PROPERTY_DEFAULT_PACKAGE
public static final java.lang.String DEFAULT_PACKAGE
| Constructor Detail |
|---|
public TopiaGeneratorUtil()
| Method Detail |
|---|
public static java.lang.String getDefaultPackage(org.nuiton.eugene.AbstractGenerator<?> generator)
generator - le générateur donné
public static org.nuiton.eugene.models.object.ObjectModelInterface getDAOInterface(org.nuiton.eugene.models.object.ObjectModelClass clazz,
org.nuiton.eugene.models.object.ObjectModel model)
clazz - la classe à testermodel - le modele utilisé
public static java.lang.String getPersistenceType(org.nuiton.eugene.models.object.ObjectModelElement element)
element - l'élément à tester
public static java.lang.String getReverseDBName(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
public static java.lang.String getDBName(org.nuiton.eugene.models.object.ObjectModelElement element)
element - l'élément à tester
public static java.lang.String getSchemaName(org.nuiton.eugene.models.object.ObjectModelElement element,
org.nuiton.eugene.models.object.ObjectModel model)
element - l'élément à testermodel - le modele utilisé
public static java.lang.String getI18nPrefix(org.nuiton.eugene.models.object.ObjectModelElement element,
org.nuiton.eugene.models.object.ObjectModel model)
element - l'élément à testermodel - le modele utilisé
null si non spécifié
public static boolean shouldgenerateOperatorForDAOHelper(org.nuiton.eugene.models.object.ObjectModelElement element,
org.nuiton.eugene.models.object.ObjectModel model)
element - l'élément à testermodel - le modele utilisé
null si non spécifiépublic static java.util.List<java.lang.String> getNaturalId(org.nuiton.eugene.models.object.ObjectModelClass clazz)
clazz - la classe à tester
public static boolean generateToString(org.nuiton.eugene.models.object.ObjectModelClass clazz,
org.nuiton.eugene.models.object.ObjectModel model)
clazz - la classe à testermodel - le modele
public static boolean sortAttribute(org.nuiton.eugene.models.object.ObjectModelClass clazz,
org.nuiton.eugene.models.object.ObjectModel model)
clazz - la classe à testermodel - le modele
public static boolean isNaturalId(org.nuiton.eugene.models.object.ObjectModelAttribute attribute)
attribute - l'attribut à tester
true si l'attribut fait partie d'une clef metier, false sinon.public static java.lang.String getCopyright(org.nuiton.eugene.models.Model model)
model - le modele utilisé
public static <Type extends org.nuiton.eugene.models.object.ObjectModelElement> java.util.Collection<Type> getElementsWithStereotype(java.util.Collection<Type> elements,
java.lang.String... stereotypes)
public static boolean hasStereotypes(org.nuiton.eugene.models.object.ObjectModelElement element,
java.lang.String... stereotypes)
public static java.lang.String getPrimaryKeyAttributesListDeclaration(org.nuiton.eugene.models.object.ObjectModelClass clazz,
boolean includeName)
public static boolean isAssociationClassDoublon(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
public static java.lang.String getAssocAttrName(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
attr - l'attribut a traiter
public static java.lang.String getDOType(org.nuiton.eugene.models.object.ObjectModelElement elem,
org.nuiton.eugene.models.object.ObjectModel model)
public static java.lang.String getDOType(java.lang.String type,
org.nuiton.eugene.models.object.ObjectModel model)
public static boolean isNumericType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
public static boolean isTextType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
public static boolean isDateType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
public static boolean isBooleanType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
public static boolean isPrimitiveType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
public static boolean hasNothingOrAbstractMethods(org.nuiton.eugene.models.object.ObjectModelClass clazz)
clazz - l'instance de ObjectModelClass
public static boolean shouldBeAbstract(org.nuiton.eugene.models.object.ObjectModelClass clazz)
clazz - l'instance de ObjectModelClass
public static boolean hasUnidirectionalRelationOnAbstractType(org.nuiton.eugene.models.object.ObjectModelAttribute attr,
org.nuiton.eugene.models.object.ObjectModel model)
Cette méthode permet de détecter si - l'attribut représente une relation 1-n - cette relation est unidirectionnelle - le type de l'attribut représente un entité - cette entité a des sous-classes dans le modèle
Ce cas correspond à une incompatibilité d'Hibernate qui nous oblige a adopter un comportement particulier.
attr - l'attribut a testermodel - le model
public static java.lang.String getManyToManyTableName(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
attr
Plusieurs cas de figure:
attr - l'attribut servant de base au calcul du nom
public static java.lang.String getNMultiplicityInterfaceType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
attr - l'attribut a traiter
public static java.lang.String getNMultiplicityObjectType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
attr - l'attribut a traiter
public static java.lang.String getNMultiplicityHibernateType(org.nuiton.eugene.models.object.ObjectModelAttribute attr)
attr - l'attribut a traiter
public static java.util.List<org.nuiton.eugene.models.object.ObjectModelClass> getEntityClasses(org.nuiton.eugene.models.object.ObjectModel model,
boolean sort)
model - the current model to scansort - flag to allow sort the result
public static java.util.List<org.nuiton.eugene.models.object.ObjectModelClass> getClassesByStereotype(java.lang.String stereotype,
org.nuiton.eugene.models.object.ObjectModel model,
boolean sort)
stereotype - filter stereotypemodel - the current model to scansort - flag to allow sort the result
public static boolean isNaturalIdMutable(org.nuiton.eugene.models.object.ObjectModelClass clazz)
clazz - la classe a tester
true si le tag value a ete positionne sur la classe via le tag
TAG_NATURAL_ID_MUTABLE, , false sinon.
public static java.util.List<java.lang.String> getImports(org.nuiton.eugene.models.object.ObjectModelClass aClass,
java.lang.String... incomingFqns)
aClass - the clazz to inspectincomingFqns - incoming fqns
public static java.util.List<java.lang.String> getImports(org.nuiton.eugene.models.object.ObjectModelInterface anInterface,
java.lang.String... incomingFqns)
anInterface - the interface to inspectincomingFqns - incoming fqns
public static java.lang.String getSimpleName(java.lang.String fqn)
protected static void getImports(org.nuiton.eugene.models.object.ObjectModelClass aClass,
java.util.Set<java.lang.String> fqns)
aClass - the class to inspectfqns - where to store found fqns
protected static void getImports(org.nuiton.eugene.models.object.ObjectModelInterface anInterface,
java.util.Set<java.lang.String> fqns)
anInterface - the interface to inspectfqns - where to store found fqns
protected static void getImports(org.nuiton.eugene.models.object.ObjectModelOperation operation,
java.util.Set<java.lang.String> fqns)
operation - operation to inspectfqns - where to store found fqns
protected static java.util.List<java.lang.String> cleanImports(java.lang.String packageName,
java.util.Set<java.lang.String> fqns)
List and sort it.
packageName - the current package namefqns - the dirty set of fqns
public static java.lang.String convertVariableNameToConstantName(java.lang.String variableName)
variableName - le nom de variable a convertir
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||