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

Field Summary
protected static java.lang.Integer ZERO
           
protected static java.lang.Byte ZEROB
           
protected static java.lang.Double ZEROD
           
protected static java.lang.Float ZEROF
           
protected static java.lang.Long ZEROL
           
 
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>
java.util.EnumMap<DiffState,java.util.List<java.lang.String>>
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.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)
           
protected static java.lang.Object getNullValue(java.lang.Class<?> type)
           
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 boolean isNullValue(java.lang.Object value)
           
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

ZERO

protected static final java.lang.Integer ZERO

ZEROF

protected static final java.lang.Float ZEROF

ZEROL

protected static final java.lang.Long ZEROL

ZEROD

protected static final java.lang.Double ZEROD

ZEROB

protected static final java.lang.Byte ZEROB
Constructor Detail

TopiaEntityHelper

public TopiaEntityHelper()
Method Detail

getNullValue

protected static java.lang.Object getNullValue(java.lang.Class<?> type)

isNullValue

public static boolean isNullValue(java.lang.Object value)

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)

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

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

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

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
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
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> java.util.EnumMap<DiffState,java.util.List<java.lang.String>> 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-2009 CodeLutin. All Rights Reserved.