Package org.nuiton.topia.replication
Class TopiaReplicationModelBuilder
java.lang.Object
org.nuiton.topia.replication.TopiaReplicationModelBuilder
Builder of
ReplicationModel.- Since:
- 2.4.3
- Author:
- Tony Chemit - chemit@codelutin.com
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected TopiaReplicationOperationProviderProvider ofTopiaReplicationOperation. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAfterOperation(ReplicationModel model, TopiaEntityEnum type, Class<? extends TopiaReplicationOperation> operationClass, Object... parameters) Ajouter une nouvelle operation post-replication, sur un type de donnee.voidaddBeforeOperation(ReplicationModel model, TopiaEntityEnum type, Class<? extends TopiaReplicationOperation> operationClass, Object... parameters) Ajouter une nouvelle operation pre-replication, sur un type de donnee.createModel(TopiaApplicationContext context, TopiaEntityEnum[] contracts, boolean computeOrder, String... topiaIds) Instantie un nouveau modèle de réplication pour les entités données par leur ids.createModelForAll(TopiaEntityEnum[] contracts) Instantie un nouveau modèle de réplication pour toutes les entitées.voidcreateOperation(ReplicationModel model, TopiaEntityEnum type, ReplicationOperationPhase phase, Class<? extends TopiaReplicationOperation> operationClass, Object... parameters) protected Set<Class<? extends TopiaEntity>>detectTypes(TopiaApplicationContext context, TopiaEntityEnum[] contracts, String... ids) initModel(ReplicationModel model, boolean computeOrder) prepare(TopiaApplicationContext context, TopiaEntityEnum[] contracts, boolean computeOrder, String... topiaIds) Prepare le modele de replication pour les entites données danstopiaIdset de leur couverture.prepareForAll(TopiaEntityEnum[] contracts) Prepare le modele de replication pour toutes les entites des types donnes.
-
Field Details
-
operationProvider
Provider ofTopiaReplicationOperation.
-
-
Constructor Details
-
TopiaReplicationModelBuilder
public TopiaReplicationModelBuilder()
-
-
Method Details
-
getOperationProvider
-
prepare
public ReplicationModel prepare(TopiaApplicationContext context, TopiaEntityEnum[] contracts, boolean computeOrder, String... topiaIds) throws TopiaException Prepare le modele de replication pour les entites données danstopiaIdset de leur couverture. Le paramètrecomputeOrderdétermine si on doit calculer l'ordre de replication des données (valeur àtrue), sinon (valeur àfalse) on utilise l'ordre induit par le paramètrecontracts.- Parameters:
context- le context de la base source (peut être utilisé pour calculer l'ordre)contracts- les contrats des types a repliquercomputeOrder- drapeau positionné àtruesi on doit calculer l'ordre de réplication,falsesi on utilise l'ordre induit par le paramètrecontracts.topiaIds- les ids des entités à répliquer- Returns:
- le modele pour la replication
- Throws:
TopiaException- pour toute erreur rencontree
-
prepareForAll
Prepare le modele de replication pour toutes les entites des types donnes. La méthode calcule l'ordre de replication des données. Actuellement, on n'est pas capable de calculer l'ordre si le graphe des entités contient des cycles. TODO : faire en sorte de pouvoir gérer les cycles.- Parameters:
contracts- les contrats des types a repliquer- Returns:
- le modele pour la replication
- Throws:
TopiaException- pour toute erreur rencontree
-
createOperation
public void createOperation(ReplicationModel model, TopiaEntityEnum type, ReplicationOperationPhase phase, Class<? extends TopiaReplicationOperation> operationClass, Object... parameters) -
addBeforeOperation
public void addBeforeOperation(ReplicationModel model, TopiaEntityEnum type, Class<? extends TopiaReplicationOperation> operationClass, Object... parameters) Ajouter une nouvelle operation pre-replication, sur un type de donnee.- Parameters:
model- le modele de replicationtype- le type du noeud de replicationoperationClass- l'implantation de l'operationparameters- les parametres supplementaires pour l'operation
-
addAfterOperation
public void addAfterOperation(ReplicationModel model, TopiaEntityEnum type, Class<? extends TopiaReplicationOperation> operationClass, Object... parameters) Ajouter une nouvelle operation post-replication, sur un type de donnee.- Parameters:
model- le modele de replicationtype- le type du noeud de replicationoperationClass- l'implantation de l'operationparameters- les parametres supplementaires pour l'operation
-
createModel
public ReplicationModel createModel(TopiaApplicationContext context, TopiaEntityEnum[] contracts, boolean computeOrder, String... topiaIds) throws TopiaException Instantie un nouveau modèle de réplication pour les entités données par leur ids. L'ordre de réplication dépend du paramètrecomputeOrder. Si celui-ci vauttrue, on calcule l'ordre de réplication, sinon on utilise l'ordre induit par lescontracts.- Parameters:
context- le context Topia pour récupérer certainnes informations de la base source si nécessaire.contracts- les types d'entitéscomputeOrder- drapeau pour calculer l'ordre de réplication (valeur àtrue), sinon on utilise l'ordre induit par lescontracts.topiaIds- les ids à dupliquer- Returns:
- le modèle crée mais non initialisé.
- Throws:
TopiaException- pour toute erreur lors de la création du modèle
-
createModelForAll
Instantie un nouveau modèle de réplication pour toutes les entitées. Ici, l'ordre est toujours calculé.- Parameters:
contracts- les types d'entités- Returns:
- le modèle crée mais non initialisé.
- Throws:
TopiaException- pour toute erreur lors de la création du modèle
-
initModel
public ReplicationModel initModel(ReplicationModel model, boolean computeOrder) throws TopiaException - Throws:
TopiaException
-
detectTypes
protected Set<Class<? extends TopiaEntity>> detectTypes(TopiaApplicationContext context, TopiaEntityEnum[] contracts, String... ids) throws TopiaException - Throws:
TopiaException
-