This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 610045103383d7119aefebc690178f2a012fabc2 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Dec 30 16:53:25 2015 +0100 Utilisation du service topia pour la réplication --- .../replication/ObserveReplicationAction.java | 127 ----------- .../ObserveReplicationActionContext.java | 236 --------------------- .../replication/ObserveReplicationContext.java | 48 ----- .../replication/ObserveReplicationEngine.java | 58 ----- .../replication/ObserveReplicationTables.java | 169 +++++++++++++++ .../ReplicationActionContextsBuilderSupport.java | 91 -------- ...ipLonglineReplicationActionContextsBuilder.java | 174 --------------- .../TripSeineReplicationActionContextsBuilder.java | 145 ------------- 8 files changed, 169 insertions(+), 879 deletions(-) diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationAction.java b/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationAction.java deleted file mode 100644 index bcbaf44..0000000 --- a/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationAction.java +++ /dev/null @@ -1,127 +0,0 @@ -package fr.ird.observe.entities.replication; - -import fr.ird.observe.ObserveTopiaPersistenceContext; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.nuiton.topia.persistence.support.TopiaSqlSupport; -import org.nuiton.topia.persistence.support.TopiaSqlWork; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.ResultSetMetaData; -import java.sql.SQLException; -import java.sql.Statement; - -/** - * Created on 28/12/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReplicationAction { - - /** Logger. */ - private static final Log log = LogFactory.getLog(ObserveReplicationAction.class); - - protected final ObserveReplicationActionContext replicationActionContext; - - public static void replicate(ObserveReplicationActionContext replicationActionContext) { - ObserveReplicationAction action = new ObserveReplicationAction(replicationActionContext); - action.replicate(); - } - - public ObserveReplicationAction(ObserveReplicationActionContext replicationActionContext) { - this.replicationActionContext = replicationActionContext; - } - - public void replicate() { - - ObserveTopiaPersistenceContext sourcePersistenceContext = replicationActionContext.getSourcePersistenceContext(); - TopiaSqlSupport sqlSupport = sourcePersistenceContext.getSqlSupport(); - ReadSqlWork sqlWork = new ReadSqlWork(); - sqlSupport.doSqlWork(sqlWork); - - } - - protected class ReadSqlWork implements TopiaSqlWork { - - @Override - public void execute(Connection connection) throws SQLException { - - ObserveTopiaPersistenceContext targetPersistenceContext = replicationActionContext.getTargetPersistenceContext(); - - try (PreparedStatement readStatement = replicationActionContext.createReadStatement(connection)) { - - readStatement.execute(); - CopySqlWork sqlWork = new CopySqlWork(readStatement); - targetPersistenceContext.getSqlSupport().doSqlWork(sqlWork); - - } - - } - - } - - protected class CopySqlWork implements TopiaSqlWork { - - protected final Statement readStatement; - - public CopySqlWork(Statement readStatement) { - this.readStatement = readStatement; - } - - @Override - public void execute(Connection connection) throws SQLException { - - ResultSet readResultSet = readStatement.getResultSet(); - - ResultSetMetaData readResultSetMetaData = readResultSet.getMetaData(); - int columnCount = readResultSetMetaData.getColumnCount(); - - int fetchSize = replicationActionContext.getFetchSize(); - String tableName = replicationActionContext.getFullyTableName(); - - try (PreparedStatement writeStatement = replicationActionContext.createWriteStatement(connection, readResultSetMetaData)) { - - - long index = 0; - while (readResultSet.next()) { - - copyRow(readResultSet, writeStatement, columnCount); - - if ((++index % fetchSize) == 0) { - - flush(writeStatement, tableName, index); - - } - } - - flush(writeStatement, tableName, index); - } - - } - - protected void copyRow(ResultSet readResultSet, PreparedStatement writeStatement, int columnCount) throws SQLException { - writeStatement.clearParameters(); - - if (log.isDebugEnabled()) { - log.debug("Copy " + readResultSet.getString(1)); - } - for (int i = 1; i <= columnCount; i++) { - Object object = readResultSet.getObject(i); - writeStatement.setObject(i, object); - } - writeStatement.addBatch(); - } - - protected void flush(PreparedStatement writeStatement, String tableName, long index) throws SQLException { - - if (log.isInfoEnabled()) { - log.info("Flush for : " + tableName + " (size: " + index + ")"); - } - writeStatement.executeBatch(); - writeStatement.clearBatch(); - - } - } -} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationActionContext.java b/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationActionContext.java deleted file mode 100644 index a6da8ed..0000000 --- a/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationActionContext.java +++ /dev/null @@ -1,236 +0,0 @@ -package fr.ird.observe.entities.replication; - -import com.google.common.collect.Sets; -import fr.ird.observe.ObserveEntityEnum; -import fr.ird.observe.ObserveTopiaPersistenceContext; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSetMetaData; -import java.sql.SQLException; -import java.util.LinkedHashSet; -import java.util.Set; - -/** - * Created on 28/12/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReplicationActionContext { - - /** Logger. */ - private static final Log log = LogFactory.getLog(ObserveReplicationActionContext.class); - - protected final ObserveReplicationContext replicationContext; - - protected final ObserveReplicationActionContext parentActionContext; - - protected final Set<String> joinClauses; - - protected String whereClause; - - protected String fromClause; - - protected final String queryArg; - - protected final String schemaName; - - protected final String tableName; - - protected final String parentTableName; - - protected final int order; - - public static ObserveReplicationActionContext onJoin( - ObserveReplicationActionContext parentActionContext, - String tableName, - int order) { - - String schemaName = parentActionContext.schemaName; - - return new ObserveReplicationActionContext( - parentActionContext.replicationContext, - schemaName, - tableName, - parentActionContext, - parentActionContext.joinClauses, - parentActionContext.fromClause, - parentActionContext.whereClause, - parentActionContext.queryArg, - order - ); - - } - - public static ObserveReplicationActionContext onAssociationJoin( - ObserveReplicationActionContext parentActionContext, - String tableName, - int order) { - - String schemaName = parentActionContext.schemaName; - tableName = getAssociationTableName(tableName, parentActionContext.tableName); - - return new ObserveReplicationActionContext( - parentActionContext.replicationContext, - schemaName, - tableName, - parentActionContext, - parentActionContext.joinClauses, - parentActionContext.fromClause, - parentActionContext.whereClause, - parentActionContext.queryArg, - order - ); - } - - public static ObserveReplicationActionContext onTrip(ObserveReplicationContext replicationContext, - ObserveEntityEnum entityEnum, - String id, - int order) { - - - return new ObserveReplicationActionContext( - replicationContext, - entityEnum.dbSchemaName(), - entityEnum.dbTableName(), - null, - new LinkedHashSet<String>(), - null, - null, - id, - order); - } - - private ObserveReplicationActionContext(ObserveReplicationContext replicationContext, - String schemaName, - String tableName, - ObserveReplicationActionContext parentActionContext, - Set<String> joinClauses, - String fromClause, - String whereClause, - String queryArg, - int order) { - this.replicationContext = replicationContext; - this.parentActionContext = parentActionContext; - this.joinClauses = Sets.newLinkedHashSet(joinClauses); - this.fromClause = fromClause; - this.whereClause = whereClause; - this.queryArg = queryArg; - this.order = order; - this.parentTableName = parentActionContext == null ? null : parentActionContext.tableName; - this.schemaName = schemaName; - this.tableName = tableName; - } - - public ObserveTopiaPersistenceContext getSourcePersistenceContext() { - return replicationContext.getSourcePersistenceContext(); - } - - public ObserveTopiaPersistenceContext getTargetPersistenceContext() { - return replicationContext.getTargetPersistenceContext(); - } - - public int getFetchSize() { - return replicationContext.getFetchSize(); - } - - public String getTableName() { - return tableName; - } - - public String getFullyTableName() { - return schemaName + "." + tableName; - } - - public PreparedStatement createReadStatement(Connection connection) throws SQLException { - - StringBuilder sqlBuilder = new StringBuilder("SELECT " + tableName + ".*"); - - sqlBuilder.append(" FROM ").append(fromClause); - for (String joinClause : joinClauses) { - sqlBuilder.append(" ").append(joinClause); - } - sqlBuilder.append(" WHERE ").append(whereClause); - - String sql = sqlBuilder.toString(); - if (log.isInfoEnabled()) { - log.info("Read sql: " + sql); - } - PreparedStatement statement = connection.prepareStatement(sql); - statement.setString(1, queryArg); - statement.setFetchSize(replicationContext.getFetchSize()); - return statement; - } - - public PreparedStatement createWriteStatement(Connection connection, ResultSetMetaData readResultTatMetaData) throws SQLException { - - int columnCount = readResultTatMetaData.getColumnCount(); - - StringBuilder sqlBuilder = new StringBuilder("INSERT INTO "); - sqlBuilder.append(schemaName).append(".").append(tableName); - - StringBuilder columnNamesBuilder = new StringBuilder(); - StringBuilder argsBuilder = new StringBuilder(); - - columnNamesBuilder.append(" ").append(readResultTatMetaData.getColumnName(1)); - argsBuilder.append("?"); - - for (int i = 2; i <= columnCount; i++) { - - String columnName = readResultTatMetaData.getColumnName(i); - columnNamesBuilder.append(", ").append(columnName); - argsBuilder.append(", ?"); - } - - sqlBuilder.append("(") - .append(columnNamesBuilder) - .append(")") - .append("VALUES (") - .append(argsBuilder) - .append(")"); - - String sql = sqlBuilder.toString(); - if (log.isInfoEnabled()) { - log.info("Write sql: " + sql); - } - PreparedStatement statement = connection.prepareStatement(sql); - - return statement; - - } - - public void addInnerJoinClause() { - String joinClause = " INNER JOIN " + schemaName + "." + tableName + " " + tableName + " ON " + tableName + "." + parentTableName + " = " + parentTableName + ".topiaId"; - joinClauses.add(joinClause); - } - - public void addInverseInnerJoinClause() { - String joinClause = " INNER JOIN " + schemaName + "." + tableName + " " + tableName + " ON " + tableName + ".topiaId = " + parentTableName + "." + tableName; - joinClauses.add(joinClause); - } - - public void setWhereTopiaIdEqualsClause() { - this.whereClause = tableName + ".topiaid = ?"; - } - - public void setWhereJoinTopiaIdEqualsClause() { - this.whereClause = tableName + "." + parentTableName + " = ?"; - } - - public void setFromClause() { - this.fromClause = schemaName + "." + tableName + " " + tableName; - } - - protected static String getAssociationTableName(String tableName, String parentTableName) { - String associationTableName; - if (tableName.toLowerCase().compareTo(parentTableName.toLowerCase()) < 0) { - associationTableName = tableName + "_" + parentTableName; - } else { - associationTableName = parentTableName + "_" + tableName; - } - return associationTableName; - } - -} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationContext.java b/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationContext.java deleted file mode 100644 index ff26576..0000000 --- a/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationContext.java +++ /dev/null @@ -1,48 +0,0 @@ -package fr.ird.observe.entities.replication; - -import fr.ird.observe.ObserveTopiaApplicationContext; -import fr.ird.observe.ObserveTopiaPersistenceContext; - -/** - * Created on 28/12/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReplicationContext { - - protected final ObserveTopiaApplicationContext sourceTopiaApplicationContext; - - protected final ObserveTopiaApplicationContext targetTopiaApplicationContext; - - protected final int fetchSize; - - protected ObserveTopiaPersistenceContext sourcePersistenceContext; - - protected ObserveTopiaPersistenceContext targetPersistenceContext; - - public ObserveReplicationContext(ObserveTopiaApplicationContext sourceTopiaApplicationContext, - ObserveTopiaApplicationContext targetTopiaApplicationContext, - int fetchSize) { - this.sourceTopiaApplicationContext = sourceTopiaApplicationContext; - this.targetTopiaApplicationContext = targetTopiaApplicationContext; - this.fetchSize=fetchSize; - } - - public ObserveTopiaPersistenceContext getSourcePersistenceContext() { - if (sourcePersistenceContext == null) { - sourcePersistenceContext = sourceTopiaApplicationContext.newPersistenceContext(); - } - return sourcePersistenceContext; - } - - public ObserveTopiaPersistenceContext getTargetPersistenceContext() { - if (targetPersistenceContext == null) { - targetPersistenceContext = targetTopiaApplicationContext.newPersistenceContext(); - } - return targetPersistenceContext; - } - - public int getFetchSize() { - return fetchSize; - } -} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationEngine.java b/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationEngine.java deleted file mode 100644 index 9a283bc..0000000 --- a/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationEngine.java +++ /dev/null @@ -1,58 +0,0 @@ -package fr.ird.observe.entities.replication; - -import com.google.common.collect.ImmutableSet; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * Created on 28/12/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class ObserveReplicationEngine { - - /** Logger. */ - private static final Log log = LogFactory.getLog(ObserveReplicationEngine.class); - - protected final ObserveReplicationContext replicationContext; - - public ObserveReplicationEngine(ObserveReplicationContext replicationContext) { - this.replicationContext = replicationContext; - } - - public ImmutableSet<ObserveReplicationActionContext> replicateTripSeine(String id) { - - ImmutableSet<ObserveReplicationActionContext> actionContexts = TripSeineReplicationActionContextsBuilder - .of(replicationContext, id); - - execute(actionContexts); - - return actionContexts; - - } - - public ImmutableSet<ObserveReplicationActionContext> replicateTripLongline(String id) { - - ImmutableSet<ObserveReplicationActionContext> actionContexts = TripLonglineReplicationActionContextsBuilder - .of(replicationContext, id); - - execute(actionContexts); - - return actionContexts; - } - - protected void execute(ImmutableSet<ObserveReplicationActionContext> actionContexts) { - - for (ObserveReplicationActionContext actionContext : actionContexts) { - - if (log.isInfoEnabled()) { - log.info("Replicate: " + actionContext.tableName); - } - ObserveReplicationAction.replicate(actionContext); - } - - replicationContext.getTargetPersistenceContext().commit(); - - } - -} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationTables.java b/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationTables.java new file mode 100644 index 0000000..68243fa --- /dev/null +++ b/observe-entities/src/main/java/fr/ird/observe/entities/replication/ObserveReplicationTables.java @@ -0,0 +1,169 @@ +package fr.ird.observe.entities.replication; + +import fr.ird.observe.ObserveEntityEnum; +import org.nuiton.topia.replication.sql.action.ReplicateActionBuilderSupport; +import org.nuiton.topia.replication.sql.table.TopiaReplicationTables; +import org.nuiton.topia.replication.sql.table.TopiaReplicationTablesBuilder; + +/** + * Created on 30/12/15. + * + * @author Tony Chemit - chemit@codelutin.com + */ +public class ObserveReplicationTables { + + protected static <B extends ReplicateActionBuilderSupport> void addReferentialTables(B actionBuilder) { + actionBuilder.setTables(getReferentialTables()); + } + + protected static <B extends ReplicateActionBuilderSupport> void addTripLongline(B actionBuilder, String tripId) { + actionBuilder.setTables(getTripLonglineTables(tripId != null)).setArg(tripId); + + } + + protected static <B extends ReplicateActionBuilderSupport> void addTripSeine(B actionBuilder, String tripId) { + actionBuilder.setTables(getTripSeineTables(tripId != null)).setArg(tripId); + } + + public static TopiaReplicationTables getTripSeineTables(boolean withId) { + + return TopiaReplicationTablesBuilder + .builder(withId) + .addTopTable(ObserveEntityEnum.TripSeine) + .addTopJoinTable(ObserveEntityEnum.TripSeine, ObserveEntityEnum.GearUseFeaturesSeine) + .addJoinTable(ObserveEntityEnum.GearUseFeaturesSeine, ObserveEntityEnum.GearUseFeaturesMeasurementSeine) + .addTopJoinTable(ObserveEntityEnum.TripSeine, ObserveEntityEnum.Route) + .orderPlusOne() + .addJoinTable(ObserveEntityEnum.Route, ObserveEntityEnum.ActivitySeine) + .orderMinusTwo() + .addInversedJoinTable(ObserveEntityEnum.ActivitySeine, ObserveEntityEnum.SetSeine) + .orderPlusOne() + .addAssociationTable(ObserveEntityEnum.ActivitySeine, ObserveEntityEnum.ObservedSystem.name(), true) + .addJoinTable(ObserveEntityEnum.ActivitySeine, ObserveEntityEnum.FloatingObject) + .addJoinTable(ObserveEntityEnum.SetSeine, ObserveEntityEnum.SchoolEstimate) + .addJoinTable(ObserveEntityEnum.SetSeine, ObserveEntityEnum.NonTargetCatch) + .addJoinTable(ObserveEntityEnum.SetSeine, ObserveEntityEnum.NonTargetSample) + .addJoinTable(ObserveEntityEnum.NonTargetSample, ObserveEntityEnum.NonTargetLength) + .addJoinTable(ObserveEntityEnum.SetSeine, ObserveEntityEnum.TargetCatch) + .addJoinTable(ObserveEntityEnum.SetSeine, ObserveEntityEnum.TargetSample) + .addJoinTable(ObserveEntityEnum.TargetSample, ObserveEntityEnum.TargetLength) + .addJoinTable(ObserveEntityEnum.FloatingObject, ObserveEntityEnum.ObjectObservedSpecies) + .addJoinTable(ObserveEntityEnum.FloatingObject, ObserveEntityEnum.ObjectSchoolEstimate) + .addJoinTable(ObserveEntityEnum.FloatingObject, ObserveEntityEnum.TransmittingBuoy) + .build(); + + } + + public static TopiaReplicationTables getTripLonglineTablesForAll() { + return getTripLonglineTables(false); + } + + public static TopiaReplicationTables getTripLonglineTablesForOne() { + return getTripLonglineTables(true); + } + + public static TopiaReplicationTables getTripLonglineTables(boolean withId) { + + return TopiaReplicationTablesBuilder + .builder(withId) + .addTopTable(ObserveEntityEnum.TripLongline) + .addTopJoinTable(ObserveEntityEnum.TripLongline, ObserveEntityEnum.GearUseFeaturesLongline) + .addJoinTable(ObserveEntityEnum.GearUseFeaturesLongline, ObserveEntityEnum.GearUseFeaturesMeasurementLongline) + .orderPlusOne() + .addJoinTable(ObserveEntityEnum.TripLongline, ObserveEntityEnum.ActivityLongline) + .orderMinusTwo() + .addInversedJoinTable(ObserveEntityEnum.ActivityLongline, ObserveEntityEnum.SetLongline) + .orderPlusOne() + .addJoinTable(ObserveEntityEnum.ActivityLongline, ObserveEntityEnum.Encounter) + .addJoinTable(ObserveEntityEnum.ActivityLongline, ObserveEntityEnum.SensorUsed) + .addJoinTable(ObserveEntityEnum.SetLongline, ObserveEntityEnum.Tdr) + .addJoinTable(ObserveEntityEnum.SetLongline, ObserveEntityEnum.BaitsComposition) + .addJoinTable(ObserveEntityEnum.SetLongline, ObserveEntityEnum.FloatlinesComposition) + .addJoinTable(ObserveEntityEnum.SetLongline, ObserveEntityEnum.HooksComposition) + .addJoinTable(ObserveEntityEnum.SetLongline, ObserveEntityEnum.BranchlinesComposition) + .addJoinTable(ObserveEntityEnum.SetLongline, ObserveEntityEnum.Section) + .addJoinTable(ObserveEntityEnum.Section, ObserveEntityEnum.Basket) + .addJoinTable(ObserveEntityEnum.Basket, ObserveEntityEnum.Branchline) + .addJoinTable(ObserveEntityEnum.SetLongline, ObserveEntityEnum.CatchLongline) + .addAssociationTable(ObserveEntityEnum.SetLongline, ObserveEntityEnum.MitigationType.name(), true) + .addJoinTable(ObserveEntityEnum.CatchLongline, ObserveEntityEnum.SizeMeasure) + .addJoinTable(ObserveEntityEnum.CatchLongline, ObserveEntityEnum.WeightMeasure) + .addAssociationTable(ObserveEntityEnum.CatchLongline, "Predator", true) + .addJoinTable(ObserveEntityEnum.Tdr, ObserveEntityEnum.TdrRecord) + .addAssociationTable(ObserveEntityEnum.Tdr, ObserveEntityEnum.Species.name(), true) + .build(); + + } + + public static TopiaReplicationTables getReferentialTables() { + + return TopiaReplicationTablesBuilder + .builder(false) + .addTopTable(ObserveEntityEnum.VesselSizeCategory) + .addTopTable(ObserveEntityEnum.Country) + .addTopTable(ObserveEntityEnum.Harbour) + .addTopTable(ObserveEntityEnum.VesselType) + .addTopTable(ObserveEntityEnum.Vessel) + .addTopTable(ObserveEntityEnum.Ocean) + .addTopTable(ObserveEntityEnum.SpeciesGroup) + .addTopTable(ObserveEntityEnum.Species) + .addAssociationTable(ObserveEntityEnum.Species, ObserveEntityEnum.Ocean.name(), false) + .addTopTable(ObserveEntityEnum.Sex) + .addTopTable(ObserveEntityEnum.FpaZone) + .addTopTable(ObserveEntityEnum.SpeciesList) + .addAssociationTable(ObserveEntityEnum.SpeciesList, ObserveEntityEnum.Species.name(), false) + .addTopTable(ObserveEntityEnum.Person) + .addTopTable(ObserveEntityEnum.Organism) + .addTopTable(ObserveEntityEnum.LengthWeightParameter) + .addTopTable(ObserveEntityEnum.Program) + .addTopTable(ObserveEntityEnum.GearCaracteristicType) + .addTopTable(ObserveEntityEnum.GearCaracteristic) + .addTopTable(ObserveEntityEnum.Gear) + .addAssociationTable(ObserveEntityEnum.Gear, ObserveEntityEnum.GearCaracteristic.name(), false) + .addTopTable(ObserveEntityEnum.LastUpdateDate) + .addTopTable(ObserveEntityEnum.VesselActivitySeine) + .addTopTable(ObserveEntityEnum.SurroundingActivity) + .addTopTable(ObserveEntityEnum.ReasonForNullSet) + .addTopTable(ObserveEntityEnum.ReasonForNoFishing) + .addTopTable(ObserveEntityEnum.SpeciesFate) + .addTopTable(ObserveEntityEnum.ObjectFate) + .addTopTable(ObserveEntityEnum.WeightCategory) + .addTopTable(ObserveEntityEnum.DetectionMode) + .addTopTable(ObserveEntityEnum.TransmittingBuoyOperation) + .addTopTable(ObserveEntityEnum.ObjectOperation) + .addTopTable(ObserveEntityEnum.ReasonForDiscard) + .addTopTable(ObserveEntityEnum.SpeciesStatus) + .addTopTable(ObserveEntityEnum.ObservedSystem) + .addTopTable(ObserveEntityEnum.TransmittingBuoyType) + .addTopTable(ObserveEntityEnum.ObjectType) + .addTopTable(ObserveEntityEnum.Wind) + .addTopTable(ObserveEntityEnum.BaitHaulingStatus) + .addTopTable(ObserveEntityEnum.BaitSettingStatus) + .addTopTable(ObserveEntityEnum.BaitType) + .addTopTable(ObserveEntityEnum.CatchFateLongline) + .addTopTable(ObserveEntityEnum.EncounterType) + .addTopTable(ObserveEntityEnum.Healthness) + .addTopTable(ObserveEntityEnum.HookPosition) + .addTopTable(ObserveEntityEnum.HookSize) + .addTopTable(ObserveEntityEnum.HookType) + .addTopTable(ObserveEntityEnum.ItemVerticalPosition) + .addTopTable(ObserveEntityEnum.ItemHorizontalPosition) + .addTopTable(ObserveEntityEnum.LightsticksColor) + .addTopTable(ObserveEntityEnum.LightsticksType) + .addTopTable(ObserveEntityEnum.LineType) + .addTopTable(ObserveEntityEnum.MaturityStatus) + .addTopTable(ObserveEntityEnum.MitigationType) + .addTopTable(ObserveEntityEnum.SensorBrand) + .addTopTable(ObserveEntityEnum.SensorDataFormat) + .addTopTable(ObserveEntityEnum.SensorType) + .addTopTable(ObserveEntityEnum.SettingShape) + .addTopTable(ObserveEntityEnum.SizeMeasureType) + .addTopTable(ObserveEntityEnum.StomacFullness) + .addTopTable(ObserveEntityEnum.TripType) + .addTopTable(ObserveEntityEnum.VesselActivityLongline) + .addTopTable(ObserveEntityEnum.WeightMeasureType) + + .build(); + + } +} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/replication/ReplicationActionContextsBuilderSupport.java b/observe-entities/src/main/java/fr/ird/observe/entities/replication/ReplicationActionContextsBuilderSupport.java deleted file mode 100644 index b7f9b3a..0000000 --- a/observe-entities/src/main/java/fr/ird/observe/entities/replication/ReplicationActionContextsBuilderSupport.java +++ /dev/null @@ -1,91 +0,0 @@ -package fr.ird.observe.entities.replication; - -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; -import fr.ird.observe.ObserveEntityEnum; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.LinkedHashMap; -import java.util.Map; - -/** - * Created on 28/12/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public abstract class ReplicationActionContextsBuilderSupport<Context extends ReplicationActionContextsBuilderSupport> { - - protected final ObserveReplicationContext replicationContext; - - protected final Map<String, ObserveReplicationActionContext> actionContexts; - - protected ReplicationActionContextsBuilderSupport(ObserveReplicationContext replicationContext) { - this.replicationContext = replicationContext; - this.actionContexts = new LinkedHashMap<>(); - } - - public ImmutableSet<ObserveReplicationActionContext> build() { - - ArrayList<ObserveReplicationActionContext> actionContextList = Lists.newArrayList(this.actionContexts.values()); - Collections.sort(actionContextList, new Comparator<ObserveReplicationActionContext>() { - - @Override - public int compare(ObserveReplicationActionContext o1, ObserveReplicationActionContext o2) { - return o1.order - o2.order; - } - }); - return ImmutableSet.copyOf(actionContextList); - } - - protected Context createFirstActionContext(ObserveEntityEnum entityEnum, String id) { - ObserveReplicationActionContext actionContext = - ObserveReplicationActionContext.onTrip( - replicationContext, - entityEnum, - id, - 0); - - actionContext.setFromClause(); - actionContext.setWhereTopiaIdEqualsClause(); - - registerActionContext(actionContext); - return (Context) this; - } - - protected ObserveReplicationActionContext createActionContext(ObserveEntityEnum parentEntityEnum, ObserveEntityEnum entityEnum, int order) { - - ObserveReplicationActionContext parentActionContext = getActionContext(parentEntityEnum); - - ObserveReplicationActionContext actionContext = - ObserveReplicationActionContext.onJoin(parentActionContext, - entityEnum.dbTableName(), - order); - registerActionContext(actionContext); - return actionContext; - } - - protected ObserveReplicationActionContext createAssociationActionContext(ObserveEntityEnum parentEntityEnum, String associationName, int order) { - - ObserveReplicationActionContext parentActionContext = getActionContext(parentEntityEnum); - - ObserveReplicationActionContext actionContext = - ObserveReplicationActionContext.onAssociationJoin(parentActionContext, - associationName, - order); - registerActionContext(actionContext); - return actionContext; - } - - protected ObserveReplicationActionContext getActionContext(ObserveEntityEnum entityEnum) { - String fullyTableName = entityEnum.dbSchemaName().toLowerCase() + "." + entityEnum.dbTableName().toLowerCase(); - ObserveReplicationActionContext parentactioncontext = actionContexts.get(fullyTableName); - return parentactioncontext; - } - - protected void registerActionContext(ObserveReplicationActionContext actionContext) { - actionContexts.put(actionContext.getFullyTableName(), actionContext); - } - -} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/replication/TripLonglineReplicationActionContextsBuilder.java b/observe-entities/src/main/java/fr/ird/observe/entities/replication/TripLonglineReplicationActionContextsBuilder.java deleted file mode 100644 index 90cfc5c..0000000 --- a/observe-entities/src/main/java/fr/ird/observe/entities/replication/TripLonglineReplicationActionContextsBuilder.java +++ /dev/null @@ -1,174 +0,0 @@ -package fr.ird.observe.entities.replication; - -import com.google.common.collect.ImmutableSet; -import fr.ird.observe.ObserveEntityEnum; - -/** - * Created on 28/12/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class TripLonglineReplicationActionContextsBuilder extends ReplicationActionContextsBuilderSupport<TripLonglineReplicationActionContextsBuilder> { - - public static ImmutableSet<ObserveReplicationActionContext> of(ObserveReplicationContext replicationContext, String tripId) { - return new TripLonglineReplicationActionContextsBuilder(replicationContext) - .createFirstActionContext(ObserveEntityEnum.TripLongline, tripId) - .addGearUseFeaturesActionContext() - .addGearUseFeatureMeasurementActionContext() - .addActivityActionContext() - .addSetActionContext() - .addEncounterActionContext() - .addSensorUsedActionContext() - .addTdrActionContext() - .addBaitsCompositionActionContext() - .addFloatlinesCompositionActionContext() - .addHooksCompositionActionContext() - .addBranchlinesCompositionActionContext() - .addCatchActionContext() - - .addSectionActionContext() - .addBasketActionContext() - .addBranchlineActionContext() - - .addSetMitigationTypeActionContext() - .addSizeMeasureActionContext() - .addWeightMeasureActionContext() - .addCatchPredatorActionContext() - .addTdrRecordActionContext() - .addTdrSpeciesActionContext() - .build(); - } - - protected TripLonglineReplicationActionContextsBuilder(ObserveReplicationContext replicationContext) { - super(replicationContext); - } - - public TripLonglineReplicationActionContextsBuilder addGearUseFeaturesActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.TripLongline, ObserveEntityEnum.GearUseFeaturesLongline, 1); - actionContext.setFromClause(); - actionContext.setWhereJoinTopiaIdEqualsClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addGearUseFeatureMeasurementActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.GearUseFeaturesLongline, ObserveEntityEnum.GearUseFeaturesMeasurementLongline, 2); - actionContext.addInnerJoinClause(); - return this; - } - - - public TripLonglineReplicationActionContextsBuilder addSetActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.ActivityLongline, ObserveEntityEnum.SetLongline, 10); - actionContext.addInverseInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addActivityActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.TripLongline, ObserveEntityEnum.ActivityLongline, 11); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addEncounterActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.ActivityLongline, ObserveEntityEnum.Encounter, 12); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addSensorUsedActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.ActivityLongline, ObserveEntityEnum.SensorUsed, 13); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addTdrActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetLongline, ObserveEntityEnum.Tdr, 20); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addBaitsCompositionActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetLongline, ObserveEntityEnum.BaitsComposition, 21); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addFloatlinesCompositionActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetLongline, ObserveEntityEnum.FloatlinesComposition, 22); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addHooksCompositionActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetLongline, ObserveEntityEnum.HooksComposition, 23); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addBranchlinesCompositionActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetLongline, ObserveEntityEnum.BranchlinesComposition, 24); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addSectionActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetLongline, ObserveEntityEnum.Section, 25); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addBasketActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.Section, ObserveEntityEnum.Basket, 26); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addBranchlineActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.Basket, ObserveEntityEnum.Branchline, 27); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addCatchActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetLongline, ObserveEntityEnum.CatchLongline, 28); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addSetMitigationTypeActionContext() { - ObserveReplicationActionContext actionContext = createAssociationActionContext(ObserveEntityEnum.SetLongline, ObserveEntityEnum.MitigationType.name(), 29); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addSizeMeasureActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.CatchLongline, ObserveEntityEnum.SizeMeasure, 30); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addWeightMeasureActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.CatchLongline, ObserveEntityEnum.WeightMeasure, 31); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addCatchPredatorActionContext() { - ObserveReplicationActionContext actionContext = createAssociationActionContext(ObserveEntityEnum.CatchLongline, "Predator", 32); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addTdrRecordActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.Tdr, ObserveEntityEnum.TdrRecord, 40); - actionContext.addInnerJoinClause(); - return this; - } - - public TripLonglineReplicationActionContextsBuilder addTdrSpeciesActionContext() { - ObserveReplicationActionContext actionContext = createAssociationActionContext(ObserveEntityEnum.Tdr, ObserveEntityEnum.Species.name(), 41); - actionContext.addInnerJoinClause(); - return this; - } - -} diff --git a/observe-entities/src/main/java/fr/ird/observe/entities/replication/TripSeineReplicationActionContextsBuilder.java b/observe-entities/src/main/java/fr/ird/observe/entities/replication/TripSeineReplicationActionContextsBuilder.java deleted file mode 100644 index 9f92fce..0000000 --- a/observe-entities/src/main/java/fr/ird/observe/entities/replication/TripSeineReplicationActionContextsBuilder.java +++ /dev/null @@ -1,145 +0,0 @@ -package fr.ird.observe.entities.replication; - -import com.google.common.collect.ImmutableSet; -import fr.ird.observe.ObserveEntityEnum; - -/** - * Created on 28/12/15. - * - * @author Tony Chemit - chemit@codelutin.com - */ -public class TripSeineReplicationActionContextsBuilder extends ReplicationActionContextsBuilderSupport<TripSeineReplicationActionContextsBuilder> { - - public static ImmutableSet<ObserveReplicationActionContext> of(ObserveReplicationContext replicationContext, String tripId) { - return new TripSeineReplicationActionContextsBuilder(replicationContext) - .createFirstActionContext(ObserveEntityEnum.TripSeine, tripId) - .addGearUseFeaturesActionContext() - .addGearUseFeatureMeasurementActionContext() - .addRouteActionContext() - .addActivityActionContext() - .addActivityObservedSystemActionContext() - .addSetActionContext() - .addSchoolEstimateActionContext() - .addNonTargetCatchActionContext() - .addNonTargetSampleActionContext() - .addNonTargetLengthActionContext() - .addTargetCatchActionContext() - .addTargetSampleActionContext() - .addTargetLengthActionContext() - - .addFloatingObjectActionContext() - .addObjectObservedSpeciesActionContext() - .addObjectSchoolEstimateActionContext() - .addTransmittingBuoyActionContext() - .build(); - } - - protected TripSeineReplicationActionContextsBuilder(ObserveReplicationContext replicationContext) { - super(replicationContext); - } - - public TripSeineReplicationActionContextsBuilder addGearUseFeaturesActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.TripSeine, ObserveEntityEnum.GearUseFeaturesSeine, 1); - actionContext.setFromClause(); - actionContext.setWhereJoinTopiaIdEqualsClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addGearUseFeatureMeasurementActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.GearUseFeaturesSeine, ObserveEntityEnum.GearUseFeaturesMeasurementSeine, 2); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addRouteActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.TripSeine, ObserveEntityEnum.Route, 3); - actionContext.setFromClause(); - actionContext.setWhereJoinTopiaIdEqualsClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addSetActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.ActivitySeine, ObserveEntityEnum.SetSeine, 4); - actionContext.addInverseInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addActivityActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.Route, ObserveEntityEnum.ActivitySeine, 5); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addActivityObservedSystemActionContext() { - ObserveReplicationActionContext actionContext = createAssociationActionContext(ObserveEntityEnum.ActivitySeine, "ObservedSystem", 6); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addFloatingObjectActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.ActivitySeine, ObserveEntityEnum.FloatingObject, 7); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addSchoolEstimateActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetSeine, ObserveEntityEnum.SchoolEstimate, 10); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addNonTargetCatchActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetSeine, ObserveEntityEnum.NonTargetCatch, 11); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addNonTargetSampleActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetSeine, ObserveEntityEnum.NonTargetSample, 12); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addNonTargetLengthActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.NonTargetSample, ObserveEntityEnum.NonTargetLength, 13); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addTargetCatchActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetSeine, ObserveEntityEnum.TargetCatch, 14); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addTargetSampleActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.SetSeine, ObserveEntityEnum.TargetSample, 15); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addTargetLengthActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.TargetSample, ObserveEntityEnum.TargetLength, 16); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addObjectObservedSpeciesActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.FloatingObject, ObserveEntityEnum.ObjectObservedSpecies, 20); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addObjectSchoolEstimateActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.FloatingObject, ObserveEntityEnum.ObjectSchoolEstimate, 21); - actionContext.addInnerJoinClause(); - return this; - } - - public TripSeineReplicationActionContextsBuilder addTransmittingBuoyActionContext() { - ObserveReplicationActionContext actionContext = createActionContext(ObserveEntityEnum.FloatingObject, ObserveEntityEnum.TransmittingBuoy, 22); - actionContext.addInnerJoinClause(); - return this; - } - -} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.