branch feature/6115_import_export_especes created (now 9f1d4b6)
This is an automated email from the git hooks/post-receive script. New change to branch feature/6115_import_export_especes in repository tutti. See http://git.codelutin.com/tutti.git at 9f1d4b6 Ajout de l'import-export des rtp en csv + nettoyage de code (See #6115) This branch includes the following new commits: new 12c408a Clean css new 9f1d4b6 Ajout de l'import-export des rtp en csv + nettoyage de code (See #6115) The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 9f1d4b6d30e873b84d292cd0f9ad7b63e8c8d91d Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 20 22:06:34 2016 +0100 Ajout de l'import-export des rtp en csv + nettoyage de code (See #6115) commit 12c408ad20085bda30ff173cf40ecd3a4c17ffc6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 20 21:15:21 2016 +0100 Clean css -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6115_import_export_especes in repository tutti. See http://git.codelutin.com/tutti.git commit 12c408ad20085bda30ff173cf40ecd3a4c17ffc6 Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 20 21:15:21 2016 +0100 Clean css --- .../fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jcss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jcss b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jcss index 1078e89..38443a3 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jcss +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/rtp/RtpEditorUI.jcss @@ -43,7 +43,7 @@ NumberEditor { #rtpMaleAField { property:{RtpEditorUIModel.PROPERTY_RTP_MALE_A}; - numberValue: {model.getRtpMaleA()};; + numberValue: {model.getRtpMaleA()}; _help: {"tutti.editRtp.field.rtpMaleA.help"}; } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch feature/6115_import_export_especes in repository tutti. See http://git.codelutin.com/tutti.git commit 9f1d4b6d30e873b84d292cd0f9ad7b63e8c8d91d Author: Tony CHEMIT <chemit@codelutin.com> Date: Wed Jan 20 22:06:34 2016 +0100 Ajout de l'import-export des rtp en csv + nettoyage de code (See #6115) --- .../tutti/persistence/entities/protocol/Rtps.java | 12 + .../protocol/ProtocolImportExportService.java | 163 +++++++------ .../ifremer/tutti/service/protocol/SpeciesRow.java | 102 ++++++++- .../tutti/service/protocol/SpeciesRowModel.java | 103 +++++---- .../protocol/ProtocolImportExportServiceTest.java | 251 ++++++++++++--------- .../actions/ExportProtocolSpeciesAction.java | 7 +- 6 files changed, 401 insertions(+), 237 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/Rtps.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/Rtps.java new file mode 100644 index 0000000..1fd32a5 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/Rtps.java @@ -0,0 +1,12 @@ +package fr.ifremer.tutti.persistence.entities.protocol; + +public class Rtps extends AbstractRtps { + + public static Rtp newRtp(float a, float b) { + Rtp rtp = newRtp(); + rtp.setA(a); + rtp.setB(b); + return rtp; + } + +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java index f1d2154..c003fc3 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportService.java @@ -33,6 +33,7 @@ import com.google.common.io.Files; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRow; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicMappingRowBean; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType; +import fr.ifremer.tutti.persistence.entities.protocol.Rtp; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; @@ -74,16 +75,14 @@ import static org.nuiton.i18n.I18n.t; public class ProtocolImportExportService extends AbstractTuttiService { /** Logger. */ - private static final Log log = - LogFactory.getLog(ProtocolImportExportService.class); + private static final Log log = LogFactory.getLog(ProtocolImportExportService.class); public void exportProtocol(TuttiProtocol protocol, File file) { TuttiProtocols.toFile(protocol, file); } public TuttiProtocol importProtocol(File file) { - TuttiProtocol result = TuttiProtocols.fromFile(file); - return result; + return TuttiProtocols.fromFile(file); } public void importProtocolCaracteristic(File file, @@ -140,7 +139,7 @@ public class ProtocolImportExportService extends AbstractTuttiService { List<CaracteristicMappingRow> caracteristicMapping = protocol.getCaracteristicMapping(); if (caracteristicMapping == null) { - caracteristicMapping = new ArrayList<CaracteristicMappingRow>(); + caracteristicMapping = new ArrayList<>(); } Map<String, CaracteristicMappingRow> rowsByCaracteristicId = new HashMap<>(Maps.uniqueIndex(caracteristicMapping, @@ -271,21 +270,14 @@ public class ProtocolImportExportService extends AbstractTuttiService { } } - SpeciesRowModel csvModel = new SpeciesRowModel(getCsvSeparator(), - caracteristicMap, - speciesMap); - - Reader reader = null; - try { - reader = Files.newReader(file, Charsets.UTF_8); + SpeciesRowModel csvModel = SpeciesRowModel.forImport(getCsvSeparator(), caracteristicMap, speciesMap); - Import<SpeciesRow> importer = Import.newImport(csvModel, reader); + try (Reader reader = Files.newReader(file, Charsets.UTF_8)) { - try { + try (Import<SpeciesRow> importer = Import.newImport(csvModel, reader)) { Binder<SpeciesRow, SpeciesProtocol> binder = - BinderFactory.newBinder(SpeciesRow.class, - SpeciesProtocol.class); + BinderFactory.newBinder(SpeciesRow.class, SpeciesProtocol.class); for (SpeciesRow bean : importer) { @@ -305,38 +297,52 @@ public class ProtocolImportExportService extends AbstractTuttiService { sp = SpeciesProtocols.newSpeciesProtocol(); } binder.copy(bean, sp); - sp.setMandatorySampleCategoryId(Lists.newArrayList( - bean.getMandatorySampleCategoryId())); + sp.setMandatorySampleCategoryId(Lists.newArrayList(bean.getMandatorySampleCategoryId())); + + // Clean up rtp data + + if (sp.withRtpMale()) { + Rtp rtpMale = sp.getRtpMale(); + if (rtpMale.getA() == null && rtpMale.getB() == null) { + sp.setRtpMale(null); + } + } + if (sp.withRtpFemale()) { + Rtp rtpFemale = sp.getRtpFemale(); + if (rtpFemale.getA() == null && rtpFemale.getB() == null) { + sp.setRtpFemale(null); + } + } + if (sp.withRtpUndefined()) { + Rtp rtpUndefined = sp.getRtpUndefined(); + if (rtpUndefined.getA() == null && rtpUndefined.getB() == null) { + sp.setRtpUndefined(null); + } + } ids.put(id, sp); } } - importer.close(); - } finally { - IOUtils.closeQuietly(importer); } - reader.close(); + + List<SpeciesProtocol> values = Lists.newArrayList(ids.values()); + protocol.setSpecies(values); + + return result; } catch (ImportRuntimeException e) { throw e; } catch (Exception e) { throw new ApplicationTechnicalException(t("tutti.service.protocol.import.species.error", protocol.getName(), file), e); - - } finally { - IOUtils.closeQuietly(reader); } - List<SpeciesProtocol> values = Lists.newArrayList(ids.values()); - protocol.setSpecies(values); - - return result; } /** - * @param file - * @param protocol - * @param caracteristicMap - * @param speciesMap + * @param file file to import + * @param protocol existing protocol + * @param caracteristicMap dictonnary of caracteristics + * @param speciesMap dictionnary of species * @return The list of the species not imported because they are already in the species */ public List<Species> importProtocolBenthos(File file, @@ -373,21 +379,14 @@ public class ProtocolImportExportService extends AbstractTuttiService { } } - SpeciesRowModel csvModel = new SpeciesRowModel(getCsvSeparator(), - caracteristicMap, - speciesMap); + SpeciesRowModel csvModel = SpeciesRowModel.forImport(getCsvSeparator(), caracteristicMap, speciesMap); - Reader reader = null; - try { - reader = Files.newReader(file, Charsets.UTF_8); - - Import<SpeciesRow> importer = Import.newImport(csvModel, reader); + try (Reader reader = Files.newReader(file, Charsets.UTF_8)) { - try { + try (Import<SpeciesRow> importer = Import.newImport(csvModel, reader)) { Binder<SpeciesRow, SpeciesProtocol> binder = - BinderFactory.newBinder(SpeciesRow.class, - SpeciesProtocol.class); + BinderFactory.newBinder(SpeciesRow.class, SpeciesProtocol.class); for (SpeciesRow bean : importer) { @@ -408,25 +407,42 @@ public class ProtocolImportExportService extends AbstractTuttiService { } binder.copy(bean, sp); + // Clean up rtp data + + if (sp.withRtpMale()) { + Rtp rtpMale = sp.getRtpMale(); + if (rtpMale.getA() == null && rtpMale.getB() == null) { + sp.setRtpMale(null); + } + } + if (sp.withRtpFemale()) { + Rtp rtpFemale = sp.getRtpFemale(); + if (rtpFemale.getA() == null && rtpFemale.getB() == null) { + sp.setRtpFemale(null); + } + } + if (sp.withRtpUndefined()) { + Rtp rtpUndefined = sp.getRtpUndefined(); + if (rtpUndefined.getA() == null && rtpUndefined.getB() == null) { + sp.setRtpUndefined(null); + } + } + ids.put(id, sp); } } - importer.close(); - } finally { - IOUtils.closeQuietly(importer); + + List<SpeciesProtocol> values = Lists.newArrayList(ids.values()); + protocol.setBenthos(values); + } - reader.close(); + } catch (ImportRuntimeException e) { throw e; } catch (Exception e) { throw new ApplicationTechnicalException(t("tutti.service.protocol.import.benthos.error", protocol.getName(), file), e); - } finally { - IOUtils.closeQuietly(reader); } - List<SpeciesProtocol> values = Lists.newArrayList(ids.values()); - protocol.setBenthos(values); - return result; } @@ -457,26 +473,15 @@ public class ProtocolImportExportService extends AbstractTuttiService { List<SpeciesRow> rows = Lists.newArrayList(); if (CollectionUtils.isNotEmpty(protocol)) { - rows = Lists.transform(protocol, new SpeciesProtocolToSpeciesRowFunction( - caracteristicMap, - speciesMap)); + rows = Lists.transform(protocol, new SpeciesProtocolToSpeciesRowFunction(caracteristicMap, speciesMap)); } - SpeciesRowModel csvModel = - new SpeciesRowModel(getCsvSeparator(), - caracteristicMap, - speciesMap); - - BufferedWriter writer = null; - try { - writer = Files.newWriter(file, Charsets.UTF_8); + SpeciesRowModel csvModel = SpeciesRowModel.forExport(getCsvSeparator()); + try (BufferedWriter writer = Files.newWriter(file, Charsets.UTF_8)) { Export export = Export.newExport(csvModel, rows); export.write(writer); - writer.close(); } catch (Exception e) { throw new ApplicationTechnicalException(t("tutti.service.protocol.export.species.error", file), e); - } finally { - IOUtils.closeQuietly(writer); } } @@ -491,26 +496,15 @@ public class ProtocolImportExportService extends AbstractTuttiService { List<SpeciesRow> rows = Lists.newArrayList(); if (CollectionUtils.isNotEmpty(protocol)) { - rows = Lists.transform(protocol, new SpeciesProtocolToSpeciesRowFunction( - caracteristicMap, - speciesMap)); + rows = Lists.transform(protocol, new SpeciesProtocolToSpeciesRowFunction(caracteristicMap, speciesMap)); } - SpeciesRowModel csvModel = - new SpeciesRowModel(getCsvSeparator(), - caracteristicMap, - speciesMap); - - BufferedWriter writer = null; - try { - writer = Files.newWriter(file, Charsets.UTF_8); + SpeciesRowModel csvModel = SpeciesRowModel.forExport(getCsvSeparator()); + try (BufferedWriter writer = Files.newWriter(file, Charsets.UTF_8)) { Export export = Export.newExport(csvModel, rows); export.write(writer); - writer.close(); } catch (Exception e) { throw new ApplicationTechnicalException(t("tutti.service.protocol.export.benthos.error", file), e); - } finally { - IOUtils.closeQuietly(writer); } } @@ -519,8 +513,7 @@ public class ProtocolImportExportService extends AbstractTuttiService { } - protected List<String> mergeIds(Collection<String> fromProtocol, - Collection<String> fromImport) { + protected List<String> mergeIds(Collection<String> fromProtocol, Collection<String> fromImport) { List<String> result = Lists.newArrayList(); if (CollectionUtils.isNotEmpty(fromProtocol)) { @@ -529,7 +522,6 @@ public class ProtocolImportExportService extends AbstractTuttiService { result.add(s); } } - } for (String s : fromImport) { if (!result.contains(s)) { @@ -590,8 +582,7 @@ public class ProtocolImportExportService extends AbstractTuttiService { Map<String, Species> speciesMap) { this.speciesMap = speciesMap; this.caracteristicMap = caracteristicMap; - this.binder = BinderFactory.newBinder(SpeciesProtocol.class, - SpeciesRow.class); + this.binder = BinderFactory.newBinder(SpeciesProtocol.class, SpeciesRow.class); } @Override diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java index cb6484e..4ccba57 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRow.java @@ -22,6 +22,7 @@ package fr.ifremer.tutti.service.protocol; * #L% */ +import fr.ifremer.tutti.persistence.entities.protocol.Rtp; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; @@ -71,6 +72,18 @@ public class SpeciesRow implements Serializable { public static final String PROPERTY_MANDATORY_SAMPLE_CATEGORY_ID = "mandatorySampleCategoryId"; + public static final String PROPERTY_RTP_MALE_A = "rtpMaleA"; + + public static final String PROPERTY_RTP_MALE_B = "rtpMaleB"; + + public static final String PROPERTY_RTP_FEMALE_A = "rtpFemaleA"; + + public static final String PROPERTY_RTP_FEMALE_B = "rtpFemaleB"; + + public static final String PROPERTY_RTP_UNDEFINED_A = "rtpUndefinedA"; + + public static final String PROPERTY_RTP_UNDEFINED_B = "rtpUndefinedB"; + protected final SpeciesProtocol delegate; protected Species species; @@ -98,7 +111,7 @@ public class SpeciesRow implements Serializable { if (!StringUtils.isEmpty(name)) { boolean madeFromAReferentTaxon = isMadeFromAReferentTaxon(); setMadeFromAReferentTaxon(madeFromAReferentTaxon && - species != null && species.getName().equals(name)); + species != null && species.getName().equals(name)); } } @@ -110,7 +123,7 @@ public class SpeciesRow implements Serializable { if (!StringUtils.isEmpty(refTaxCode)) { boolean madeFromAReferentTaxon = isMadeFromAReferentTaxon(); setMadeFromAReferentTaxon(madeFromAReferentTaxon && - species != null && species.getRefTaxCode().equals(refTaxCode)); + species != null && species.getRefTaxCode().equals(refTaxCode)); } } @@ -203,4 +216,89 @@ public class SpeciesRow implements Serializable { public List<Integer> getMandatorySampleCategoryId() { return delegate.getMandatorySampleCategoryId(); } + + public boolean withRtpMale() { + return delegate.withRtpMale(); + } + + public boolean withRtpFemale() { + return delegate.withRtpFemale(); + } + + public boolean withRtpUndefined() { + return delegate.withRtpUndefined(); + } + + public Rtp getRtpMale() { + return delegate.getRtpMale(); + } + + public Rtp getRtpFemale() { + return delegate.getRtpFemale(); + } + + public Rtp getRtpUndefined() { + return delegate.getRtpUndefined(); + } + + public void setRtpMale(Rtp rtpMale) { + delegate.setRtpMale(rtpMale); + } + + public void setRtpFemale(Rtp rtpFemale) { + delegate.setRtpFemale(rtpFemale); + } + + public void setRtpUndefined(Rtp rtpUndefined) { + delegate.setRtpUndefined(rtpUndefined); + } + + public Float getRtpMaleA() { + return withRtpMale() ? getRtpMale().getA() : null; + } + + public Float getRtpMaleB() { + return withRtpMale() ? getRtpMale().getB() : null; + } + + public Float getRtpFemaleA() { + return withRtpFemale() ? getRtpFemale().getA() : null; + } + + public Float getRtpFemaleB() { + return withRtpFemale() ? getRtpFemale().getB() : null; + } + + public Float getRtpUndefinedA() { + return withRtpUndefined() ? getRtpUndefined().getA() : null; + } + + public Float getRtpUndefinedB() { + return withRtpUndefined() ? getRtpUndefined().getB() : null; + } + + public void setRtpMaleA(Float a) { + getRtpMale().setA(a); + } + + public void setRtpMaleB(Float b) { + getRtpMale().setB(b); + } + + public void setRtpFemaleA(Float a) { + getRtpFemale().setA(a); + } + + public void setRtpFemaleB(Float b) { + getRtpFemale().setB(b); + } + + public void setRtpUndefinedA(Float a) { + getRtpUndefined().setA(a); + } + + public void setRtpUndefinedB(Float b) { + getRtpUndefined().setB(b); + } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java index ae2359c..b274703 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/protocol/SpeciesRowModel.java @@ -23,6 +23,7 @@ package fr.ifremer.tutti.service.protocol; */ import com.google.common.collect.Sets; +import fr.ifremer.tutti.persistence.entities.protocol.Rtps; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.csv.AbstractTuttiImportExportModel; @@ -46,14 +47,37 @@ import static org.nuiton.i18n.I18n.t; */ public class SpeciesRowModel extends AbstractTuttiImportExportModel<SpeciesRow> { - public SpeciesRowModel(char separator, - Map<String, Caracteristic> caracteristicMap, - Map<String, Species> speciesMap) { - super(separator); + public static SpeciesRowModel forExport(char separator) { + + SpeciesRowModel result = new SpeciesRowModel(separator); + result.newColumnForExport(SpeciesRow.PROPERTY_SPECIES_REFERENCE_TAXON_ID, Common.INTEGER); + result.newColumnForExport(SpeciesRow.PROPERTY_SPECIES_REF_TAX_CODE); + result.newColumnForExport(SpeciesRow.PROPERTY_SPECIES_NAME); + result.newColumnForExport(SpeciesRow.PROPERTY_SPECIES_SURVEY_CODE); + result.newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_ID); + result.newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_PARAMETER_NAME); + result.newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_MATRIX_NAME); + result.newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_FRACTION_NAME); + result.newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_METHOD_NAME); + result.newColumnForExport(SpeciesRow.PROPERTY_MANDATORY_SAMPLE_CATEGORY_ID, TuttiCsvUtil.INTEGER_LIST_PARSER_FORMATTER); + result.newColumnForExport(SpeciesRow.PROPERTY_WEIGHT_ENABLED, Common.PRIMITIVE_BOOLEAN); + result.newColumnForExport(SpeciesRow.PROPERTY_COUNT_IF_NO_FREQUENCY_ENABLED, Common.PRIMITIVE_BOOLEAN); + result.newColumnForExport(SpeciesRow.PROPERTY_CALCIFY_SAMPLE_ENABLED, Common.PRIMITIVE_BOOLEAN); + result.newColumnForExport(SpeciesRow.PROPERTY_RTP_MALE_A, Common.FLOAT); + result.newColumnForExport(SpeciesRow.PROPERTY_RTP_MALE_B, Common.FLOAT); + result.newColumnForExport(SpeciesRow.PROPERTY_RTP_FEMALE_A, Common.FLOAT); + result.newColumnForExport(SpeciesRow.PROPERTY_RTP_FEMALE_B, Common.FLOAT); + result.newColumnForExport(SpeciesRow.PROPERTY_RTP_UNDEFINED_A, Common.FLOAT); + result.newColumnForExport(SpeciesRow.PROPERTY_RTP_UNDEFINED_B, Common.FLOAT); + return result; + } - // import definition + public static SpeciesRowModel forImport(char separator, + Map<String, Caracteristic> caracteristicMap, + Map<String, Species> speciesMap) { - newMandatoryColumn( + SpeciesRowModel result = new SpeciesRowModel(separator); + result.newMandatoryColumn( SpeciesRow.PROPERTY_SPECIES_REFERENCE_TAXON_ID, SpeciesRow.PROPERTY_SPECIES, new ForeignKeyParserFormatter<Species>(Species.class, Species.PROPERTY_REFERENCE_TAXON_ID, speciesMap) { @@ -74,48 +98,47 @@ public class SpeciesRowModel extends AbstractTuttiImportExportModel<SpeciesRow> } }); - newOptionalColumn(SpeciesRow.PROPERTY_SPECIES_REF_TAX_CODE); - newOptionalColumn(SpeciesRow.PROPERTY_SPECIES_NAME); + result.newOptionalColumn(SpeciesRow.PROPERTY_SPECIES_REF_TAX_CODE); + result.newOptionalColumn(SpeciesRow.PROPERTY_SPECIES_NAME); - newForeignKeyColumn(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_ID, - SpeciesRow.PROPERTY_LENGTH_STEP_PMFM, - Caracteristic.class, - Caracteristic.PROPERTY_ID, - caracteristicMap); + result.newForeignKeyColumn(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_ID, + SpeciesRow.PROPERTY_LENGTH_STEP_PMFM, + Caracteristic.class, + Caracteristic.PROPERTY_ID, + caracteristicMap); - newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_PARAMETER_NAME); - newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_MATRIX_NAME); - newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_FRACTION_NAME); - newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_METHOD_NAME); + result.newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_PARAMETER_NAME); + result.newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_MATRIX_NAME); + result.newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_FRACTION_NAME); + result.newIgnoredColumn(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_METHOD_NAME); //FIXME See if really needed, otherwise just use the default String parser -// newMandatoryColumn(SpeciesRow.PROPERTY_SPECIES_SURVEY_CODE); - newMandatoryColumn(SpeciesRow.PROPERTY_SPECIES_SURVEY_CODE, new StringParserFormatter(null, true)); - newMandatoryColumn(SpeciesRow.PROPERTY_MANDATORY_SAMPLE_CATEGORY_ID, TuttiCsvUtil.INTEGER_LIST_PARSER_FORMATTER); - newMandatoryColumn(SpeciesRow.PROPERTY_WEIGHT_ENABLED, Common.PRIMITIVE_BOOLEAN); - newMandatoryColumn(SpeciesRow.PROPERTY_COUNT_IF_NO_FREQUENCY_ENABLED, Common.PRIMITIVE_BOOLEAN); - newMandatoryColumn(SpeciesRow.PROPERTY_CALCIFY_SAMPLE_ENABLED, Common.PRIMITIVE_BOOLEAN); - - // export definition - - newColumnForExport(SpeciesRow.PROPERTY_SPECIES_REFERENCE_TAXON_ID, Common.INTEGER); - newColumnForExport(SpeciesRow.PROPERTY_SPECIES_REF_TAX_CODE); - newColumnForExport(SpeciesRow.PROPERTY_SPECIES_NAME); - newColumnForExport(SpeciesRow.PROPERTY_SPECIES_SURVEY_CODE); - newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_ID); - newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_PARAMETER_NAME); - newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_MATRIX_NAME); - newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_FRACTION_NAME); - newColumnForExport(SpeciesRow.PROPERTY_LENGTH_STEP_PMFM_METHOD_NAME); - newColumnForExport(SpeciesRow.PROPERTY_MANDATORY_SAMPLE_CATEGORY_ID, TuttiCsvUtil.INTEGER_LIST_PARSER_FORMATTER); - newColumnForExport(SpeciesRow.PROPERTY_WEIGHT_ENABLED, Common.PRIMITIVE_BOOLEAN); - newColumnForExport(SpeciesRow.PROPERTY_COUNT_IF_NO_FREQUENCY_ENABLED, Common.PRIMITIVE_BOOLEAN); - newColumnForExport(SpeciesRow.PROPERTY_CALCIFY_SAMPLE_ENABLED, Common.PRIMITIVE_BOOLEAN); +// result.newMandatoryColumn(SpeciesRow.PROPERTY_SPECIES_SURVEY_CODE); + result.newMandatoryColumn(SpeciesRow.PROPERTY_SPECIES_SURVEY_CODE, new StringParserFormatter(null, true)); + result.newMandatoryColumn(SpeciesRow.PROPERTY_MANDATORY_SAMPLE_CATEGORY_ID, TuttiCsvUtil.INTEGER_LIST_PARSER_FORMATTER); + result.newMandatoryColumn(SpeciesRow.PROPERTY_WEIGHT_ENABLED, Common.PRIMITIVE_BOOLEAN); + result.newMandatoryColumn(SpeciesRow.PROPERTY_COUNT_IF_NO_FREQUENCY_ENABLED, Common.PRIMITIVE_BOOLEAN); + result.newMandatoryColumn(SpeciesRow.PROPERTY_CALCIFY_SAMPLE_ENABLED, Common.PRIMITIVE_BOOLEAN); + result.newOptionalColumn(SpeciesRow.PROPERTY_RTP_MALE_A, Common.FLOAT); + result.newOptionalColumn(SpeciesRow.PROPERTY_RTP_MALE_B, Common.FLOAT); + result.newOptionalColumn(SpeciesRow.PROPERTY_RTP_FEMALE_A, Common.FLOAT); + result.newOptionalColumn(SpeciesRow.PROPERTY_RTP_FEMALE_B, Common.FLOAT); + result.newOptionalColumn(SpeciesRow.PROPERTY_RTP_UNDEFINED_A, Common.FLOAT); + result.newOptionalColumn(SpeciesRow.PROPERTY_RTP_UNDEFINED_B, Common.FLOAT); + return result; + } + + public SpeciesRowModel(char separator) { + super(separator); } @Override public SpeciesRow newEmptyInstance() { - return new SpeciesRow(); + SpeciesRow speciesRow = new SpeciesRow(); + speciesRow.setRtpMale(Rtps.newRtp()); + speciesRow.setRtpFemale(Rtps.newRtp()); + speciesRow.setRtpUndefined(Rtps.newRtp()); + return speciesRow; } } diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportServiceTest.java index c7a479f..f066012 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/protocol/ProtocolImportExportServiceTest.java @@ -27,6 +27,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.io.Files; import fr.ifremer.tutti.persistence.entities.protocol.CaracteristicType; +import fr.ifremer.tutti.persistence.entities.protocol.Rtps; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol; import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocols; import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol; @@ -57,8 +58,6 @@ public class ProtocolImportExportServiceTest { protected ProtocolImportExportService service; - public static final int VRAC_HORS_VRAC = 1428; - public static final int SIZE = 198; public static final int SEX = 196; @@ -69,77 +68,89 @@ public class ProtocolImportExportServiceTest { public static final String PROTOCOL_FILE_CONTENT = "id: 1\n" + - "name: protocolName\n" + - "benthos: \n" + - "- !SpeciesProtocol\n" + - " id: 21\n" + - " calcifySampleEnabled: true\n" + - " lengthStepPmfmId: 1394\n" + - " mandatorySampleCategoryId: \n" + - " - 174\n" + - " - 196\n" + - " speciesReferenceTaxonId: 11242\n" + - " speciesSurveyCode: cruiseCode1\n" + - " weightEnabled: true\n" + - "- !SpeciesProtocol\n" + - " id: 22\n" + - " calcifySampleEnabled: true\n" + - " countIfNoFrequencyEnabled: true\n" + - " lengthStepPmfmId: 323\n" + - " mandatorySampleCategoryId: \n" + - " - 1430\n" + - " - 174\n" + - " - 196\n" + - " - 198\n" + - " speciesReferenceTaxonId: 3835\n" + - " weightEnabled: true\n" + - "caracteristicMapping: \n" + - "- !CaracteristicMappingRow\n" + - " pmfmId: 114\n" + - " tab: VESSEL_USE_FEATURE\n" + - "- !CaracteristicMappingRow\n" + - " pmfmId: 228\n" + - " tab: VESSEL_USE_FEATURE\n" + - "- !CaracteristicMappingRow\n" + - " pmfmId: 821\n" + - " tab: VESSEL_USE_FEATURE\n" + - "- !CaracteristicMappingRow\n" + - " pmfmId: 21\n" + - " tab: GEAR_USE_FEATURE\n" + - "- !CaracteristicMappingRow\n" + - " pmfmId: 262\n" + - " tab: GEAR_USE_FEATURE\n" + - "comment: Commentaire\n" + - "individualObservationPmfmId: \n" + - "- 25\n" + - "- 26\n" + - "lengthClassesPmfmId: \n" + - "- 14\n" + - "- 18\n" + - "species: \n" + - "- !SpeciesProtocol\n" + - " id: 1\n" + - " calcifySampleEnabled: true\n" + - " lengthStepPmfmId: 1394\n" + - " mandatorySampleCategoryId: \n" + - " - 174\n" + - " - 196\n" + - " speciesReferenceTaxonId: 11242\n" + - " speciesSurveyCode: cruiseCode1\n" + - " weightEnabled: true\n" + - "- !SpeciesProtocol\n" + - " id: 2\n" + - " calcifySampleEnabled: true\n" + - " countIfNoFrequencyEnabled: true\n" + - " lengthStepPmfmId: 323\n" + - " mandatorySampleCategoryId: \n" + - " - 1430\n" + - " - 174\n" + - " - 196\n" + - " - 198\n" + - " speciesReferenceTaxonId: 3835\n" + - " weightEnabled: true\n" + - "version: 3"; + "name: protocolName\n" + + "benthos: \n" + + "- !SpeciesProtocol\n" + + " id: 21\n" + + " calcifySampleEnabled: true\n" + + " lengthStepPmfmId: 1394\n" + + " mandatorySampleCategoryId: \n" + + " - 174\n" + + " - 196\n" + + " speciesReferenceTaxonId: 11242\n" + + " speciesSurveyCode: cruiseCode1\n" + + " weightEnabled: true\n" + + "- !SpeciesProtocol\n" + + " id: 22\n" + + " calcifySampleEnabled: true\n" + + " countIfNoFrequencyEnabled: true\n" + + " lengthStepPmfmId: 323\n" + + " mandatorySampleCategoryId: \n" + + " - 1430\n" + + " - 174\n" + + " - 196\n" + + " - 198\n" + + " rtpFemale: !fr.ifremer.tutti.persistence.entities.protocol.RtpBean\n" + + " a: 22.0\n" + + " b: 33.0\n" + + " speciesReferenceTaxonId: 3835\n" + + " weightEnabled: true\n" + + "caracteristicMapping: \n" + + "- !CaracteristicMappingRow\n" + + " pmfmId: 114\n" + + " tab: VESSEL_USE_FEATURE\n" + + "- !CaracteristicMappingRow\n" + + " pmfmId: 228\n" + + " tab: VESSEL_USE_FEATURE\n" + + "- !CaracteristicMappingRow\n" + + " pmfmId: 821\n" + + " tab: VESSEL_USE_FEATURE\n" + + "- !CaracteristicMappingRow\n" + + " pmfmId: 21\n" + + " tab: GEAR_USE_FEATURE\n" + + "- !CaracteristicMappingRow\n" + + " pmfmId: 262\n" + + " tab: GEAR_USE_FEATURE\n" + + "comment: Commentaire\n" + + "individualObservationPmfmId: \n" + + "- 25\n" + + "- 26\n" + + "lengthClassesPmfmId: \n" + + "- 14\n" + + "- 18\n" + + "species: \n" + + "- !SpeciesProtocol\n" + + " id: 1\n" + + " calcifySampleEnabled: true\n" + + " lengthStepPmfmId: 1394\n" + + " mandatorySampleCategoryId: \n" + + " - 174\n" + + " - 196\n" + + " rtpFemale: !fr.ifremer.tutti.persistence.entities.protocol.RtpBean\n" + + " a: 2.0\n" + + " b: 3.0\n" + + " rtpMale: !fr.ifremer.tutti.persistence.entities.protocol.RtpBean\n" + + " a: 1.0\n" + + " b: 2.0\n" + + " rtpUndefined: !fr.ifremer.tutti.persistence.entities.protocol.RtpBean\n" + + " a: 3.0\n" + + " b: 4.0\n" + + " speciesReferenceTaxonId: 11242\n" + + " speciesSurveyCode: cruiseCode1\n" + + " weightEnabled: true\n" + + "- !SpeciesProtocol\n" + + " id: 2\n" + + " calcifySampleEnabled: true\n" + + " countIfNoFrequencyEnabled: true\n" + + " lengthStepPmfmId: 323\n" + + " mandatorySampleCategoryId: \n" + + " - 1430\n" + + " - 174\n" + + " - 196\n" + + " - 198\n" + + " speciesReferenceTaxonId: 3835\n" + + " weightEnabled: true\n" + + "version: 3"; public static final String PROTOCOL_CARACTERISTIC_FILE_CONTENT = "pmfmId;pmfmType;pmfmParameterName;pmfmMatrixName;pmfmFractionName;pmfmMethodName\n" + @@ -163,14 +174,14 @@ public class ProtocolImportExportServiceTest { "5;;parameterName5;matrixName5;fractionName5;methodName5"; public static final String PROTOCOL_SPECIES_FILE_CONTENT = - "speciesReferenceTaxonId;speciesRefTaxCode;speciesName;speciesSurveyCode;lengthStepPmfmId;lengthStepPmfmParameterName;lengthStepPmfmMatrixName;lengthStepPmfmFractionName;lengthStepPmfmMethodName;mandatorySampleCategoryId;weightEnabled;countIfNoFrequencyEnabled;calcifySampleEnabled\n" + - "1;speciesRefTaxCode1;speciesName1;cruiseCode1;2;parameterName2;matrixName2;fractionName2;methodName2;1430|198|174|196;Y;Y;Y\n" + - "2;speciesRefTaxCode2;speciesName2;;;;;;;1430|196;Y;Y;Y"; + "speciesReferenceTaxonId;speciesRefTaxCode;speciesName;speciesSurveyCode;lengthStepPmfmId;lengthStepPmfmParameterName;lengthStepPmfmMatrixName;lengthStepPmfmFractionName;lengthStepPmfmMethodName;mandatorySampleCategoryId;weightEnabled;countIfNoFrequencyEnabled;calcifySampleEnabled;rtpMaleA;rtpMaleB;rtpFemaleA;rtpFemaleB;rtpUndefinedA;rtpUndefinedB\n" + + "1;speciesRefTaxCode1;speciesName1;cruiseCode1;2;parameterName2;matrixName2;fractionName2;methodName2;1430|198|174|196;Y;Y;Y;1.0;2.0;2.0;3.0;3.0;4.0\n" + + "2;speciesRefTaxCode2;speciesName2;;;;;;;1430|196;Y;Y;Y;;;;;;"; public static final String PROTOCOL_BENTHOS_FILE_CONTENT = - "speciesReferenceTaxonId;speciesRefTaxCode;speciesName;speciesSurveyCode;lengthStepPmfmId;lengthStepPmfmParameterName;lengthStepPmfmMatrixName;lengthStepPmfmFractionName;lengthStepPmfmMethodName;mandatorySampleCategoryId;weightEnabled;countIfNoFrequencyEnabled;calcifySampleEnabled\n" + - "1;speciesRefTaxCode1;speciesName1;cruiseCode1;2;parameterName2;matrixName2;fractionName2;methodName2;1430|198|174|196;Y;Y;Y\n" + - "2;speciesRefTaxCode2;speciesName2;;;;;;;1430|196;Y;Y;Y"; + "speciesReferenceTaxonId;speciesRefTaxCode;speciesName;speciesSurveyCode;lengthStepPmfmId;lengthStepPmfmParameterName;lengthStepPmfmMatrixName;lengthStepPmfmFractionName;lengthStepPmfmMethodName;mandatorySampleCategoryId;weightEnabled;countIfNoFrequencyEnabled;calcifySampleEnabled;rtpMaleA;rtpMaleB;rtpFemaleA;rtpFemaleB;rtpUndefinedA;rtpUndefinedB\n" + + "1;speciesRefTaxCode1;speciesName1;cruiseCode1;2;parameterName2;matrixName2;fractionName2;methodName2;1430|198|174|196;Y;Y;Y;;;;;;\n" + + "2;speciesRefTaxCode2;speciesName2;;;;;;;1430|196;Y;Y;Y;;;22.0;33.0;;"; File datadirectory; @@ -219,6 +230,9 @@ public class ProtocolImportExportServiceTest { sp1.addMandatorySampleCategoryId(MATURITY); sp1.addMandatorySampleCategoryId(SEX); sp1.setWeightEnabled(true); + sp1.setRtpMale(Rtps.newRtp(1f, 2f)); + sp1.setRtpFemale(Rtps.newRtp(2f, 3f)); + sp1.setRtpUndefined(Rtps.newRtp(3f, 4f)); protocol.addSpecies(sp1); SpeciesProtocol sp2 = SpeciesProtocols.newSpeciesProtocol(); @@ -260,6 +274,7 @@ public class ProtocolImportExportServiceTest { bp2.addMandatorySampleCategoryId(SEX); bp2.addMandatorySampleCategoryId(SIZE); bp2.setWeightEnabled(true); + bp2.setRtpFemale(Rtps.newRtp(22f, 33f)); protocol.addBenthos(bp2); service.exportProtocol(protocol, exportFile); @@ -311,6 +326,15 @@ public class ProtocolImportExportServiceTest { Assert.assertTrue(sp1.containsMandatorySampleCategoryId(SEX)); Assert.assertFalse(sp1.containsMandatorySampleCategoryId(SIZE)); Assert.assertTrue(sp1.isWeightEnabled()); + Assert.assertTrue(sp1.withRtpMale()); + Assert.assertTrue(sp1.withRtpFemale()); + Assert.assertTrue(sp1.withRtpUndefined()); + Assert.assertEquals(1f, sp1.getRtpMale().getA(), 0.01); + Assert.assertEquals(2f, sp1.getRtpMale().getB(), 0.01); + Assert.assertEquals(2f, sp1.getRtpFemale().getA(), 0.01); + Assert.assertEquals(3f, sp1.getRtpFemale().getB(), 0.01); + Assert.assertEquals(3f, sp1.getRtpUndefined().getA(), 0.01); + Assert.assertEquals(4f, sp1.getRtpUndefined().getB(), 0.01); SpeciesProtocol sp2 = protocol.getSpecies(1); Assert.assertNotNull(sp2); @@ -324,6 +348,9 @@ public class ProtocolImportExportServiceTest { Assert.assertTrue(sp2.containsMandatorySampleCategoryId(SEX)); Assert.assertTrue(sp2.containsMandatorySampleCategoryId(SIZE)); Assert.assertTrue(sp2.isWeightEnabled()); + Assert.assertFalse(sp2.withRtpMale()); + Assert.assertFalse(sp2.withRtpFemale()); + Assert.assertFalse(sp2.withRtpUndefined()); Assert.assertNotNull(protocol.getBenthos()); Assert.assertEquals(2, protocol.sizeBenthos()); @@ -340,6 +367,9 @@ public class ProtocolImportExportServiceTest { Assert.assertTrue(b1.containsMandatorySampleCategoryId(SEX)); Assert.assertFalse(b1.containsMandatorySampleCategoryId(SIZE)); Assert.assertTrue(b1.isWeightEnabled()); + Assert.assertFalse(b1.withRtpMale()); + Assert.assertFalse(b1.withRtpFemale()); + Assert.assertFalse(b1.withRtpUndefined()); SpeciesProtocol b2 = protocol.getBenthos(1); Assert.assertNotNull(b2); @@ -353,6 +383,11 @@ public class ProtocolImportExportServiceTest { Assert.assertTrue(b2.containsMandatorySampleCategoryId(SEX)); Assert.assertTrue(b2.containsMandatorySampleCategoryId(SIZE)); Assert.assertTrue(b2.isWeightEnabled()); + Assert.assertFalse(b2.withRtpMale()); + Assert.assertFalse(b2.withRtpUndefined()); + Assert.assertTrue(b2.withRtpFemale()); + Assert.assertEquals(22f, b2.getRtpFemale().getA(), 0.01); + Assert.assertEquals(33f, b2.getRtpFemale().getB(), 0.01); } //FIXME @@ -368,9 +403,7 @@ public class ProtocolImportExportServiceTest { TuttiProtocol protocol = TuttiProtocols.newTuttiProtocol(); Map<String, Caracteristic> caracteristicMap = createCaracteristics(); - service.importProtocolCaracteristic(file, - protocol, - caracteristicMap); + service.importProtocolCaracteristic(file, protocol, caracteristicMap); Assert.assertEquals(Lists.newArrayList("1"), protocol.getLengthClassesPmfmId()); @@ -395,9 +428,7 @@ public class ProtocolImportExportServiceTest { TuttiProtocol protocol = TuttiProtocols.newTuttiProtocol(); Map<String, Caracteristic> caracteristicMap = createCaracteristics(); - service.importProtocolCaracteristic(file, - protocol, - caracteristicMap); + service.importProtocolCaracteristic(file, protocol, caracteristicMap); } @Test public void exportProtocolCaracteristic() throws Exception { @@ -417,9 +448,7 @@ public class ProtocolImportExportServiceTest { protocol.setIndividualObservationPmfmId(Lists.newArrayList("4")); Assert.assertFalse(file.exists()); - service.exportProtocolCaracteristic(file, - protocol, - caracteristicMap); + service.exportProtocolCaracteristic(file, protocol, caracteristicMap); Assert.assertTrue(file.exists()); @@ -458,10 +487,7 @@ public class ProtocolImportExportServiceTest { Map<String, Species> speciesMap = createSpecies(); Map<String, Caracteristic> caracteristicMap = createCaracteristics(); - service.importProtocolSpecies(file, - protocol, - caracteristicMap, - speciesMap); + service.importProtocolSpecies(file, protocol, caracteristicMap, speciesMap); Assert.assertEquals(2, protocol.sizeSpecies()); @@ -477,6 +503,16 @@ public class ProtocolImportExportServiceTest { Assert.assertTrue(sp1.containsMandatorySampleCategoryId(SEX)); Assert.assertTrue(sp1.containsMandatorySampleCategoryId(SIZE)); Assert.assertTrue(sp1.isWeightEnabled()); + Assert.assertTrue(sp1.isWeightEnabled()); + Assert.assertTrue(sp1.withRtpMale()); + Assert.assertTrue(sp1.withRtpFemale()); + Assert.assertTrue(sp1.withRtpUndefined()); + Assert.assertEquals(1f, sp1.getRtpMale().getA(), 0.01); + Assert.assertEquals(2f, sp1.getRtpMale().getB(), 0.01); + Assert.assertEquals(2f, sp1.getRtpFemale().getA(), 0.01); + Assert.assertEquals(3f, sp1.getRtpFemale().getB(), 0.01); + Assert.assertEquals(3f, sp1.getRtpUndefined().getA(), 0.01); + Assert.assertEquals(4f, sp1.getRtpUndefined().getB(), 0.01); SpeciesProtocol sp2 = protocol.getSpecies().get(1); Assert.assertNotNull(sp2); @@ -490,6 +526,9 @@ public class ProtocolImportExportServiceTest { Assert.assertTrue(sp2.containsMandatorySampleCategoryId(SEX)); Assert.assertFalse(sp2.containsMandatorySampleCategoryId(SIZE)); Assert.assertTrue(sp2.isWeightEnabled()); + Assert.assertFalse(sp2.withRtpMale()); + Assert.assertFalse(sp2.withRtpFemale()); + Assert.assertFalse(sp2.withRtpUndefined()); } @Test @@ -516,6 +555,9 @@ public class ProtocolImportExportServiceTest { sp1.setCountIfNoFrequencyEnabled(true); sp1.setCalcifySampleEnabled(true); sp1.setLengthStepPmfmId("2"); + sp1.setRtpMale(Rtps.newRtp(1f, 2f)); + sp1.setRtpFemale(Rtps.newRtp(2f, 3f)); + sp1.setRtpUndefined(Rtps.newRtp(3f, 4f)); protocol.addSpecies(sp1); @@ -534,10 +576,7 @@ public class ProtocolImportExportServiceTest { protocol.addSpecies(sp2); Assert.assertFalse(file.exists()); - service.exportProtocolSpecies(file, - protocol.getSpecies(), - createCaracteristics(), - speciesMap); + service.exportProtocolSpecies(file, protocol.getSpecies(), createCaracteristics(), speciesMap); Assert.assertTrue(file.exists()); @@ -558,10 +597,7 @@ public class ProtocolImportExportServiceTest { Map<String, Species> speciesMap = createSpecies(); Map<String, Caracteristic> caracteristicMap = createCaracteristics(); - service.importProtocolBenthos(file, - protocol, - caracteristicMap, - speciesMap); + service.importProtocolBenthos(file, protocol, caracteristicMap, speciesMap); Assert.assertEquals(2, protocol.sizeBenthos()); @@ -577,6 +613,9 @@ public class ProtocolImportExportServiceTest { Assert.assertTrue(sp1.containsMandatorySampleCategoryId(SEX)); Assert.assertTrue(sp1.containsMandatorySampleCategoryId(SIZE)); Assert.assertTrue(sp1.isWeightEnabled()); + Assert.assertFalse(sp1.withRtpMale()); + Assert.assertFalse(sp1.withRtpFemale()); + Assert.assertFalse(sp1.withRtpUndefined()); SpeciesProtocol sp2 = protocol.getBenthos(1); Assert.assertNotNull(sp2); @@ -590,6 +629,12 @@ public class ProtocolImportExportServiceTest { Assert.assertTrue(sp2.containsMandatorySampleCategoryId(SEX)); Assert.assertFalse(sp2.containsMandatorySampleCategoryId(SIZE)); Assert.assertTrue(sp2.isWeightEnabled()); + Assert.assertFalse(sp2.withRtpMale()); + Assert.assertFalse(sp2.withRtpUndefined()); + Assert.assertTrue(sp2.withRtpFemale()); + Assert.assertEquals(22f, sp2.getRtpFemale().getA(), 0.01); + Assert.assertEquals(33f, sp2.getRtpFemale().getB(), 0.01); + } @Test @@ -632,14 +677,12 @@ public class ProtocolImportExportServiceTest { sp2.setCalcifySampleEnabled(true); sp2.setCountIfNoFrequencyEnabled(true); sp2.setLengthStepPmfmId(null); + sp2.setRtpFemale(Rtps.newRtp(22f, 33f)); protocol.addBenthos(sp2); Assert.assertFalse(file.exists()); - service.exportProtocolBenthos(file, - protocol.getBenthos(), - createCaracteristics(), - speciesMap); + service.exportProtocolBenthos(file, protocol.getBenthos(), createCaracteristics(), speciesMap); Assert.assertTrue(file.exists()); diff --git a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/ExportProtocolSpeciesAction.java b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/ExportProtocolSpeciesAction.java index fd5727b..d1ecea2 100644 --- a/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/ExportProtocolSpeciesAction.java +++ b/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/actions/ExportProtocolSpeciesAction.java @@ -101,16 +101,13 @@ public class ExportProtocolSpeciesAction extends LongActionSupport<EditProtocolU } } - // import - ProtocolImportExportService service = - getContext().getTuttiProtocolImportExportService(); + ProtocolImportExportService service = getContext().getTuttiProtocolImportExportService(); service.exportProtocolSpecies(file, protocols, model.getAllCaracteristic(), model.getAllReferentSpeciesByTaxonId()); - sendMessage(t("tutti.flash.info.species.exported.from.protocol", - file)); + sendMessage(t("tutti.flash.info.species.exported.from.protocol", file)); } } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm