This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit f08a90aaa61173b5aa3b512ef973b3b80dff6f7f Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Oct 21 18:35:06 2014 +0200 refs #5997 adapt import - export models --- .../entities/data/SpeciesAbleBatch.java | 63 ---------------------- .../tutti/service/referential/GearModel.java | 24 +++++++++ .../tutti/service/referential/PersonModel.java | 25 +++++++++ .../tutti/service/referential/SpeciesModel.java | 24 +++++++++ .../tutti/service/referential/VesselModel.java | 25 +++++++++ .../tutti/service/PersistenceServiceTest.java | 20 +++---- .../referential/ReferentialExportServiceTest.java | 36 ++++++------- .../referential/ReferentialImportServiceTest.java | 48 ++++++++--------- 8 files changed, 150 insertions(+), 115 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SpeciesAbleBatch.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SpeciesAbleBatch.java deleted file mode 100644 index 9f6fc1e..0000000 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/data/SpeciesAbleBatch.java +++ /dev/null @@ -1,63 +0,0 @@ -package fr.ifremer.tutti.persistence.entities.data; - -import fr.ifremer.tutti.persistence.entities.CommentAware; -import fr.ifremer.tutti.persistence.entities.TuttiEntity; -import fr.ifremer.tutti.persistence.entities.referential.Species; -import java.io.Serializable; -import java.util.List; -import javax.annotation.Generated; - -@Generated(value = "org.nuiton.eugene.java.JavaInterfaceTransformer", date = "Mon Oct 20 10:51:27 CEST 2014") -public interface SpeciesAbleBatch extends TuttiEntity, CommentAware { - - Species getSpecies(); - - void setSpecies(Species species); - - Integer getSampleCategoryId(); - - Serializable getSampleCategoryValue(); - - Float getSampleCategoryWeight(); - - Integer getNumber(); - - boolean isSpeciesToConfirm(); - - Float getSampleCategoryComputedWeight(); - - Integer getComputedNumber(); - - Float getComputedWeight(); - - void setSampleCategoryId(Integer categoryId); - - void setSampleCategoryValue(Serializable categoryValue); - - void setSampleCategoryWeight(Float categoryWeight); - - void setNumber(Integer number); - - void setSpeciesToConfirm(boolean speciesToConfirm); - - void setSampleCategoryComputedWeight(Float sampleCategoryComputedWeight); - - void setComputedNumber(Integer computedNumber); - - void setComputedWeight(Float computedWeight); - - SpeciesAbleBatch getParentBatch(); - - boolean isChildBatchsEmpty(); - - List<? extends SpeciesAbleBatch> getChildBatchs(); - - Float getWeight(); - - void setWeight(Float weight); - - Integer getRankOrder(); - - void setRankOrder(Integer rankOrder); - -} //SpeciesAbleBatch diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java index 1ad905f..b52faef 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/GearModel.java @@ -24,9 +24,11 @@ package fr.ifremer.tutti.service.referential; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Gears; +import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.service.TuttiCsvUtil; import org.nuiton.csv.Common; +import java.text.ParseException; import java.util.Set; import static org.nuiton.i18n.I18n.n; @@ -44,12 +46,34 @@ public class GearModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Gear> // import definition + newMandatoryColumn(Gear.PROPERTY_ID, new Common.IntegerParserFormatter(null, true) { + + @Override + public Integer parse(String value) throws ParseException { + + // must be an integer + Integer parse = super.parse(value); + + if (parse != null) { + + // must also be negative value + if (parse >= 0) { + throw new IllegalArgumentException("Id of a temporary gear must be negative, but was: " + parse); + } + } + + return parse; + + } + + }); newNotExistingValueColumn(Gear.PROPERTY_NAME, existingGearName, n("tutti.service.referential.import.gear.existingName.error")); newMandatoryColumn(Gear.PROPERTY_LABEL); newMandatoryColumn(Gear.PROPERTY_SCIENTIFIC_GEAR, Common.PRIMITIVE_BOOLEAN); // export definition + newColumnForExport(Gear.PROPERTY_ID); newColumnForExport(Gear.PROPERTY_NAME); newColumnForExport(Gear.PROPERTY_LABEL); newColumnForExport(Gear.PROPERTY_SCIENTIFIC_GEAR, Common.PRIMITIVE_BOOLEAN); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java index 5fc670d..6c9a4e7 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/PersonModel.java @@ -25,6 +25,9 @@ package fr.ifremer.tutti.service.referential; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Persons; import fr.ifremer.tutti.service.TuttiCsvUtil; +import org.nuiton.csv.Common; + +import java.text.ParseException; /** * Model to import / export {@link Person} in csv format. @@ -39,11 +42,33 @@ public class PersonModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Per // import definition + newMandatoryColumn(Person.PROPERTY_ID, new Common.IntegerParserFormatter(null, true) { + + @Override + public Integer parse(String value) throws ParseException { + + // must be an integer + Integer parse = super.parse(value); + + if (parse != null) { + + // must also be negative value + if (parse >= 0) { + throw new IllegalArgumentException("Id of a temporary person must be negative, but was: " + parse); + } + } + + return parse; + + } + + }); newMandatoryColumn(Person.PROPERTY_FIRST_NAME); newMandatoryColumn(Person.PROPERTY_LAST_NAME); // export definition + newColumnForExport(Person.PROPERTY_ID); newColumnForExport(Person.PROPERTY_FIRST_NAME); newColumnForExport(Person.PROPERTY_LAST_NAME); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java index 019af0b..8ef2174 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/SpeciesModel.java @@ -25,7 +25,9 @@ package fr.ifremer.tutti.service.referential; import fr.ifremer.tutti.persistence.entities.referential.Species; import fr.ifremer.tutti.persistence.entities.referential.Speciess; import fr.ifremer.tutti.service.TuttiCsvUtil; +import org.nuiton.csv.Common; +import java.text.ParseException; import java.util.Set; import static org.nuiton.i18n.I18n.n; @@ -43,10 +45,32 @@ public class SpeciesModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Sp // import definition + newMandatoryColumn(Species.PROPERTY_ID, new Common.IntegerParserFormatter(null, true) { + + @Override + public Integer parse(String value) throws ParseException { + + // must be an integer + Integer parse = super.parse(value); + + if (parse != null) { + + // must also be negative value + if (parse >= 0) { + throw new IllegalArgumentException("Id of a temporary species must be negative, but was: " + parse); + } + } + + return parse; + + } + + }); newNotExistingValueColumn(Species.PROPERTY_NAME, existingSpeciesName, n("tutti.service.referential.import.species.existingName.error")); // export definition + newColumnForExport(Species.PROPERTY_ID); newColumnForExport(Species.PROPERTY_NAME); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java index 94b3a3f..5547b46 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/referential/VesselModel.java @@ -22,9 +22,11 @@ package fr.ifremer.tutti.service.referential; * #L% */ +import fr.ifremer.adagio.core.dao.technical.hibernate.TemporaryDataHelper; import fr.ifremer.tutti.persistence.entities.referential.Vessel; import fr.ifremer.tutti.persistence.entities.referential.Vessels; import fr.ifremer.tutti.service.TuttiCsvUtil; +import org.apache.commons.lang3.StringUtils; import org.nuiton.csv.Common; /** @@ -40,12 +42,35 @@ public class VesselModel extends TuttiCsvUtil.AbstractTuttiImportExportModel<Ves // import definition + newMandatoryColumn("id", Vessel.PROPERTY_REGISTRATION_CODE, new Common.StringValueParser() { + + @Override + public String parse(String value) { + + // must be an integer + String parse = super.parse(value); + + if (StringUtils.isNotBlank(parse)) { + + // must also start with the temporary prefix + if (!parse.startsWith(TemporaryDataHelper.TEMPORARY_NAME_PREFIX)) { + throw new IllegalArgumentException("Code of a temporary vessel must starts with " + TemporaryDataHelper.TEMPORARY_NAME_PREFIX + ", but was: " + parse); + } + } + + return parse; + + } + + }); + newMandatoryColumn(Vessel.PROPERTY_NAME); newMandatoryColumn(Vessel.PROPERTY_INTERNATIONAL_REGISTRATION_CODE); newMandatoryColumn(Vessel.PROPERTY_SCIENTIFIC_VESSEL, Common.PRIMITIVE_BOOLEAN); // export definition + newColumnForExport("id", Vessel.PROPERTY_REGISTRATION_CODE); newColumnForExport(Vessel.PROPERTY_NAME); newColumnForExport(Vessel.PROPERTY_INTERNATIONAL_REGISTRATION_CODE); newColumnForExport(Vessel.PROPERTY_SCIENTIFIC_VESSEL, Common.PRIMITIVE_BOOLEAN); diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/PersistenceServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/PersistenceServiceTest.java index 0915db0..098b3d4 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/PersistenceServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/PersistenceServiceTest.java @@ -91,7 +91,7 @@ public class PersistenceServiceTest { Gear source = service.getGear(-3); Gear target = service.getGear(377); - service.replaceGear(source, target, ); + service.replaceGear(source, target, false); } { @@ -110,7 +110,7 @@ public class PersistenceServiceTest { Gear source = service.getGear(-4); Gear target = service.getGear(378); - service.replaceGear(source, target, ); + service.replaceGear(source, target,false ); } { @@ -152,7 +152,7 @@ public class PersistenceServiceTest { Person source = service.getPerson(-1); Person target = service.getPerson(1); - service.replacePerson(source, target, ); + service.replacePerson(source, target, false); } { service = dbResource.getServiceContext().getService(PersistenceService.class); @@ -169,7 +169,7 @@ public class PersistenceServiceTest { Person source = service.getPerson(-2); Person target = service.getPerson(2); - service.replacePerson(source, target, ); + service.replacePerson(source, target, false); } { Cruise cruise = service.getCruise("0"); @@ -184,7 +184,7 @@ public class PersistenceServiceTest { Person source = service.getPerson(-3); Person target = service.getPerson(3); - service.replacePerson(source, target, ); + service.replacePerson(source, target, false); } { Cruise cruise = service.getCruise("0"); @@ -225,7 +225,7 @@ public class PersistenceServiceTest { Species source = service.getSpeciesByReferenceTaxonId(-1); Species target = service.getSpeciesByReferenceTaxonId(1); - service.replaceSpecies(source, target, ); + service.replaceSpecies(source, target, false); } { @@ -246,7 +246,7 @@ public class PersistenceServiceTest { Species source = service.getSpeciesByReferenceTaxonId(-2); Species target = service.getSpeciesByReferenceTaxonId(2); - service.replaceSpecies(source, target, ); + service.replaceSpecies(source, target,false ); } { @@ -266,7 +266,7 @@ public class PersistenceServiceTest { Species source = service.getSpeciesByReferenceTaxonId(-3); Species target = service.getSpeciesByReferenceTaxonId(3); - service.replaceSpecies(source, target, ); + service.replaceSpecies(source, target, false); } { @@ -307,7 +307,7 @@ public class PersistenceServiceTest { Vessel source = service.getVessel("#TEMP¿International registration code S3"); Vessel target = service.getVessel("267206"); - service.replaceVessel(source, target, ); + service.replaceVessel(source, target, false); } { Cruise cruise = service.getCruise("0"); @@ -322,7 +322,7 @@ public class PersistenceServiceTest { Vessel source = service.getVessel("#TEMP¿International registration code S4"); Vessel target = service.getVessel("278970"); - service.replaceVessel(source, target, ); + service.replaceVessel(source, target, false); } { Cruise cruise = service.getCruise("0"); diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialExportServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialExportServiceTest.java index 8c5f62e..c708391 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialExportServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialExportServiceTest.java @@ -46,30 +46,30 @@ public class ReferentialExportServiceTest { protected File dataDirectory; private static final String SPECIES_FILE_CONTENT = - "name\n" + - "Temporary Species name 1\n" + - "Temporary Species name 2\n" + - "Temporary Species name 3"; + "id;name\n" + + ";Temporary Species name 1\n" + + ";Temporary Species name 2\n" + + ";Temporary Species name 3"; private static final String GEAR_FILE_CONTENT = - "name;label;scientificGear\n" + - "Gear fishing name 1;Gear fishing label 1;N\n" + - "Gear fishing name 2;Gear fishing label 2;N\n" + - "Gear scientific name 3;Gear scientific label 3;Y\n" + - "Gear scientific name 4;Gear scientific label 4;Y"; + "id;name;label;scientificGear\n" + + ";Gear fishing name 1;Gear fishing label 1;N\n" + + ";Gear fishing name 2;Gear fishing label 2;N\n" + + ";Gear scientific name 3;Gear scientific label 3;Y\n" + + ";Gear scientific name 4;Gear scientific label 4;Y"; private static final String PERSON_FILE_CONTENT = - "firstName;lastName\n" + - "First name 1;Last name 1\n" + - "First name 2;Last name 2\n" + - "First name 3;Last name 3"; + "id;firstName;lastName\n" + + ";First name 1;Last name 1\n" + + ";First name 2;Last name 2\n" + + ";First name 3;Last name 3"; private static final String VESSEL_FILE_CONTENT = - "name;internationalRegistrationCode;scientificVessel\n" + - "Temporary fishing vessel name 1;International registration code F1;N\n" + - "Temporary fishing vessel name 2;International registration code F2;N\n" + - "Temporary scientific vessel name 3;International registration code S3;Y\n" + - "Temporary scientific vessel name 4;International registration code S4;Y"; + "id;name;internationalRegistrationCode;scientificVessel\n" + + ";Temporary fishing vessel name 1;International registration code F1;N\n" + + ";Temporary fishing vessel name 2;International registration code F2;N\n" + + ";Temporary scientific vessel name 3;International registration code S3;Y\n" + + ";Temporary scientific vessel name 4;International registration code S4;Y"; protected ReferentialImportService service; diff --git a/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialImportServiceTest.java b/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialImportServiceTest.java index 3a840b3..a4fcd68 100644 --- a/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialImportServiceTest.java +++ b/tutti-service/src/test/java/fr/ifremer/tutti/service/referential/ReferentialImportServiceTest.java @@ -52,38 +52,38 @@ public class ReferentialImportServiceTest { protected File dataDirectory; private static final String SPECIES_FILE_CONTENT = - "name\n" + - "Temporary Species name 1\n" + - "Temporary Species name 2\n" + - "Temporary Species name 3"; + "id;name\n" + + ";Temporary Species name 1\n" + + ";Temporary Species name 2\n" + + ";Temporary Species name 3"; private static final String GEAR_FILE_CONTENT = - "name;label;scientificGear\n" + - "Gear fishing name 1;Gear fishing label 1;N\n" + - "Gear fishing name 2;Gear fishing label 2;N\n" + - "Gear scientific name 3;Gear scientific label 3;Y\n" + - "Gear scientific name 4;Gear scientific label 4;Y"; + "id;name;label;scientificGear\n" + + ";Gear fishing name 1;Gear fishing label 1;N\n" + + ";Gear fishing name 2;Gear fishing label 2;N\n" + + ";Gear scientific name 3;Gear scientific label 3;Y\n" + + ";Gear scientific name 4;Gear scientific label 4;Y"; private static final String PERSON_FILE_CONTENT = - "firstName;lastName\n" + - "First name 1;Last name 1\n" + - "First name 2;Last name 2\n" + - "First name 3;Last name 3"; + "id;firstName;lastName\n" + + ";First name 1;Last name 1\n" + + ";First name 2;Last name 2\n" + + ";First name 3;Last name 3"; private static final String VESSEL_FILE_CONTENT = - "name;internationalRegistrationCode;scientificVessel\n" + - "Temporary fishing vessel name 1;International registration code F1;N\n" + - "Temporary fishing vessel name 2;International registration code F2;N\n" + - "Temporary scientific vessel name 3;International registration code S3;Y\n" + - "Temporary scientific vessel name 4;International registration code S4;Y"; + "id;name;internationalRegistrationCode;scientificVessel\n" + + ";Temporary fishing vessel name 1;International registration code F1;N\n" + + ";Temporary fishing vessel name 2;International registration code F2;N\n" + + ";Temporary scientific vessel name 3;International registration code S3;Y\n" + + ";Temporary scientific vessel name 4;International registration code S4;Y"; private static final String DUPLICATE_VESSEL_FILE_CONTENT = - "name;internationalRegistrationCode;scientificVessel\n" + - "Temporary fishing vessel name 1;International registration code F1;N\n" + - "Temporary fishing vessel name 1;International registration code F1;N\n" + - "Temporary fishing vessel name 2;International registration code F2;N\n" + - "Temporary scientific vessel name 3;International registration code S3;Y\n" + - "Temporary scientific vessel name 4;International registration code S4;Y"; + "id;name;internationalRegistrationCode;scientificVessel\n" + + ";Temporary fishing vessel name 1;International registration code F1;N\n" + + ";Temporary fishing vessel name 1;International registration code F1;N\n" + + ";Temporary fishing vessel name 2;International registration code F2;N\n" + + ";Temporary scientific vessel name 3;International registration code S3;Y\n" + + ";Temporary scientific vessel name 4;International registration code S4;Y"; protected ReferentialImportService service; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.