This is an automated email from the git hooks/post-receive script. New commit to branch feature/8180 in repository echobase. See https://gitlab.nuiton.org/codelutin/echobase.git commit 612b6a3dcd3d18cf0a24af7bf4f2333d97dbad07 Author: Julien Ruchaud <julien.ruchaud@debux.org> Date: Wed Jun 29 10:35:11 2016 +0200 Refactoring on echotype import to make place for mooring --- .../echobase/entities/DataAcousticProvider.java | 12 +- .../echobase/entities/data/MooringImpl.java | 16 +++ .../echobase/entities/data/TransectImpl.java | 16 +++ .../fr/ifremer/echobase/services/csv/CellAble.java | 7 +- .../csv/{CellAble.java => ProviderAble.java} | 18 +-- ...ava => ImportResultsEchotypeActionSupport.java} | 70 +++++------- .../actions/MooringCommonsMooringImportAction.java | 2 - .../VoyageResultsVoyageEchotypeImportAction.java | 121 ++------------------- .../importdata/csv/AcousticImportExportModel.java | 1 - ...mportRow.java => ResultsEchotypeImportRow.java} | 34 ++---- ...hotypeAndSpeciesCategoryAndLengthImportRow.java | 13 ++- ...sEsduByEchotypeAndSpeciesCategoryImportRow.java | 13 ++- .../csv/VoyageResultsEsduByEchotypeImportRow.java | 15 ++- ...esultsEsduBySpeciesAndAgeCategoryImportRow.java | 13 ++- .../VoyageResultsRegionCellResultImportRow.java | 13 ++- .../csv/VoyageResultsVoyageEchotypeImportRow.java | 59 +++------- 16 files changed, 161 insertions(+), 262 deletions(-) diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DataAcousticProvider.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DataAcousticProvider.java index 2506b7d..450b9f1 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DataAcousticProvider.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/DataAcousticProvider.java @@ -1,6 +1,7 @@ package fr.ifremer.echobase.entities; import fr.ifremer.echobase.entities.data.DataAcquisition; +import fr.ifremer.echobase.entities.data.Echotype; import java.util.Collection; import org.nuiton.topia.persistence.TopiaEntity; @@ -34,11 +35,20 @@ import org.nuiton.topia.persistence.TopiaEntity; public interface DataAcousticProvider<E extends TopiaEntity> { public String getName(); + E getEntity(); + + // For Acoustic import boolean isDataAcquisitionEmpty(); Collection<DataAcquisition> getDataAcquisition(); public void addDataAcquisition(DataAcquisition dataAcquisition); - E getEntity(); + + // For Echotype import + public boolean isEchotypeEmpty(); + + public Collection<Echotype> getEchotype(); + + public void addEchotype(Echotype echotype); } diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/MooringImpl.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/MooringImpl.java index 6858c7d..1a8cd77 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/MooringImpl.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/MooringImpl.java @@ -1,6 +1,7 @@ package fr.ifremer.echobase.entities.data; import fr.ifremer.echobase.entities.DataAcousticProvider; +import java.util.Collection; /** * Default implementation of {@link Mooring}. @@ -27,4 +28,19 @@ public class MooringImpl extends MooringAbstract implements DataAcousticProvider return this; } + @Override + public boolean isEchotypeEmpty() { + throw new UnsupportedOperationException(); + } + + @Override + public Collection<Echotype> getEchotype() { + throw new UnsupportedOperationException(); + } + + @Override + public void addEchotype(Echotype echotype) { + throw new UnsupportedOperationException(); + } + } //MooringImpl diff --git a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/TransectImpl.java b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/TransectImpl.java index 11405f7..0162a71 100644 --- a/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/TransectImpl.java +++ b/echobase-domain/src/main/java/fr/ifremer/echobase/entities/data/TransectImpl.java @@ -1,6 +1,7 @@ package fr.ifremer.echobase.entities.data; import fr.ifremer.echobase.entities.DataAcousticProvider; +import java.util.Collection; /** * Default implementation of {@link Transect}. @@ -21,5 +22,20 @@ public class TransectImpl extends TransectAbstract implements DataAcousticProvid public Transect getEntity() { return this; } + + @Override + public boolean isEchotypeEmpty() { + return getTransit().getVoyage().isEchotypeEmpty(); + } + + @Override + public Collection<Echotype> getEchotype() { + return getTransit().getVoyage().getEchotype(); + } + + @Override + public void addEchotype(Echotype echotype) { + getTransit().getVoyage().addEchotype(echotype); + } } //TransectImpl diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CellAble.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CellAble.java index 8fee5b8..55ea14e 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CellAble.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CellAble.java @@ -22,7 +22,6 @@ package fr.ifremer.echobase.services.csv; */ import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.data.Voyage; /** * Created on 05/04/16. @@ -30,11 +29,7 @@ import fr.ifremer.echobase.entities.data.Voyage; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public interface CellAble { - - Voyage getVoyage(); - - void setVoyage(Voyage voyage); +public interface CellAble extends ProviderAble { Cell getCell(); diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CellAble.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/ProviderAble.java similarity index 72% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CellAble.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/csv/ProviderAble.java index 8fee5b8..64a0363 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/CellAble.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/csv/ProviderAble.java @@ -21,23 +21,17 @@ package fr.ifremer.echobase.services.csv; * #L% */ -import fr.ifremer.echobase.entities.data.Cell; -import fr.ifremer.echobase.entities.data.Voyage; +import fr.ifremer.echobase.entities.DataAcousticProvider; +import org.nuiton.topia.persistence.TopiaEntity; /** - * Created on 05/04/16. - * - * @author Tony Chemit - chemit@codelutin.com + * @author Julien Ruchaud - ruchaud@codelutin.com * @since 4.0 */ -public interface CellAble { +public interface ProviderAble<E extends TopiaEntity> { - Voyage getVoyage(); + DataAcousticProvider<E> getProvider(); - void setVoyage(Voyage voyage); - - Cell getCell(); - - void setCell(Cell cell); + void setProvider(DataAcousticProvider<E> provider); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsVoyageEchotypeImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportResultsEchotypeActionSupport.java similarity index 63% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsVoyageEchotypeImportAction.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportResultsEchotypeActionSupport.java index be5e18d..c50ef55 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsVoyageEchotypeImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/ImportResultsEchotypeActionSupport.java @@ -24,18 +24,18 @@ package fr.ifremer.echobase.services.service.importdata.actions; import com.google.common.base.Preconditions; import com.google.common.base.Predicate; import com.google.common.collect.Iterables; +import fr.ifremer.echobase.entities.DataAcousticProvider; import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.Echotypes; -import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Species; import fr.ifremer.echobase.io.InputFile; import fr.ifremer.echobase.services.service.importdata.DuplicatedEchotypeAssociationException; import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; import fr.ifremer.echobase.services.service.importdata.MismatchVoyageException; -import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImportDataContext; -import fr.ifremer.echobase.services.service.importdata.csv.VoyageResultsVoyageEchotypeImportExportModel; -import fr.ifremer.echobase.services.service.importdata.csv.VoyageResultsVoyageEchotypeImportRow; +import fr.ifremer.echobase.services.service.importdata.configurations.ImportDataConfigurationSupport; +import fr.ifremer.echobase.services.service.importdata.contexts.ImportDataContextSupport; +import fr.ifremer.echobase.services.service.importdata.csv.ResultsEchotypeImportRow; import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -45,53 +45,44 @@ import java.util.Collection; import java.util.LinkedList; /** - * Created on 25/03/16. - * - * @author Tony Chemit - chemit@codelutin.com + * @author Julien Ruchaud - ruchaud@codelutin.com * @since 4.0 */ -public class VoyageResultsVoyageEchotypeImportAction extends VoyageResultsImportDataActionSupport<VoyageResultsVoyageEchotypeImportRow> { +public abstract class ImportResultsEchotypeActionSupport<M extends ImportDataConfigurationSupport, C extends ImportDataContextSupport<M>, E extends ResultsEchotypeImportRow> extends ImportDataActionSupport<M, C, E> { /** Logger. */ - private static final Log log = LogFactory.getLog(VoyageResultsVoyageEchotypeImportAction.class); + private static final Log log = LogFactory.getLog(ImportResultsEchotypeActionSupport.class); private final LinkedList<Pair<String, String>> speciesIdToEchotypeId = new LinkedList<>(); - public VoyageResultsVoyageEchotypeImportAction(VoyageResultsImportDataContext importDataContext) { - super(importDataContext, importDataContext.getConfiguration().getEchotypeFile()); + public ImportResultsEchotypeActionSupport(C importDataContext, InputFile inputFile) { + super(importDataContext, inputFile); } + + protected abstract E newImportedRow(DataAcousticProvider provider, Echotype echotype, Species species); - @Override - protected VoyageResultsVoyageEchotypeImportExportModel createCsvImportModel(VoyageResultsImportDataContext importDataContext) { - return VoyageResultsVoyageEchotypeImportExportModel.forImport(importDataContext); - } + protected abstract DataAcousticProvider getDataProvider(C importDataContext); @Override - protected VoyageResultsVoyageEchotypeImportExportModel createCsvExportModel(VoyageResultsImportDataContext importDataContext) { - return VoyageResultsVoyageEchotypeImportExportModel.forExport(importDataContext); - } - - @Override - protected void performImport(VoyageResultsImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { - + protected void performImport(C importDataContext, InputFile inputFile, ImportDataFileResult result) { if (log.isInfoEnabled()) { log.info("Starts import of echotype from file " + inputFile.getFileName()); } - Voyage expectedVoyage = importDataContext.getVoyage(); + DataAcousticProvider expectedProvider = getDataProvider(importDataContext); - try (Import<VoyageResultsVoyageEchotypeImportRow> importer = open()) { + try (Import<E> importer = open()) { incrementsProgress(); int rowNumber = 0; - for (VoyageResultsVoyageEchotypeImportRow row : importer) { + for (E row : importer) { doFlushTransaction(++rowNumber); - Voyage voyage = row.getVoyage(); + DataAcousticProvider provider = row.getProvider(); - if (!expectedVoyage.equals(voyage)) { - throw new MismatchVoyageException(getLocale(), rowNumber, voyage.getName()); + if (!expectedProvider.equals(provider)) { + throw new MismatchVoyageException(getLocale(), rowNumber, provider.getName()); } Echotype rowEchotype = row.getEchotype(); @@ -101,9 +92,9 @@ public class VoyageResultsVoyageEchotypeImportAction extends VoyageResultsImport // check if there is a echotype for the voyage and this name Echotype echotype = null; - if (!voyage.isEchotypeEmpty()) { + if (!provider.isEchotypeEmpty()) { - Collection<Echotype> echotypes = voyage.getEchotype(); + Collection<Echotype> echotypes = provider.getEchotype(); Predicate<Echotype> predicate = Echotypes.newEchotypeByNamePredicate(echotypeName); echotype = Iterables.find(echotypes, predicate, null); @@ -117,7 +108,7 @@ public class VoyageResultsVoyageEchotypeImportAction extends VoyageResultsImport echotype = persistenceService.createEchotype(rowEchotype); // attach it to voyage - voyage.addEchotype(echotype); + provider.addEchotype(echotype); // collect ids addId(result, EchoBaseUserEntityEnum.Echotype, echotype, rowNumber); @@ -129,8 +120,7 @@ public class VoyageResultsVoyageEchotypeImportAction extends VoyageResultsImport Species existingSpecies = echotype.getSpeciesByTopiaId(species.getTopiaId()); if (existingSpecies != null) { - - throw new DuplicatedEchotypeAssociationException(getLocale(), rowNumber, voyage.getName(), echotypeName, species.getBaracoudaCode()); + throw new DuplicatedEchotypeAssociationException(getLocale(), rowNumber, provider.getName(), echotypeName, species.getBaracoudaCode()); } // add this species @@ -141,21 +131,15 @@ public class VoyageResultsVoyageEchotypeImportAction extends VoyageResultsImport } addProcessedRow(result, row); - } - } - } @Override - protected void computeImportedExport(VoyageResultsImportDataContext importDataContext, ImportDataFileResult result) { - - String voyageId = importDataContext.getConfiguration().getVoyageId(); - Voyage voyage = persistenceService.getVoyage(voyageId); + protected void computeImportedExport(C importDataContext, ImportDataFileResult result) { + DataAcousticProvider provider = getDataProvider(importDataContext); for (Pair<String, String> speciesIdToEchotypeIdEntry : speciesIdToEchotypeId) { - String speciesId = speciesIdToEchotypeIdEntry.getKey(); Species species = persistenceService.getSpecies(speciesId); Preconditions.checkNotNull(species); @@ -164,11 +148,9 @@ public class VoyageResultsVoyageEchotypeImportAction extends VoyageResultsImport Echotype echotype = persistenceService.getEchotype(echotypeId); Preconditions.checkNotNull(echotype); - VoyageResultsVoyageEchotypeImportRow row = VoyageResultsVoyageEchotypeImportRow.of(voyage, echotype, species); + E row = newImportedRow(provider, echotype, species); addImportedRow(result, row); - } - } } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java index 263522a..f95301c 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/MooringCommonsMooringImportAction.java @@ -61,8 +61,6 @@ public class MooringCommonsMooringImportAction extends MooringCommonsImportDataA @Override public void performImport(MooringCommonsImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { - - if (log.isInfoEnabled()) { log.info("Starts import of mooring from file " + inputFile.getFileName()); } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsVoyageEchotypeImportAction.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsVoyageEchotypeImportAction.java index be5e18d..d539412 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsVoyageEchotypeImportAction.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/actions/VoyageResultsVoyageEchotypeImportAction.java @@ -21,28 +21,15 @@ package fr.ifremer.echobase.services.service.importdata.actions; * #L% */ -import com.google.common.base.Preconditions; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; -import fr.ifremer.echobase.entities.EchoBaseUserEntityEnum; +import fr.ifremer.echobase.entities.DataAcousticProvider; import fr.ifremer.echobase.entities.data.Echotype; -import fr.ifremer.echobase.entities.data.Echotypes; -import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.Species; -import fr.ifremer.echobase.io.InputFile; -import fr.ifremer.echobase.services.service.importdata.DuplicatedEchotypeAssociationException; -import fr.ifremer.echobase.services.service.importdata.ImportDataFileResult; -import fr.ifremer.echobase.services.service.importdata.MismatchVoyageException; +import fr.ifremer.echobase.services.service.importdata.configurations.VoyageResultsImportConfiguration; import fr.ifremer.echobase.services.service.importdata.contexts.VoyageResultsImportDataContext; import fr.ifremer.echobase.services.service.importdata.csv.VoyageResultsVoyageEchotypeImportExportModel; import fr.ifremer.echobase.services.service.importdata.csv.VoyageResultsVoyageEchotypeImportRow; -import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.csv.Import; - -import java.util.Collection; -import java.util.LinkedList; /** * Created on 25/03/16. @@ -50,11 +37,10 @@ import java.util.LinkedList; * @author Tony Chemit - chemit@codelutin.com * @since 4.0 */ -public class VoyageResultsVoyageEchotypeImportAction extends VoyageResultsImportDataActionSupport<VoyageResultsVoyageEchotypeImportRow> { +public class VoyageResultsVoyageEchotypeImportAction extends ImportResultsEchotypeActionSupport<VoyageResultsImportConfiguration, VoyageResultsImportDataContext, VoyageResultsVoyageEchotypeImportRow> { /** Logger. */ private static final Log log = LogFactory.getLog(VoyageResultsVoyageEchotypeImportAction.class); - private final LinkedList<Pair<String, String>> speciesIdToEchotypeId = new LinkedList<>(); public VoyageResultsVoyageEchotypeImportAction(VoyageResultsImportDataContext importDataContext) { super(importDataContext, importDataContext.getConfiguration().getEchotypeFile()); @@ -71,104 +57,13 @@ public class VoyageResultsVoyageEchotypeImportAction extends VoyageResultsImport } @Override - protected void performImport(VoyageResultsImportDataContext importDataContext, InputFile inputFile, ImportDataFileResult result) { - - if (log.isInfoEnabled()) { - log.info("Starts import of echotype from file " + inputFile.getFileName()); - } - - Voyage expectedVoyage = importDataContext.getVoyage(); - - try (Import<VoyageResultsVoyageEchotypeImportRow> importer = open()) { - - incrementsProgress(); - - int rowNumber = 0; - for (VoyageResultsVoyageEchotypeImportRow row : importer) { - - doFlushTransaction(++rowNumber); - - Voyage voyage = row.getVoyage(); - - if (!expectedVoyage.equals(voyage)) { - throw new MismatchVoyageException(getLocale(), rowNumber, voyage.getName()); - } - - Echotype rowEchotype = row.getEchotype(); - - String echotypeName = rowEchotype.getName(); - - // check if there is a echotype for the voyage and this name - Echotype echotype = null; - - if (!voyage.isEchotypeEmpty()) { - - Collection<Echotype> echotypes = voyage.getEchotype(); - Predicate<Echotype> predicate = Echotypes.newEchotypeByNamePredicate(echotypeName); - echotype = Iterables.find(echotypes, predicate, null); - - } - - Species species = row.getSpecies(); - - if (echotype == null) { - - // creates it - echotype = persistenceService.createEchotype(rowEchotype); - - // attach it to voyage - voyage.addEchotype(echotype); - - // collect ids - addId(result, EchoBaseUserEntityEnum.Echotype, echotype, rowNumber); - - speciesIdToEchotypeId.add(Pair.of(species.getTopiaId(), echotype.getTopiaId())); - - } else { - - Species existingSpecies = echotype.getSpeciesByTopiaId(species.getTopiaId()); - - if (existingSpecies != null) { - - throw new DuplicatedEchotypeAssociationException(getLocale(), rowNumber, voyage.getName(), echotypeName, species.getBaracoudaCode()); - } - - // add this species - echotype.addSpecies(species); - - speciesIdToEchotypeId.add(Pair.of(species.getTopiaId(), echotype.getTopiaId())); - - } - - addProcessedRow(result, row); - - } - - } - + protected DataAcousticProvider getDataProvider(VoyageResultsImportDataContext importDataContext) { + return (DataAcousticProvider) importDataContext.getVoyage(); } @Override - protected void computeImportedExport(VoyageResultsImportDataContext importDataContext, ImportDataFileResult result) { - - String voyageId = importDataContext.getConfiguration().getVoyageId(); - Voyage voyage = persistenceService.getVoyage(voyageId); - - for (Pair<String, String> speciesIdToEchotypeIdEntry : speciesIdToEchotypeId) { - - String speciesId = speciesIdToEchotypeIdEntry.getKey(); - Species species = persistenceService.getSpecies(speciesId); - Preconditions.checkNotNull(species); - - String echotypeId = speciesIdToEchotypeIdEntry.getValue(); - Echotype echotype = persistenceService.getEchotype(echotypeId); - Preconditions.checkNotNull(echotype); - - VoyageResultsVoyageEchotypeImportRow row = VoyageResultsVoyageEchotypeImportRow.of(voyage, echotype, species); - addImportedRow(result, row); - - } - + protected VoyageResultsVoyageEchotypeImportRow newImportedRow(DataAcousticProvider provider, Echotype echotype, Species species) { + return VoyageResultsVoyageEchotypeImportRow.of(provider, echotype, species); } - + } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportExportModel.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportExportModel.java index abe9a68..6f44d2b 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportExportModel.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/AcousticImportExportModel.java @@ -28,7 +28,6 @@ import fr.ifremer.echobase.entities.references.AcousticInstrument; import fr.ifremer.echobase.entities.references.DataQuality; import fr.ifremer.echobase.services.csv.EchoBaseCsvUtil; import fr.ifremer.echobase.services.service.importdata.contexts.ImportDataContextSupport; -import fr.ifremer.echobase.services.service.importdata.contexts.MooringAcousticsImportDataContext; /** * To import acoustic datas (says {@link DataAcquisition}, diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageEchotypeImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/ResultsEchotypeImportRow.java similarity index 69% copy from echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageEchotypeImportRow.java copy to echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/ResultsEchotypeImportRow.java index ca572d7..d34999f 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageEchotypeImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/ResultsEchotypeImportRow.java @@ -22,52 +22,34 @@ package fr.ifremer.echobase.services.service.importdata.csv; import fr.ifremer.echobase.entities.data.Echotype; import fr.ifremer.echobase.entities.data.EchotypeImpl; -import fr.ifremer.echobase.entities.data.Voyage; import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.entities.references.Species; +import fr.ifremer.echobase.services.csv.ProviderAble; import java.io.Serializable; +import org.nuiton.topia.persistence.TopiaEntity; /** - * Bean used as a row for import of {@link VoyageResultsVoyageEchotypeImportExportModel}. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 0.3 + * @author Julien Ruchaud - ruchaud@codelutin.com + * @since 4.0 */ -public class VoyageResultsVoyageEchotypeImportRow implements Serializable { +public abstract class ResultsEchotypeImportRow<E extends TopiaEntity> implements Serializable, ProviderAble<E> { private static final long serialVersionUID = 1L; public static final String PROPERTY_MEANING = Echotype.PROPERTY_MEANING; - public static final String PROPERTY_VOYAGE = "voyage"; protected final Echotype echotype; - protected Voyage voyage; protected Species species; - - public static VoyageResultsVoyageEchotypeImportRow of(Voyage voyage, Echotype echotype, Species species) { - VoyageResultsVoyageEchotypeImportRow row = new VoyageResultsVoyageEchotypeImportRow(echotype); - row.setVoyage(voyage); - row.setSpecies(species); - return row; - } - - public VoyageResultsVoyageEchotypeImportRow() { + + public ResultsEchotypeImportRow() { this(new EchotypeImpl()); } - public VoyageResultsVoyageEchotypeImportRow(Echotype echotype) { + public ResultsEchotypeImportRow(Echotype echotype) { this.echotype = echotype; } - public Voyage getVoyage() { - return voyage; - } - - public void setVoyage(Voyage voyage) { - this.voyage = voyage; - } - public Echotype getEchotype() { return echotype; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.java index 5c8cce0..4945c15 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow.java @@ -20,6 +20,7 @@ */ package fr.ifremer.echobase.services.service.importdata.csv; +import fr.ifremer.echobase.entities.DataAcousticProvider; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; @@ -78,16 +79,24 @@ public class VoyageResultsEsduByEchotypeAndSpeciesCategoryAndLengthImportRow imp return row; } - @Override public Voyage getVoyage() { return voyage; } - @Override public void setVoyage(Voyage voyage) { this.voyage = voyage; } + @Override + public DataAcousticProvider<Voyage> getProvider() { + return (DataAcousticProvider) voyage; + } + + @Override + public void setProvider(DataAcousticProvider provider) { + setVoyage((Voyage) provider); + } + public Species getSpecies() { return species; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow.java index 8564abf..4acdedd 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow.java @@ -20,6 +20,7 @@ */ package fr.ifremer.echobase.services.service.importdata.csv; +import fr.ifremer.echobase.entities.DataAcousticProvider; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; @@ -74,16 +75,24 @@ public class VoyageResultsEsduByEchotypeAndSpeciesCategoryImportRow implements R return row; } - @Override public Voyage getVoyage() { return voyage; } - @Override public void setVoyage(Voyage voyage) { this.voyage = voyage; } + @Override + public DataAcousticProvider<Voyage> getProvider() { + return (DataAcousticProvider) voyage; + } + + @Override + public void setProvider(DataAcousticProvider provider) { + setVoyage((Voyage) provider); + } + public Echotype getEchotype() { return echotype; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeImportRow.java index 1097a35..1087aad 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduByEchotypeImportRow.java @@ -20,6 +20,7 @@ */ package fr.ifremer.echobase.services.service.importdata.csv; +import fr.ifremer.echobase.entities.DataAcousticProvider; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; @@ -59,18 +60,26 @@ public class VoyageResultsEsduByEchotypeImportRow implements ResultAble, CellAbl row.result.addAll(cellResults); return row; } - - @Override + public Voyage getVoyage() { return voyage; } - @Override public void setVoyage(Voyage voyage) { this.voyage = voyage; } @Override + public DataAcousticProvider<Voyage> getProvider() { + return (DataAcousticProvider) voyage; + } + + @Override + public void setProvider(DataAcousticProvider provider) { + setVoyage((Voyage) provider); + } + + @Override public Cell getCell() { return cell; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndAgeCategoryImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndAgeCategoryImportRow.java index da43112..f466978 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndAgeCategoryImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsEsduBySpeciesAndAgeCategoryImportRow.java @@ -20,6 +20,7 @@ */ package fr.ifremer.echobase.services.service.importdata.csv; +import fr.ifremer.echobase.entities.DataAcousticProvider; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Result; @@ -67,16 +68,24 @@ public class VoyageResultsEsduBySpeciesAndAgeCategoryImportRow implements Result return row; } - @Override public Voyage getVoyage() { return voyage; } - @Override public void setVoyage(Voyage voyage) { this.voyage = voyage; } + @Override + public DataAcousticProvider<Voyage> getProvider() { + return (DataAcousticProvider) voyage; + } + + @Override + public void setProvider(DataAcousticProvider provider) { + setVoyage((Voyage) provider); + } + public Species getSpecies() { return species; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportRow.java index f111167..855d4fc 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsRegionCellResultImportRow.java @@ -21,6 +21,7 @@ package fr.ifremer.echobase.services.service.importdata.csv; import com.google.common.base.Preconditions; +import fr.ifremer.echobase.entities.DataAcousticProvider; import fr.ifremer.echobase.entities.data.Category; import fr.ifremer.echobase.entities.data.Cell; import fr.ifremer.echobase.entities.data.Echotype; @@ -86,17 +87,25 @@ public class VoyageResultsRegionCellResultImportRow implements ResultAble, CellA this.echotype = echotype; } - @Override public Voyage getVoyage() { return voyage; } - @Override public void setVoyage(Voyage voyage) { this.voyage = voyage; } @Override + public DataAcousticProvider<Voyage> getProvider() { + return (DataAcousticProvider) voyage; + } + + @Override + public void setProvider(DataAcousticProvider provider) { + setVoyage((Voyage) provider); + } + + @Override public Cell getCell() { return cell; } diff --git a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageEchotypeImportRow.java b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageEchotypeImportRow.java index ca572d7..1d26403 100644 --- a/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageEchotypeImportRow.java +++ b/echobase-services/src/main/java/fr/ifremer/echobase/services/service/importdata/csv/VoyageResultsVoyageEchotypeImportRow.java @@ -20,46 +20,39 @@ */ package fr.ifremer.echobase.services.service.importdata.csv; +import fr.ifremer.echobase.entities.DataAcousticProvider; import fr.ifremer.echobase.entities.data.Echotype; -import fr.ifremer.echobase.entities.data.EchotypeImpl; import fr.ifremer.echobase.entities.data.Voyage; -import fr.ifremer.echobase.entities.references.DepthStratum; import fr.ifremer.echobase.entities.references.Species; -import java.io.Serializable; - /** * Bean used as a row for import of {@link VoyageResultsVoyageEchotypeImportExportModel}. * * @author Tony Chemit - chemit@codelutin.com * @since 0.3 */ -public class VoyageResultsVoyageEchotypeImportRow implements Serializable { +public class VoyageResultsVoyageEchotypeImportRow extends ResultsEchotypeImportRow<Voyage> { private static final long serialVersionUID = 1L; - public static final String PROPERTY_MEANING = Echotype.PROPERTY_MEANING; public static final String PROPERTY_VOYAGE = "voyage"; - - protected final Echotype echotype; protected Voyage voyage; - protected Species species; - public static VoyageResultsVoyageEchotypeImportRow of(Voyage voyage, Echotype echotype, Species species) { + public static VoyageResultsVoyageEchotypeImportRow of(DataAcousticProvider provider, Echotype echotype, Species species) { VoyageResultsVoyageEchotypeImportRow row = new VoyageResultsVoyageEchotypeImportRow(echotype); - row.setVoyage(voyage); + row.setProvider(provider); row.setSpecies(species); return row; } public VoyageResultsVoyageEchotypeImportRow() { - this(new EchotypeImpl()); + super(); } public VoyageResultsVoyageEchotypeImportRow(Echotype echotype) { - this.echotype = echotype; + super(echotype); } - + public Voyage getVoyage() { return voyage; } @@ -68,39 +61,13 @@ public class VoyageResultsVoyageEchotypeImportRow implements Serializable { this.voyage = voyage; } - public Echotype getEchotype() { - return echotype; - } - - public String getName() { - return echotype.getName(); - } - - public void setName(String name) { - echotype.setName(name); - } - - public String getMeaning() { - return echotype.getMeaning(); - } - - public void setMeaning(String meaning) { - echotype.setMeaning(meaning); - } - - public Species getSpecies() { - return species; - } - - public void setSpecies(Species species) { - this.species = species; - } - - public DepthStratum getDepthStratum() { - return echotype.getDepthStratum(); + @Override + public DataAcousticProvider<Voyage> getProvider() { + return (DataAcousticProvider) voyage; } - public void setDepthStratum(DepthStratum depthStratum) { - echotype.setDepthStratum(depthStratum); + @Override + public void setProvider(DataAcousticProvider<Voyage> provider) { + setVoyage(provider.getEntity()); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.