This is an automated email from the git hooks/post-receive script. New commit to branch feature/6688 in repository tutti. See http://git.codelutin.com/tutti.git commit 4dee86b695581f179794996247efe126b401c4a0 Author: Tony CHEMIT <chemit@codelutin.com> Date: Fri Feb 20 17:21:31 2015 +0100 add some methods to create a collections of entities --- .../tutti/persistence/TuttiPersistenceImpl.java | 25 +++++++++ .../persistence/TuttiPersistenceNoDbImpl.java | 61 +++++++++++++++++++++ .../service/AccidentalBatchPersistenceService.java | 4 ++ .../AccidentalBatchPersistenceServiceImpl.java | 41 +++++++++----- .../service/BenthosBatchPersistenceService.java | 4 ++ .../BenthosBatchPersistenceServiceImpl.java | 43 +++++++++++++-- ...dividualObservationBatchPersistenceService.java | 4 ++ ...dualObservationBatchPersistenceServiceImpl.java | 63 +++++++++++++++++----- .../MarineLitterBatchPersistenceService.java | 5 ++ .../MarineLitterBatchPersistenceServiceImpl.java | 41 +++++++++++--- .../service/SpeciesBatchPersistenceService.java | 4 ++ .../SpeciesBatchPersistenceServiceImpl.java | 48 +++++++++++++++-- .../ifremer/tutti/service/PersistenceService.java | 31 +++++++++-- 13 files changed, 333 insertions(+), 41 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java index c8664f9..d440f2f 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java @@ -989,6 +989,11 @@ public class TuttiPersistenceImpl implements TuttiPersistence { } @Override + public Collection<SpeciesBatch> createSpeciesBatches(String fishingOperationId, Collection<SpeciesBatch> beans) { + return getSpeciesBatchService().createSpeciesBatches(fishingOperationId, beans); + } + + @Override public SpeciesBatch saveSpeciesBatch(SpeciesBatch bean) { return getSpeciesBatchService().saveSpeciesBatch(bean); } @@ -1043,6 +1048,11 @@ public class TuttiPersistenceImpl implements TuttiPersistence { } @Override + public Collection<BenthosBatch> createBenthosBatches(String fishingOperationId, Collection<BenthosBatch> beans) { + return getBenthosBatchService().createBenthosBatches(fishingOperationId, beans); + } + + @Override public BenthosBatch saveBenthosBatch(BenthosBatch bean) { return getBenthosBatchService().saveBenthosBatch(bean); } @@ -1098,6 +1108,11 @@ public class TuttiPersistenceImpl implements TuttiPersistence { } @Override + public Collection<MarineLitterBatch> createMarineLitterBatches(String fishingOperationId, Collection<MarineLitterBatch> beans) { + return getMarineLitterBatchService().createMarineLitterBatches(fishingOperationId, beans); + } + + @Override public MarineLitterBatch saveMarineLitterBatch(MarineLitterBatch bean) { return getMarineLitterBatchService().saveMarineLitterBatch(bean); } @@ -1122,6 +1137,11 @@ public class TuttiPersistenceImpl implements TuttiPersistence { } @Override + public Collection<AccidentalBatch> createAccidentalBatches(String fishingOperationId, Collection<AccidentalBatch> beans) { + return getAccidentalBatchService().createAccidentalBatches(fishingOperationId, beans); + } + + @Override public AccidentalBatch saveAccidentalBatch(AccidentalBatch bean) { return getAccidentalBatchService().saveAccidentalBatch(bean); } @@ -1151,6 +1171,11 @@ public class TuttiPersistenceImpl implements TuttiPersistence { } @Override + public Collection<IndividualObservationBatch> createIndividualObservationBatches(String fishingOperationId, Collection<IndividualObservationBatch> beans) { + return getIndividualObservationBatchService().createIndividualObservationBatches(fishingOperationId, beans); + } + + @Override public IndividualObservationBatch saveIndividualObservationBatch(IndividualObservationBatch bean) { return getIndividualObservationBatchService().saveIndividualObservationBatch(bean); } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java index ba9f0b4..7ab5eeb 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java @@ -386,6 +386,10 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { throw notImplemented(); } + //------------------------------------------------------------------------// + //-- Program methods --// + //------------------------------------------------------------------------// + @Override public List<Program> getAllProgram() { throw notImplemented(); @@ -406,6 +410,10 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { throw notImplemented(); } + //------------------------------------------------------------------------// + //-- Cruise methods --// + //------------------------------------------------------------------------// + @Override public List<Cruise> getAllCruise(String programId) { throw notImplemented(); @@ -448,6 +456,10 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { throw notImplemented(); } + //------------------------------------------------------------------------// + //-- Protocol methods --// + //------------------------------------------------------------------------// + @Override public TuttiProtocol getProtocol() { throw notImplemented(); @@ -498,6 +510,10 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { throw notImplemented(); } + //------------------------------------------------------------------------// + //-- Fishing operation methods --// + //------------------------------------------------------------------------// + @Override public int getFishingOperationCount(String cruiseId) { throw notImplemented(); @@ -543,6 +559,10 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { throw notImplemented(); } + //------------------------------------------------------------------------// + //-- Catch batch methods --// + //------------------------------------------------------------------------// + @Override public CatchBatch getCatchBatchFromFishingOperation(String id) { throw notImplemented(); @@ -563,6 +583,10 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { throw notImplemented(); } + //------------------------------------------------------------------------// + //-- Species batch methods --// + //------------------------------------------------------------------------// + @Override public BatchContainer<SpeciesBatch> getRootSpeciesBatch(String fishingOperationId, boolean validateTree) throws InvalidBatchModelException { throw notImplemented(); @@ -574,6 +598,11 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { } @Override + public Collection<SpeciesBatch> createSpeciesBatches(String fishingOperationId, Collection<SpeciesBatch> beans) { + throw notImplemented(); + } + + @Override public SpeciesBatch saveSpeciesBatch(SpeciesBatch bean) { throw notImplemented(); } @@ -613,6 +642,10 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { throw notImplemented(); } + //------------------------------------------------------------------------// + //-- Benthos batch methods --// + //------------------------------------------------------------------------// + @Override public BatchContainer<BenthosBatch> getRootBenthosBatch(String fishingOperationId, boolean validateTree) throws InvalidBatchModelException { throw notImplemented(); @@ -624,6 +657,11 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { } @Override + public Collection<BenthosBatch> createBenthosBatches(String fishingOperationId, Collection<BenthosBatch> beans) { + throw notImplemented(); + } + + @Override public BenthosBatch saveBenthosBatch(BenthosBatch bean) { throw notImplemented(); } @@ -663,6 +701,10 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { throw notImplemented(); } + //------------------------------------------------------------------------// + //-- Marine litter batch methods --// + //------------------------------------------------------------------------// + @Override public BatchContainer<MarineLitterBatch> getRootMarineLitterBatch(String fishingOperationId) { throw notImplemented(); @@ -674,6 +716,11 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { } @Override + public Collection<MarineLitterBatch> createMarineLitterBatches(String fishingOperationId, Collection<MarineLitterBatch> beans) { + throw notImplemented(); + } + + @Override public MarineLitterBatch saveMarineLitterBatch(MarineLitterBatch bean) { throw notImplemented(); } @@ -683,6 +730,10 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { throw notImplemented(); } + //------------------------------------------------------------------------// + //-- Accidental Batch methods --// + //------------------------------------------------------------------------// + @Override public List<AccidentalBatch> getAllAccidentalBatch(String fishingOperationId) { throw notImplemented(); @@ -694,6 +745,11 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { } @Override + public Collection<AccidentalBatch> createAccidentalBatches(String fishingOperationId, Collection<AccidentalBatch> beans) { + throw notImplemented(); + } + + @Override public AccidentalBatch saveAccidentalBatch(AccidentalBatch bean) { throw notImplemented(); } @@ -744,6 +800,11 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { } @Override + public Collection<IndividualObservationBatch> createIndividualObservationBatches(String fishingOperationId, Collection<IndividualObservationBatch> beans) { + throw notImplemented(); + } + + @Override public IndividualObservationBatch saveIndividualObservationBatch(IndividualObservationBatch bean) { throw notImplemented(); } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceService.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceService.java index 8ed671f..3961572 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceService.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceService.java @@ -26,6 +26,7 @@ import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor; import fr.ifremer.tutti.persistence.entities.data.AccidentalBatch; import org.springframework.transaction.annotation.Transactional; +import java.util.Collection; import java.util.List; /** @@ -43,6 +44,9 @@ public interface AccidentalBatchPersistenceService extends TuttiPersistenceServi AccidentalBatch createAccidentalBatch(AccidentalBatch bean); @Transactional(readOnly = false) + Collection<AccidentalBatch> createAccidentalBatches(String fishingOperationId, Collection<AccidentalBatch> beans); + + @Transactional(readOnly = false) AccidentalBatch saveAccidentalBatch(AccidentalBatch bean); @Transactional(readOnly = false) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java index f1ae0a7..fe5f6d8 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/AccidentalBatchPersistenceServiceImpl.java @@ -57,6 +57,8 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -128,19 +130,17 @@ public class AccidentalBatchPersistenceServiceImpl extends AbstractPersistenceSe } @Override - public AccidentalBatch createAccidentalBatch(AccidentalBatch bean) { - Preconditions.checkNotNull(bean); - Preconditions.checkState(TuttiEntities.isNew(bean)); - Preconditions.checkNotNull(bean.getSpecies()); - Preconditions.checkNotNull(bean.getFishingOperation()); - Preconditions.checkState(!TuttiEntities.isNew(bean.getFishingOperation())); + public Collection<AccidentalBatch> createAccidentalBatches(String fishingOperationId, Collection<AccidentalBatch> beans) { + + Preconditions.checkNotNull(beans); + Collection<AccidentalBatch> result = new ArrayList<>(); + + for (AccidentalBatch bean : beans) { + AccidentalBatch created = createAccidentalBatch(bean); + result.add(created); + } + return result; - Sample sample = Sample.Factory.newInstance(); - beanToEntity(bean, sample); - samplePersistenceHelper.create(sample); - bean.setId(String.valueOf(sample.getId())); - synchronizationStatusHelper.setDirty(bean); - return bean; } @Override @@ -188,6 +188,23 @@ public class AccidentalBatchPersistenceServiceImpl extends AbstractPersistenceSe // -- Internal methods --// // ------------------------------------------------------------------------// + @Override + public AccidentalBatch createAccidentalBatch(AccidentalBatch bean) { + Preconditions.checkNotNull(bean); + Preconditions.checkState(TuttiEntities.isNew(bean)); + Preconditions.checkNotNull(bean.getSpecies()); + Preconditions.checkNotNull(bean.getFishingOperation()); + Preconditions.checkState(!TuttiEntities.isNew(bean.getFishingOperation())); + + //TODO Optimize this (in the method we load each time the fishing operation...) + Sample sample = Sample.Factory.newInstance(); + beanToEntity(bean, sample); + samplePersistenceHelper.create(sample); + bean.setId(String.valueOf(sample.getId())); + synchronizationStatusHelper.setDirty(bean); + return bean; + } + protected void beanToEntity(AccidentalBatch source, Sample target) { if (TuttiEntities.isNew(source)) { diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceService.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceService.java index 430a2b5..5ec5858 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceService.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceService.java @@ -31,6 +31,7 @@ import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; import fr.ifremer.tutti.persistence.entities.referential.Species; import org.springframework.transaction.annotation.Transactional; +import java.util.Collection; import java.util.List; /** @@ -63,6 +64,9 @@ public interface BenthosBatchPersistenceService extends TuttiPersistenceServiceI BenthosBatch createBenthosBatch(BenthosBatch bean, String parentBatchId); @Transactional(readOnly = false) + Collection<BenthosBatch> createBenthosBatches(String fishingOperationId, Collection<BenthosBatch> beans); + + @Transactional(readOnly = false) BenthosBatch saveBenthosBatch(BenthosBatch bean); @Transactional(readOnly = false) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java index 8db972f..dee2116 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/BenthosBatchPersistenceServiceImpl.java @@ -31,6 +31,7 @@ import fr.ifremer.adagio.core.dao.data.batch.CatchBatch; import fr.ifremer.adagio.core.dao.data.batch.SortingBatch; import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon; import fr.ifremer.tutti.persistence.InvalidBatchModelException; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.BenthosBatch; import fr.ifremer.tutti.persistence.entities.data.BenthosBatchFrequency; @@ -54,6 +55,7 @@ import javax.annotation.Resource; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.List; @@ -170,16 +172,51 @@ public class BenthosBatchPersistenceServiceImpl extends AbstractPersistenceServi } @Override - public BenthosBatch createBenthosBatch(BenthosBatch bean, - String parentBatchId) { + public BenthosBatch createBenthosBatch(BenthosBatch bean, String parentBatchId) { Preconditions.checkNotNull(bean); - Preconditions.checkArgument(bean.getId() == null); + Preconditions.checkArgument(TuttiEntities.isNew(bean)); Preconditions.checkNotNull(bean.getSpecies()); Preconditions.checkNotNull(bean.getSpecies().getId()); Preconditions.checkNotNull(bean.getFishingOperation()); Preconditions.checkNotNull(bean.getFishingOperation().getId()); CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(bean.getFishingOperation().getId(), false); + BenthosBatch created = createBenthosBatch(bean, parentBatchId, catchBatch); +// SortingBatch batch = SortingBatch.Factory.newInstance(); +// beanToEntity(bean, batch, parentBatchId, catchBatch); +// bean = batchHelper.createSortingBatch(bean, catchBatch, batch); + + return created; + } + + @Override + public Collection<BenthosBatch> createBenthosBatches(String fishingOperationId, Collection<BenthosBatch> beans) { + + Preconditions.checkNotNull(beans); + Preconditions.checkNotNull(fishingOperationId); + + CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(fishingOperationId, false); + + Collection<BenthosBatch> result = new ArrayList<>(); + for (BenthosBatch bean : beans) { + + BenthosBatch created = createBenthosBatch(bean, null, catchBatch); + result.add(created); + + } + return result; + + } + + protected BenthosBatch createBenthosBatch(BenthosBatch bean, String parentBatchId, CatchBatch catchBatch) { + + Preconditions.checkNotNull(bean); + Preconditions.checkArgument(TuttiEntities.isNew(bean)); + Preconditions.checkNotNull(bean.getSpecies()); + Preconditions.checkNotNull(bean.getSpecies().getId()); + Preconditions.checkNotNull(bean.getFishingOperation()); + Preconditions.checkNotNull(bean.getFishingOperation().getId()); + SortingBatch batch = SortingBatch.Factory.newInstance(); beanToEntity(bean, batch, parentBatchId, catchBatch); bean = batchHelper.createSortingBatch(bean, catchBatch, batch); diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceService.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceService.java index d588ad9..bd4c8aa 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceService.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceService.java @@ -26,6 +26,7 @@ import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor; import fr.ifremer.tutti.persistence.entities.data.IndividualObservationBatch; import org.springframework.transaction.annotation.Transactional; +import java.util.Collection; import java.util.List; /** @@ -43,6 +44,9 @@ public interface IndividualObservationBatchPersistenceService extends TuttiPersi IndividualObservationBatch createIndividualObservationBatch(IndividualObservationBatch bean); @Transactional(readOnly = false) + Collection<IndividualObservationBatch> createIndividualObservationBatches(String fishingOperationId, Collection<IndividualObservationBatch> beans); + + @Transactional(readOnly = false) IndividualObservationBatch saveIndividualObservationBatch(IndividualObservationBatch bean); @Transactional(readOnly = false) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java index ccb9772..04c2b03 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/IndividualObservationBatchPersistenceServiceImpl.java @@ -59,6 +59,8 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.Iterator; import java.util.List; @@ -99,7 +101,7 @@ public class IndividualObservationBatchPersistenceServiceImpl extends AbstractPe Integer operationId = Integer.valueOf(fishingOperationId); // Get catch Batch - Batch catchBatch = getBatch(operationId); + Batch catchBatch = getBatch(fishingOperationId); Iterator<Object[]> list = queryList( "allFishingOperationSamplesWithBatch", @@ -146,21 +148,38 @@ public class IndividualObservationBatchPersistenceServiceImpl extends AbstractPe public IndividualObservationBatch createIndividualObservationBatch(IndividualObservationBatch bean) { Preconditions.checkNotNull(bean); Preconditions.checkState(TuttiEntities.isNew(bean)); - Preconditions.checkNotNull(bean.getSpecies()); +// Preconditions.checkNotNull(bean.getSpecies()); FishingOperation fishingOperation = bean.getFishingOperation(); Preconditions.checkNotNull(fishingOperation); Preconditions.checkState(!TuttiEntities.isNew(fishingOperation)); // Get catch Batch - Batch catchBatch = getBatch(fishingOperation.getIdAsInt()); + Batch catchBatch = getBatch(fishingOperation.getId()); + IndividualObservationBatch created = createIndividualObservationBatch(bean, catchBatch); + return created; +// Sample sample = Sample.Factory.newInstance(); +// beanToEntity(bean, sample, catchBatch); +// samplePersistenceHelper.create(sample); +// bean.setId(String.valueOf(sample.getId())); +// synchronizationStatusHelper.setDirty(bean); +// return bean; + } - Sample sample = Sample.Factory.newInstance(); - beanToEntity(bean, sample, catchBatch); - samplePersistenceHelper.create(sample); - bean.setId(String.valueOf(sample.getId())); - synchronizationStatusHelper.setDirty(bean); - return bean; + @Override + public Collection<IndividualObservationBatch> createIndividualObservationBatches(String fishingOperationId, Collection<IndividualObservationBatch> beans) { + + // Get catch Batch + Batch catchBatch = getBatch(fishingOperationId); + + Collection<IndividualObservationBatch> result = new ArrayList<>(); + for (IndividualObservationBatch bean : beans) { + + IndividualObservationBatch created = createIndividualObservationBatch(bean, catchBatch); + result.add(created); + + } + return result; } @Override @@ -174,7 +193,7 @@ public class IndividualObservationBatchPersistenceServiceImpl extends AbstractPe Preconditions.checkState(!TuttiEntities.isNew(fishingOperation)); // Get catch Batch - Batch catchBatch = getBatch(fishingOperation.getIdAsInt()); + Batch catchBatch = getBatch(fishingOperation.getId()); Sample sample = samplePersistenceHelper.load(bean.getIdAsInt()); @@ -215,6 +234,26 @@ public class IndividualObservationBatchPersistenceServiceImpl extends AbstractPe // -- Internal methods --// // ------------------------------------------------------------------------// + protected IndividualObservationBatch createIndividualObservationBatch(IndividualObservationBatch bean, Batch catchBatch) { + + Preconditions.checkNotNull(bean); + Preconditions.checkState(TuttiEntities.isNew(bean)); + Preconditions.checkNotNull(bean.getSpecies()); + + FishingOperation fishingOperation = bean.getFishingOperation(); + Preconditions.checkNotNull(fishingOperation); + Preconditions.checkState(!TuttiEntities.isNew(fishingOperation)); + + //TODO Optimize this (in the method we load each time the fishing operation...) + Sample sample = Sample.Factory.newInstance(); + beanToEntity(bean, sample, catchBatch); + samplePersistenceHelper.create(sample); + bean.setId(String.valueOf(sample.getId())); + synchronizationStatusHelper.setDirty(bean); + return bean; + + } + protected void beanToEntity(IndividualObservationBatch source, Sample target, Batch vracSpeciesBatch) { @@ -308,10 +347,10 @@ public class IndividualObservationBatchPersistenceServiceImpl extends AbstractPe caracteristics); } - protected Batch getBatch(Integer operationId) { + protected Batch getBatch(String operationId) { Preconditions.checkNotNull(operationId); - CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(operationId.toString(), false); + CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(operationId, false); return catchBatch; } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceService.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceService.java index 30ab527..31e04f1 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceService.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceService.java @@ -27,6 +27,8 @@ import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.MarineLitterBatch; import org.springframework.transaction.annotation.Transactional; +import java.util.Collection; + /** * CRUD of {@link MarineLitterBatch} entity. * @@ -52,6 +54,9 @@ public interface MarineLitterBatchPersistenceService extends TuttiPersistenceSer MarineLitterBatch createMarineLitterBatch(MarineLitterBatch bean); @Transactional(readOnly = false) + Collection<MarineLitterBatch> createMarineLitterBatches(String fishingOperationId, Collection<MarineLitterBatch> beans); + + @Transactional(readOnly = false) MarineLitterBatch saveMarineLitterBatch(MarineLitterBatch bean); @Transactional(readOnly = false) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java index 61fd223..f28acbd 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/MarineLitterBatchPersistenceServiceImpl.java @@ -46,6 +46,7 @@ import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.Collection; import java.util.Map; import java.util.Set; @@ -130,19 +131,47 @@ public class MarineLitterBatchPersistenceServiceImpl extends AbstractPersistence @Override public MarineLitterBatch createMarineLitterBatch(MarineLitterBatch bean) { Preconditions.checkNotNull(bean); - Preconditions.checkArgument(bean.getId() == null); Preconditions.checkNotNull(bean.getFishingOperation()); Preconditions.checkNotNull(bean.getFishingOperation().getId()); + + CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(bean.getFishingOperation().getId(), false); + + MarineLitterBatch created = createMarineLitterBatch(catchBatch, bean); + return created; + + } + + @Override + public Collection<MarineLitterBatch> createMarineLitterBatches(String fishingOperationId, Collection<MarineLitterBatch> beans) { + + Preconditions.checkNotNull(beans); + + CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(fishingOperationId, false); + + Collection<MarineLitterBatch> result = new ArrayList<>(beans.size()); + + for (MarineLitterBatch bean : beans) { + + MarineLitterBatch created = createMarineLitterBatch(catchBatch, bean); + result.add(created); + + } + return result; + } + + protected MarineLitterBatch createMarineLitterBatch(CatchBatch catchBatch, MarineLitterBatch bean) { + + Preconditions.checkNotNull(bean); + Preconditions.checkArgument(bean.getId() == null); Preconditions.checkNotNull(bean.getMarineLitterCategory()); Preconditions.checkNotNull(bean.getMarineLitterSizeCategory()); Preconditions.checkNotNull(bean.getNumber()); - CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(bean.getFishingOperation().getId(), false); SortingBatch batch = SortingBatch.Factory.newInstance(); beanToEntity(bean, batch, catchBatch); - bean = batchHelper.createSortingBatch(bean, catchBatch, batch); + MarineLitterBatch created = batchHelper.createSortingBatch(bean, catchBatch, batch); + return created; - return bean; } @Override @@ -203,8 +232,8 @@ public class MarineLitterBatchPersistenceServiceImpl extends AbstractPersistence SortingBatch target, CatchBatch catchBatch) { - Preconditions.checkNotNull(source.getFishingOperation()); - Preconditions.checkNotNull(source.getFishingOperation().getId()); +// Preconditions.checkNotNull(source.getFishingOperation()); +// Preconditions.checkNotNull(source.getFishingOperation().getId()); // If parent and root need to be set if (target.getId() == null || target.getRootBatch() == null) { diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java index 8975c2c..cb648ec 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceService.java @@ -31,6 +31,7 @@ import fr.ifremer.tutti.persistence.entities.data.SpeciesBatchFrequency; import fr.ifremer.tutti.persistence.entities.referential.Species; import org.springframework.transaction.annotation.Transactional; +import java.util.Collection; import java.util.List; /** @@ -65,6 +66,9 @@ public interface SpeciesBatchPersistenceService extends TuttiPersistenceServiceI SpeciesBatch createSpeciesBatch(SpeciesBatch bean, String parentBatchId); @Transactional(readOnly = false) + Collection<SpeciesBatch> createSpeciesBatches(String fishingOperationId, Collection<SpeciesBatch> beans); + + @Transactional(readOnly = false) SpeciesBatch saveSpeciesBatch(SpeciesBatch bean); @Transactional(readOnly = false) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java index 4b97288..b91d021 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/SpeciesBatchPersistenceServiceImpl.java @@ -31,6 +31,7 @@ import fr.ifremer.adagio.core.dao.data.batch.CatchBatch; import fr.ifremer.adagio.core.dao.data.batch.SortingBatch; import fr.ifremer.adagio.core.dao.referential.taxon.ReferenceTaxon; import fr.ifremer.tutti.persistence.InvalidBatchModelException; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.BatchContainer; import fr.ifremer.tutti.persistence.entities.data.FishingOperation; import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel; @@ -54,6 +55,7 @@ import javax.annotation.Resource; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Collection; import java.util.Collections; import java.util.List; @@ -179,16 +181,54 @@ public class SpeciesBatchPersistenceServiceImpl extends AbstractPersistenceServi } @Override - public SpeciesBatch createSpeciesBatch(SpeciesBatch bean, - String parentBatchId) { + public SpeciesBatch createSpeciesBatch(SpeciesBatch bean, String parentBatchId) { Preconditions.checkNotNull(bean); - Preconditions.checkArgument(bean.getId() == null); + Preconditions.checkArgument(TuttiEntities.isNew(bean)); Preconditions.checkNotNull(bean.getSpecies()); Preconditions.checkNotNull(bean.getSpecies().getId()); Preconditions.checkNotNull(bean.getFishingOperation()); Preconditions.checkNotNull(bean.getFishingOperation().getId()); CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(bean.getFishingOperation().getId(), false); + + SpeciesBatch created = createSpeciesBatch(bean, parentBatchId, catchBatch); +// +// SortingBatch batch = SortingBatch.Factory.newInstance(); +// beanToEntity(bean, batch, parentBatchId, catchBatch); +// bean = batchHelper.createSortingBatch(bean, catchBatch, batch); + + return created; + } + + @Override + public Collection<SpeciesBatch> createSpeciesBatches(String fishingOperationId, Collection<SpeciesBatch> beans) { + + Preconditions.checkNotNull(beans); + Preconditions.checkNotNull(fishingOperationId); + + CatchBatch catchBatch = batchHelper.getRootCatchBatchByFishingOperationId(fishingOperationId, false); + + Collection<SpeciesBatch> result = new ArrayList<>(); + for (SpeciesBatch bean : beans) { + + SpeciesBatch created = createSpeciesBatch(bean, null, catchBatch); + result.add(created); + + } + return result; + + } + + + protected SpeciesBatch createSpeciesBatch(SpeciesBatch bean, String parentBatchId, CatchBatch catchBatch) { + + Preconditions.checkNotNull(bean); + Preconditions.checkArgument(TuttiEntities.isNew(bean)); + Preconditions.checkNotNull(bean.getSpecies()); + Preconditions.checkNotNull(bean.getSpecies().getId()); + Preconditions.checkNotNull(bean.getFishingOperation()); + Preconditions.checkNotNull(bean.getFishingOperation().getId()); + SortingBatch batch = SortingBatch.Factory.newInstance(); beanToEntity(bean, batch, parentBatchId, catchBatch); bean = batchHelper.createSortingBatch(bean, catchBatch, batch); @@ -199,7 +239,7 @@ public class SpeciesBatchPersistenceServiceImpl extends AbstractPersistenceServi @Override public SpeciesBatch saveSpeciesBatch(SpeciesBatch bean) { Preconditions.checkNotNull(bean); - Preconditions.checkNotNull(bean.getId()); + Preconditions.checkArgument(!TuttiEntities.isNew(bean)); Integer batchId = bean.getIdAsInt(); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java index 67c3413..1e1ff30 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java @@ -1256,12 +1256,16 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer } @Override - public SpeciesBatch createSpeciesBatch(SpeciesBatch bean, - String parentBatchId) { + public SpeciesBatch createSpeciesBatch(SpeciesBatch bean, String parentBatchId) { return driver.createSpeciesBatch(bean, parentBatchId); } @Override + public Collection<SpeciesBatch> createSpeciesBatches(String fishingOperationId, Collection<SpeciesBatch> beans) { + return driver.createSpeciesBatches(fishingOperationId, beans); + } + + @Override public SpeciesBatch saveSpeciesBatch(SpeciesBatch bean) { return driver.saveSpeciesBatch(bean); } @@ -1312,12 +1316,16 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer } @Override - public BenthosBatch createBenthosBatch(BenthosBatch bean, - String parentBatchId) { + public BenthosBatch createBenthosBatch(BenthosBatch bean, String parentBatchId) { return driver.createBenthosBatch(bean, parentBatchId); } @Override + public Collection<BenthosBatch> createBenthosBatches(String fishingOperationId, Collection<BenthosBatch> beans) { + return driver.createBenthosBatches(fishingOperationId, beans); + } + + @Override public BenthosBatch saveBenthosBatch(BenthosBatch bean) { return driver.saveBenthosBatch(bean); } @@ -1373,6 +1381,11 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer } @Override + public Collection<MarineLitterBatch> createMarineLitterBatches(String fishingOperationId, Collection<MarineLitterBatch> beans) { + return driver.createMarineLitterBatches(fishingOperationId, beans); + } + + @Override public MarineLitterBatch saveMarineLitterBatch(MarineLitterBatch bean) { return driver.saveMarineLitterBatch(bean); } @@ -1392,6 +1405,11 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer } @Override + public Collection<AccidentalBatch> createAccidentalBatches(String fishingOperationId, Collection<AccidentalBatch> beans) { + return driver.createAccidentalBatches(fishingOperationId, beans); + } + + @Override public AccidentalBatch createAccidentalBatch(AccidentalBatch bean) { return driver.createAccidentalBatch(bean); } @@ -1426,6 +1444,11 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer } @Override + public Collection<IndividualObservationBatch> createIndividualObservationBatches(String fishingOperationId, Collection<IndividualObservationBatch> beans) { + return driver.createIndividualObservationBatches(fishingOperationId, beans); + } + + @Override public IndividualObservationBatch saveIndividualObservationBatch(IndividualObservationBatch bean) { return driver.saveIndividualObservationBatch(bean); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.