Class TopiaEntityHelper
java.lang.Object
org.nuiton.topia.persistence.util.TopiaEntityHelper
Une classe avec des méthodes utiles sur les entités.
- Author:
- tchemit <chemit@codelutin.com>
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringLe pattern d'une reference sur une association -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static voidaddInterface(Set<Class<? extends TopiaEntity>> interfaces, Class<? extends TopiaEntity> klass) static voidbindTechnical(TopiaEntity from, TopiaEntity dst) Bind les valeurs techniques depuis une entitée vers une autre.static <E extends TopiaEntity>
DiffState.DiffStateMapbuildDifferentiel(List<E> referentiel, List<E> locale) Construit le dictionnaire des differences entre deux listes d'entites.static voidcheckNotNull(String methodName, String parameterName, Object value) static <E extends TopiaEntity>
voidcheckNotNullAndExistingEntity(String paramName, E bean) Teste si une entité possède un topiaId.static <E extends TopiaEntity>
voidcheckNotNullAndNoneExistingEntity(String paramName, E bean) Teste si une entité ne possède pas un topiaId.static voidcheckParameters(Class<?>[] paramsType, Object... params) static voidstatic voidstatic voidcreateDBFromSQL(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 TopiaEntityIdsMapdetectEntityIds(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>
EgetEntityByTopiaId(Collection<E> entities, String topiaId) Récupère une entité dans une liste d'entités à partir de sonTopiaEntity.getTopiaId().static TopiaEntityEnumgetEntityEnum(Class<? extends TopiaEntity> klass, TopiaEntityEnum... contracts) static <E extends TopiaEntity>
EgetExistingEntity(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 StringgetNormalizedAssociationTableName(String table1, String table2) Given two names (representing two types of entity), obtains the association table name in the formatX_Ywhere X est the table name smaller (in natural order onString).static String[]getTopiaIdArray(List<? extends TopiaEntity> entities) Construit un tableau des topiaId d'une liste donnée d'entités.static Comparator<TopiaEntity>getTopiaIdList(Collection<? 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 voidsaveDB(File gzipFile, TopiaContext topiaContext) Save the given database to a gzip file.
-
Field Details
-
ASSOCIATION_PATTERN
Le pattern d'une reference sur une association- See Also:
-
-
Constructor Details
-
TopiaEntityHelper
public TopiaEntityHelper()
-
-
Method Details
-
bindTechnical
Bind les valeurs techniques depuis une entitée vers une autre.- Parameters:
from- l'entité sourcedst- 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 exceptionIllegalArgumentException.- Type Parameters:
E- le type de l'entité- Parameters:
dao- la dao pour récupérer la valeurtopiaId- 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
Récupère une entité dans une liste d'entités à partir de sonTopiaEntity.getTopiaId().- Type Parameters:
E- le type de l'entité- Parameters:
entities- la liste des entités à scannertopiaId- l'id de l'entité recherchée- Returns:
- l'entité trouvée, ou
nullsi elle n'est pas trouvée.
-
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'erreurbean- l'entité à tester- Throws:
IllegalStateException- si l'entité n'a pas de topiaIdNullPointerException- 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'erreurbean- l'entité à tester- Throws:
NullPointerException- si l'entité est nulleIllegalStateException- 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 dbtopiaContext- the topiaContext to use to create the databseresource- the url of the sql dump gzip file to use- Throws:
TopiaException- if any pb while creating dbIOException- if any io exceptionNullPointerException- 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 dbtopiaContext- the topiaContext of the db to store- Throws:
TopiaException- if any pb while saving dbNullPointerException- if parameters are nullIOException- if could not create gzipFile container directory
-
getTopiaIdComparator
- 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 filterfilterClass- 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 connusclasses- l'ensemble des classes a filter- Returns:
- l'ensemble des contrats filtres
- Since:
- 2.2.0
-
getContracts
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 connuesentities- 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 connuestypes- l'ensemble des types acceptablesentities- 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 connuestypes- l'ensemble des types acceptablesentities- 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 connuesexpressions- l'ensemble des ids a detecterentities- les entites a parcourir- Returns:
- l'ensemble des references decouvertes.
- Throws:
TopiaException- if a pb while visiting entities- See Also:
-
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 connuesexpressions- l'ensemble des ids a detecterentities- les entites a parcourir- Returns:
- l'ensemble des references decouvertes.
- Throws:
TopiaException- if a pb while visiting entities- See Also:
-
getTopiaIdList
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
-
getTopiaIdArray
Construit un tableau des topiaId d'une liste donnée d'entités.- Parameters:
entities- la liste des entités- Returns:
- le tableau des topiaId
- Since:
- 2.5.2
-
retainEntities
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 filtertopiaIds- 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 referencelocale- la liste a mettre a jour- Returns:
- le dictionnaire des etats des entites ajoutees, modifiees ou obsoletes.
- Since:
- 2.2.0
- See Also:
-
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
-
checkParameters
-
checkSize
-
checkType
-
getNormalizedAssociationTableName
Given two names (representing two types of entity), obtains the association table name in the formatX_Ywhere X est the table name smaller (in natural order onString). Example: fromAandB, we getA_B.- Parameters:
table1- the first tabletable2- the second table- Returns:
- the normalized association table name
- Since:
- 2.6.12
-