org.nuiton.topia.persistence.util
Class TopiaEntityHelper

java.lang.Object
  extended by org.nuiton.topia.persistence.util.TopiaEntityHelper

public class TopiaEntityHelper
extends Object

Une classe avec des méthodes utiles sur les entités.

Author:
tchemit

Field Summary
static String ASSOCIATION_PATTERN
          Le pattern d'une reference sur une association
 
Constructor Summary
TopiaEntityHelper()
           
 
Method Summary
protected static void addInterface(Set<Class<? extends TopiaEntity>> interfaces, Class<? extends TopiaEntity> klass)
           
static void bindTechnical(TopiaEntity from, TopiaEntity dst)
          Bind les valeurs techniques depuis une entitée vers une autre.
static
<E extends TopiaEntity>
DiffState.DiffStateMap
buildDifferentiel(List<E> referentiel, List<E> locale)
          Construit le dictionnaire des differences entre deux listes d'entites.
static void checkNotNull(String methodName, String parameterName, Object value)
           
static
<E extends TopiaEntity>
void
checkNotNullAndExistingEntity(String paramName, E bean)
          Teste si une entité possède un topiaId.
static
<E extends TopiaEntity>
void
checkNotNullAndNoneExistingEntity(String paramName, E bean)
          Teste si une entité ne possède pas un topiaId.
static void checkParameters(Class<?>[] paramsType, Object... params)
           
static void checkSize(int size, Object[] params)
           
static void checkType(Class<?>[] paramsType, int index, Object[] params)
           
static void createDBFromSQL(File dbDirectory, TopiaContext topiaContext, URI resource)
          Create a new database from a sql dump locating in a gzip file.
static Map<Class<? extends TopiaEntity>,List<TopiaEntity>> detectEntities(TopiaEntityEnum[] contracts, Set<Class<? extends TopiaEntity>> types, TopiaEntity... entities)
          Collecte l'ensemble des entites (via un parcours en profondeur) avec un filtrage sur les types d'entites a retourner.
static TopiaEntityIdsMap detectEntityIds(TopiaEntityEnum[] contracts, Set<Class<? extends TopiaEntity>> types, TopiaEntity... entities)
          Collecte l'ensemble des ids d'entites (via un parcours en profondeur) avec un filtrage sur les types d'entites a retourner.
static SortedMap<TopiaEntity,List<TopiaEntityRef>> detectReferences(TopiaEntityEnum[] contracts, String[] expressions, Collection<? extends TopiaEntity> entities)
          Collecte toutes les references d'un ensemble d'entites donnees par leur topiaId sur un ensemble d'entites donne.
static SortedMap<TopiaEntity,List<TopiaEntityRef>> detectReferences(TopiaEntityEnum[] contracts, String[] expressions, TopiaEntity entities)
          Collecte toutes les references d'un ensemble d'entites donnees par leur topiaId sur un ensemble d'entites donne.
static Set<Class<? extends TopiaEntity>> detectTypes(TopiaEntityEnum[] contracts, TopiaEntity... entities)
          Collecte l'ensemble des types d'entites (via un parcours en profondeur).
static List<TopiaEntity> filter(Collection<TopiaEntity> entities, Class<? extends TopiaEntity> filterClass)
          Filter a list of entities, and keep only the ones from a given type.
static Class<? extends TopiaEntity> getContractClass(TopiaEntityEnum[] contracts, Class<? extends TopiaEntity> klass)
           
static Set<Class<? extends TopiaEntity>> getContractClasses(TopiaEntityEnum[] contracts, Iterable<Class<? extends TopiaEntity>> klasses)
           
static Class<? extends TopiaEntity>[] getContracts(TopiaEntityEnum[] contracts)
          Ontenir l'ensemble des contrats d'entites a partir des descriptions d'entites.
static
<E extends TopiaEntity>
List<E>
getEntities(TopiaContextImplementor srcCtxt, List<E> entityList, boolean canBeNull)
           
static TopiaEntity[] getEntities(TopiaContext srcCtxt, String... entityList)
           
static List<? extends TopiaEntity> getEntitiesList(TopiaContext srcCtxt, String... entityList)
           
static
<E extends TopiaEntity>
E
getEntityByTopiaId(Collection<E> entities, String topiaId)
          Récupère une entité dans une liste d'entités à partir de son TopiaEntity.getTopiaId().
static TopiaEntityEnum getEntityEnum(Class<? extends TopiaEntity> klass, TopiaEntityEnum... contracts)
           
static
<E extends TopiaEntity>
E
getExistingEntity(TopiaDAO<E> dao, String topiaId)
          Récupère une entité qui doit exister à partir de son id.
static Set<Class<? extends TopiaEntity>> getInterfaces(Class<? extends TopiaEntity> klass, Set<Class<? extends TopiaEntity>> klassInterfaces)
           
static Comparator<TopiaEntity> getTopiaIdComparator()
          Obtain a new Comparator pour TopiaEntity based on the TopiaEntity.getTopiaId() method.
static List<String> getTopiaIdList(List<? extends TopiaEntity> entities)
          Construit la liste des topiaId d'une liste donnée d'entités.
static Set<Class<? extends TopiaEntity>> retainContracts(TopiaEntityEnum[] contracts, Set<Class<? extends TopiaEntity>> classes)
          Filtre un ensemble de classes d'entites en ne conservant que les contrats des entites.
static
<E extends TopiaEntity>
List<E>
retainEntities(List<E> list, List<String> topiaIds)
          Construit une list d'entite dont les ids sont tous dans la liste d'ids donnee.
static void saveDB(File gzipFile, TopiaContext topiaContext)
          Save the given database to a gzip file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ASSOCIATION_PATTERN

public static final String ASSOCIATION_PATTERN
Le pattern d'une reference sur une association

See Also:
Constant Field Values
Constructor Detail

TopiaEntityHelper

public TopiaEntityHelper()
Method Detail

bindTechnical

public static void bindTechnical(TopiaEntity from,
                                 TopiaEntity dst)
Bind les valeurs techniques depuis une entitée vers une autre.

Parameters:
from - l'entité source
dst - l'entité destination

getExistingEntity

public static <E extends TopiaEntity> E getExistingEntity(TopiaDAO<E> dao,
                                                          String topiaId)
                                               throws TopiaException,
                                                      IllegalArgumentException
Récupère une entité qui doit exister à partir de son id.

Si l'entité n'existe pas, on déclanche une exception IllegalArgumentException.

Type Parameters:
E - le type de l'entité
Parameters:
dao - la dao pour récupérer la valeur
topiaId - l'id de l'entité recherchée
Returns:
l'entité recherché
Throws:
TopiaException - pour tout pb lors de la récupération de l'entité
IllegalArgumentException - si l'entité n'existe pas.

getEntityByTopiaId

public static <E extends TopiaEntity> E getEntityByTopiaId(Collection<E> entities,
                                                           String topiaId)
Récupère une entité dans une liste d'entités à partir de son TopiaEntity.getTopiaId().

Type Parameters:
E - le type de l'entité
Parameters:
entities - la liste des entités à scanner
topiaId - l'id de l'entité recherchée
Returns:
l'entité trouvée, ou

checkNotNullAndExistingEntity

public static <E extends TopiaEntity> void checkNotNullAndExistingEntity(String paramName,
                                                                         E bean)
                                          throws IllegalStateException,
                                                 NullPointerException
Teste si une entité possède un topiaId.

Type Parameters:
E - le type de l'entité
Parameters:
paramName - le nom du paramètre à afficher en casd'erreur
bean - l'entité à tester
Throws:
IllegalStateException - si l'entité n'a pas de topiaId
NullPointerException - si l'entité est null

checkNotNullAndNoneExistingEntity

public static <E extends TopiaEntity> void checkNotNullAndNoneExistingEntity(String paramName,
                                                                             E bean)
                                              throws NullPointerException,
                                                     IllegalStateException
Teste si une entité ne possède pas un topiaId.

Type Parameters:
E - le type del'entité
Parameters:
paramName - le nom de paramètre à afficher en cas d'erreur
bean - l'entité à tester
Throws:
NullPointerException - si l'entité est nulle
IllegalStateException - si l'entité possède un topiaId.

createDBFromSQL

public static void createDBFromSQL(File dbDirectory,
                                   TopiaContext topiaContext,
                                   URI resource)
                            throws IOException,
                                   TopiaException,
                                   NullPointerException
Create a new database from a sql dump locating in a gzip file.

Parameters:
dbDirectory - the directory where to create the db
topiaContext - the topiaContext to use to create the databse
resource - the url of the sql dump gzip file to use
Throws:
TopiaException - if any pb while creating db
IOException - if any io exception
NullPointerException - if parameters are null

saveDB

public static void saveDB(File gzipFile,
                          TopiaContext topiaContext)
                   throws TopiaException,
                          IOException,
                          NullPointerException
Save the given database to a gzip file.

Parameters:
gzipFile - the file where to store db
topiaContext - the topiaContext of the db to store
Throws:
TopiaException - if any pb while saving db
NullPointerException - if parameters are null
IOException - if could not create gzipFile container directory

getTopiaIdComparator

public static Comparator<TopiaEntity> getTopiaIdComparator()
Obtain a new Comparator pour TopiaEntity based on the TopiaEntity.getTopiaId() method.

Returns:
the new instanciated comparator

filter

public static List<TopiaEntity> filter(Collection<TopiaEntity> entities,
                                       Class<? extends TopiaEntity> filterClass)
Filter a list of entities, and keep only the ones from a given type.

Parameters:
entities - the list of entities to filter
filterClass - the type of entities to keep
Returns:
the list of filtered entities for the given entity type in the list
Since:
2.1.4

getContractClass

public static Class<? extends TopiaEntity> getContractClass(TopiaEntityEnum[] contracts,
                                                            Class<? extends TopiaEntity> klass)

getContractClasses

public static Set<Class<? extends TopiaEntity>> getContractClasses(TopiaEntityEnum[] contracts,
                                                                   Iterable<Class<? extends TopiaEntity>> klasses)

getEntityEnum

public static TopiaEntityEnum getEntityEnum(Class<? extends TopiaEntity> klass,
                                            TopiaEntityEnum... contracts)

retainContracts

public static Set<Class<? extends TopiaEntity>> retainContracts(TopiaEntityEnum[] contracts,
                                                                Set<Class<? extends TopiaEntity>> classes)
Filtre un ensemble de classes d'entites en ne conservant que les contrats des entites.

Parameters:
contracts - les contracts connus
classes - l'ensemble des classes a filter
Returns:
l'ensemble des contrats filtres
Since:
2.2.0

getContracts

public static Class<? extends TopiaEntity>[] getContracts(TopiaEntityEnum[] contracts)
Ontenir l'ensemble des contrats d'entites a partir des descriptions d'entites.

Parameters:
contracts - les contracts connus
Returns:
l'ensemble des contrats d'entites
Since:
2.2.0

detectTypes

public static Set<Class<? extends TopiaEntity>> detectTypes(TopiaEntityEnum[] contracts,
                                                            TopiaEntity... entities)
                                                     throws TopiaException
Collecte l'ensemble des types d'entites (via un parcours en profondeur).

On retourne toujours les contrats des entites et jamais les implantations.

Parameters:
contracts - les definitions d'entites connues
entities - les entites a parcourir
Returns:
l'ensemble des types d'entites decouverts (uniquement les contrats des entites).
Throws:
TopiaException - if a problem while visiting entities

detectEntities

public static Map<Class<? extends TopiaEntity>,List<TopiaEntity>> detectEntities(TopiaEntityEnum[] contracts,
                                                                                 Set<Class<? extends TopiaEntity>> types,
                                                                                 TopiaEntity... entities)
                                                                          throws TopiaException
Collecte l'ensemble des entites (via un parcours en profondeur) avec un filtrage sur les types d'entites a retourner.

On retourne toujours les contrats des entites et jamais les implantations.

Parameters:
contracts - les definitions d'entites connues
types - l'ensemble des types acceptables
entities - les entites a parcourir
Returns:
l'ensemble des entites decouverts (on converse uniquement les entites dont le contract est dans l'ensemble voulu).
Throws:
TopiaException - if a pb while visiting entities

detectEntityIds

public static TopiaEntityIdsMap detectEntityIds(TopiaEntityEnum[] contracts,
                                                Set<Class<? extends TopiaEntity>> types,
                                                TopiaEntity... entities)
                                         throws TopiaException
Collecte l'ensemble des ids d'entites (via un parcours en profondeur) avec un filtrage sur les types d'entites a retourner.

On retourne toujours les contrats des entites et jamais les implantations.

Parameters:
contracts - les definitions d'entites connues
types - l'ensemble des types acceptables
entities - les entites a parcourir
Returns:
l'ensemble des ids d'entites decouverts (on converse uniquement les entites dont le contract est dans l'ensemble voulu).
Throws:
TopiaException - if a pb while visiting entities

detectReferences

public static SortedMap<TopiaEntity,List<TopiaEntityRef>> detectReferences(TopiaEntityEnum[] contracts,
                                                                           String[] expressions,
                                                                           TopiaEntity entities)
                                                                    throws TopiaException
Collecte toutes les references d'un ensemble d'entites donnees par leur topiaId sur un ensemble d'entites donne.

Parameters:
contracts - les definitions d'entites connues
expressions - l'ensemble des ids a detecter
entities - les entites a parcourir
Returns:
l'ensemble des references decouvertes.
Throws:
TopiaException - if a pb while visiting entities
See Also:
TopiaEntityRef

detectReferences

public static SortedMap<TopiaEntity,List<TopiaEntityRef>> detectReferences(TopiaEntityEnum[] contracts,
                                                                           String[] expressions,
                                                                           Collection<? extends TopiaEntity> entities)
                                                                    throws TopiaException
Collecte toutes les references d'un ensemble d'entites donnees par leur topiaId sur un ensemble d'entites donne.

Parameters:
contracts - les definitions d'entites connues
expressions - l'ensemble des ids a detecter
entities - les entites a parcourir
Returns:
l'ensemble des references decouvertes.
Throws:
TopiaException - if a pb while visiting entities
See Also:
TopiaEntityRef

getTopiaIdList

public static List<String> getTopiaIdList(List<? extends TopiaEntity> entities)
Construit la liste des topiaId d'une liste donnée d'entités.

Parameters:
entities - la liste des entités
Returns:
la liste des topiaId

retainEntities

public static <E extends TopiaEntity> List<E> retainEntities(List<E> list,
                                                             List<String> topiaIds)
Construit une list d'entite dont les ids sont tous dans la liste d'ids donnee.

Type Parameters:
E - le type des entites de la liste
Parameters:
list - la liste a filter
topiaIds - la liste des ids a retenir
Returns:
la nouvelle liste filtree

buildDifferentiel

public static <E extends TopiaEntity> DiffState.DiffStateMap buildDifferentiel(List<E> referentiel,
                                                                               List<E> locale)
Construit le dictionnaire des differences entre deux listes d'entites.

Type Parameters:
E - le type des entites
Parameters:
referentiel - la liste considere comme reference
locale - la liste a mettre a jour
Returns:
le dictionnaire des etats des entites ajoutees, modifiees ou obsoletes.
Since:
2.2.0
See Also:
DiffState

getInterfaces

public static Set<Class<? extends TopiaEntity>> getInterfaces(Class<? extends TopiaEntity> klass,
                                                              Set<Class<? extends TopiaEntity>> klassInterfaces)

addInterface

protected static void addInterface(Set<Class<? extends TopiaEntity>> interfaces,
                                   Class<? extends TopiaEntity> klass)

getEntities

public static <E extends TopiaEntity> List<E> getEntities(TopiaContextImplementor srcCtxt,
                                                          List<E> entityList,
                                                          boolean canBeNull)
                                               throws TopiaException
Throws:
TopiaException

getEntities

public static TopiaEntity[] getEntities(TopiaContext srcCtxt,
                                        String... entityList)
                                 throws TopiaException
Throws:
TopiaException

getEntitiesList

public static List<? extends TopiaEntity> getEntitiesList(TopiaContext srcCtxt,
                                                          String... entityList)
                                                   throws TopiaException
Throws:
TopiaException

checkNotNull

public static void checkNotNull(String methodName,
                                String parameterName,
                                Object value)

checkParameters

public static void checkParameters(Class<?>[] paramsType,
                                   Object... params)

checkSize

public static void checkSize(int size,
                             Object[] params)

checkType

public static void checkType(Class<?>[] paramsType,
                             int index,
                             Object[] params)


Copyright © 2004-2010 CodeLutin. All Rights Reserved.