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

Field Summary
protected static Integer ZERO
           
protected static Byte ZEROB
           
protected static Double ZEROD
           
protected static Float ZEROF
           
protected static Long ZEROL
           
 
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>
EnumMap<DiffState,List<String>>
buildDifferentiel(List<E> referentiel, List<E> locale)
          Construit le dictionnaire des differences entre deux listes d'entites.
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 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 Map<Class<? extends TopiaEntity>,List<String>> 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 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(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)
           
protected static Object getNullValue(Class<?> type)
          Deprecated. since 2.3.0, prefer use the ObjectUtil.getNullValue(Class) method
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 boolean isNullValue(Object value)
          Deprecated. since 2.3.0, prefer use the ObjectUtil.isNullValue(Object) method
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

ZERO

protected static final Integer ZERO

ZEROF

protected static final Float ZEROF

ZEROL

protected static final Long ZEROL

ZEROD

protected static final Double ZEROD

ZEROB

protected static final Byte ZEROB
Constructor Detail

TopiaEntityHelper

public TopiaEntityHelper()
Method Detail

getNullValue

@Deprecated
protected static Object getNullValue(Class<?> type)
Deprecated. since 2.3.0, prefer use the ObjectUtil.getNullValue(Class) method

Parameters:
type - the type to test
Returns:
null object (default value for primitive types)

isNullValue

@Deprecated
public static boolean isNullValue(Object value)
Deprecated. since 2.3.0, prefer use the ObjectUtil.isNullValue(Object) method

Parameters:
value - the value to test
Returns:
true if value is null or default value for primitive types)

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)

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

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

detectEntityIds

public static Map<Class<? extends TopiaEntity>,List<String>> 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

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
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
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> EnumMap<DiffState,List<String>> 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)


Copyright © 2004-2010 CodeLutin. All Rights Reserved.