org.nuiton.topia.persistence.util
Class TopiaEntityHelper

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

public class TopiaEntityHelper
extends java.lang.Object

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

Author:
tchemit

Field Summary
static java.lang.String ASSOCIATION_PATTERN
          Le pattern d'une reference sur une association
 
Constructor Summary
TopiaEntityHelper()
           
 
Method Summary
protected static void addInterface(java.util.Set<java.lang.Class<? extends TopiaEntity>> interfaces, java.lang.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(java.util.List<E> referentiel, java.util.List<E> locale)
          Construit le dictionnaire des differences entre deux listes d'entites.
static
<E extends TopiaEntity>
void
checkNotNullAndExistingEntity(java.lang.String paramName, E bean)
          Teste si une entité possède un topiaId.
static
<E extends TopiaEntity>
void
checkNotNullAndNoneExistingEntity(java.lang.String paramName, E bean)
          Teste si une entité ne possède pas un topiaId.
static void createDBFromSQL(java.io.File dbDirectory, TopiaContext topiaContext, java.net.URI resource)
          Create a new database from a sql dump locating in a gzip file.
static java.util.Map<java.lang.Class<? extends TopiaEntity>,java.util.List<TopiaEntity>> detectEntities(TopiaEntityEnum[] contracts, java.util.Set<java.lang.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 java.util.Map<java.lang.Class<? extends TopiaEntity>,java.util.List<java.lang.String>> detectEntityIds(TopiaEntityEnum[] contracts, java.util.Set<java.lang.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 java.util.SortedMap<TopiaEntity,java.util.List<TopiaEntityRef>> detectReferences(TopiaEntityEnum[] contracts, java.lang.String[] expressions, java.util.Collection<? extends TopiaEntity> entities)
          Collecte toutes les references d'un ensemble d'entites donnees par leur topiaId sur un ensemble d'entites donne.
static java.util.SortedMap<TopiaEntity,java.util.List<TopiaEntityRef>> detectReferences(TopiaEntityEnum[] contracts, java.lang.String[] expressions, TopiaEntity entities)
          Collecte toutes les references d'un ensemble d'entites donnees par leur topiaId sur un ensemble d'entites donne.
static java.util.Set<java.lang.Class<? extends TopiaEntity>> detectTypes(TopiaEntityEnum[] contracts, TopiaEntity... entities)
          Collecte l'ensemble des types d'entites (via un parcours en profondeur).
static java.util.List<TopiaEntity> filter(java.util.Collection<TopiaEntity> entities, java.lang.Class<? extends TopiaEntity> filterClass)
          Filter a list of entities, and keep only the ones from a given type.
static java.lang.Class<? extends TopiaEntity> getContractClass(TopiaEntityEnum[] contracts, java.lang.Class<? extends TopiaEntity> klass)
           
static java.util.Set<java.lang.Class<? extends TopiaEntity>> getContractClasses(TopiaEntityEnum[] contracts, java.lang.Iterable<java.lang.Class<? extends TopiaEntity>> klasses)
           
static java.lang.Class<? extends TopiaEntity>[] getContracts(TopiaEntityEnum[] contracts)
          Ontenir l'ensemble des contrats d'entites a partir des descriptions d'entites.
static
<E extends TopiaEntity>
E
getEntityByTopiaId(java.util.Collection<E> entities, java.lang.String topiaId)
          Récupère une entité dans une liste d'entités à partir de son TopiaEntity.getTopiaId().
static TopiaEntityEnum getEntityEnum(java.lang.Class<? extends TopiaEntity> klass, TopiaEntityEnum... contracts)
           
static
<E extends TopiaEntity>
E
getExistingEntity(TopiaDAO<E> dao, java.lang.String topiaId)
          Récupère une entité qui doit exister à partir de son id.
static java.util.Set<java.lang.Class<? extends TopiaEntity>> getInterfaces(java.lang.Class<? extends TopiaEntity> klass, java.util.Set<java.lang.Class<? extends TopiaEntity>> klassInterfaces)
           
static java.util.Comparator<TopiaEntity> getTopiaIdComparator()
          Obtain a new Comparator pour TopiaEntity based on the TopiaEntity.getTopiaId() method.
static java.util.List<java.lang.String> getTopiaIdList(java.util.List<? extends TopiaEntity> entities)
          Construit la liste des topiaId d'une liste donnée d'entités.
static java.util.Set<java.lang.Class<? extends TopiaEntity>> retainContracts(TopiaEntityEnum[] contracts, java.util.Set<java.lang.Class<? extends TopiaEntity>> classes)
          Filtre un ensemble de classes d'entites en ne conservant que les contrats des entites.
static
<E extends TopiaEntity>
java.util.List<E>
retainEntities(java.util.List<E> list, java.util.List<java.lang.String> topiaIds)
          Construit une list d'entite dont les ids sont tous dans la liste d'ids donnee.
static void saveDB(java.io.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 java.lang.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,
                                                          java.lang.String topiaId)
                                               throws TopiaException,
                                                      java.lang.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é
java.lang.IllegalArgumentException - si l'entité n'existe pas.

getEntityByTopiaId

public static <E extends TopiaEntity> E getEntityByTopiaId(java.util.Collection<E> entities,
                                                           java.lang.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(java.lang.String paramName,
                                                                         E bean)
                                          throws java.lang.IllegalStateException,
                                                 java.lang.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:
java.lang.IllegalStateException - si l'entité n'a pas de topiaId
java.lang.NullPointerException - si l'entité est null

checkNotNullAndNoneExistingEntity

public static <E extends TopiaEntity> void checkNotNullAndNoneExistingEntity(java.lang.String paramName,
                                                                             E bean)
                                              throws java.lang.NullPointerException,
                                                     java.lang.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:
java.lang.NullPointerException - si l'entité est nulle
java.lang.IllegalStateException - si l'entité possède un topiaId.

createDBFromSQL

public static void createDBFromSQL(java.io.File dbDirectory,
                                   TopiaContext topiaContext,
                                   java.net.URI resource)
                            throws java.io.IOException,
                                   TopiaException,
                                   java.lang.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
java.io.IOException - if any io exception
java.lang.NullPointerException - if parameters are null

saveDB

public static void saveDB(java.io.File gzipFile,
                          TopiaContext topiaContext)
                   throws TopiaException,
                          java.io.IOException,
                          java.lang.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
java.lang.NullPointerException - if parameters are null
java.io.IOException - if could not create gzipFile container directory

getTopiaIdComparator

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

Returns:
the new instanciated comparator

filter

public static java.util.List<TopiaEntity> filter(java.util.Collection<TopiaEntity> entities,
                                                 java.lang.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 java.lang.Class<? extends TopiaEntity> getContractClass(TopiaEntityEnum[] contracts,
                                                                      java.lang.Class<? extends TopiaEntity> klass)

getContractClasses

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

getEntityEnum

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

retainContracts

public static java.util.Set<java.lang.Class<? extends TopiaEntity>> retainContracts(TopiaEntityEnum[] contracts,
                                                                                    java.util.Set<java.lang.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 java.lang.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 java.util.Set<java.lang.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 java.util.Map<java.lang.Class<? extends TopiaEntity>,java.util.List<TopiaEntity>> detectEntities(TopiaEntityEnum[] contracts,
                                                                                                               java.util.Set<java.lang.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 java.util.Map<java.lang.Class<? extends TopiaEntity>,java.util.List<java.lang.String>> detectEntityIds(TopiaEntityEnum[] contracts,
                                                                                                                     java.util.Set<java.lang.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 java.util.SortedMap<TopiaEntity,java.util.List<TopiaEntityRef>> detectReferences(TopiaEntityEnum[] contracts,
                                                                                               java.lang.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 java.util.SortedMap<TopiaEntity,java.util.List<TopiaEntityRef>> detectReferences(TopiaEntityEnum[] contracts,
                                                                                               java.lang.String[] expressions,
                                                                                               java.util.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 java.util.List<java.lang.String> getTopiaIdList(java.util.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> java.util.List<E> retainEntities(java.util.List<E> list,
                                                                       java.util.List<java.lang.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(java.util.List<E> referentiel,
                                                                               java.util.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 java.util.Set<java.lang.Class<? extends TopiaEntity>> getInterfaces(java.lang.Class<? extends TopiaEntity> klass,
                                                                                  java.util.Set<java.lang.Class<? extends TopiaEntity>> klassInterfaces)

addInterface

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


Copyright © 2004-2010 CodeLutin. All Rights Reserved.