Author: tchemit Date: 2014-03-21 15:04:03 +0100 (Fri, 21 Mar 2014) New Revision: 1631 Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1631 Log: fixes #4724: [EXPORT GENERIQUE] probl?\195?\168me du format quand il y a un commentaire sr une ligne esp?\195?\168ce (cas du traitement d'un m?\195?\169lange) + use Objects API Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoImplTutti.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrderBean.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/AccidentalCatchExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/IndividualObservationExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/MarineLitterExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/SurveyExportModel.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/generic/TuttiExportService2Test.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoImplTutti.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoImplTutti.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/dao/GearPhysicalFeaturesDaoImplTutti.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -30,12 +30,13 @@ import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.GearPhysicalFeaturesDaoImpl; import fr.ifremer.adagio.core.dao.referential.gear.Gear; import fr.ifremer.adagio.core.dao.referential.gear.GearImpl; -import org.apache.commons.lang3.ObjectUtils; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Repository; +import java.util.Objects; + /** * Created on 9/28/13. * @@ -66,8 +67,8 @@ // Retrieve entities : Gear Physical Features if (fishingTrip.getGearPhysicalFeatures() != null && fishingTrip.getGearPhysicalFeatures().size() >= 0) { for (GearPhysicalFeatures guf : fishingTrip.getGearPhysicalFeatures()) { - if (ObjectUtils.equals(rankOrder, guf.getRankOrder()) && - ObjectUtils.equals(gearId, guf.getGear().getId())) { + if (Objects.equals(rankOrder, guf.getRankOrder()) && + Objects.equals(gearId, guf.getGear().getId())) { return guf; } } Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -30,6 +30,7 @@ import java.io.Serializable; import java.util.Collection; import java.util.List; +import java.util.Objects; /** * Abstract tutti entity. @@ -86,7 +87,7 @@ TuttiEntityBean that = (TuttiEntityBean) o; - return ObjectUtils.equals(id, that.id); + return Objects.equals(id, that.id); } @Override Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrderBean.java =================================================================== --- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrderBean.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/GearWithOriginalRankOrderBean.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -24,9 +24,8 @@ * #L% */ -import org.apache.commons.lang3.ObjectUtils; - import javax.annotation.Generated; +import java.util.Objects; @Generated(value = "org.nuiton.eugene.java.SimpleJavaBeanTransformer", date = "Wed Oct 02 14:23:47 CEST 2013") public class GearWithOriginalRankOrderBean extends GearBean implements GearWithOriginalRankOrder { @@ -49,7 +48,7 @@ public boolean equals(Object o) { boolean result = super.equals(o); if (result) { - result = ObjectUtils.equals(rankOrder, ((GearWithOriginalRankOrder) o).getRankOrder()); + result = Objects.equals(rankOrder, ((GearWithOriginalRankOrder) o).getRankOrder()); } return result; } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -29,8 +29,6 @@ import com.google.common.base.Predicate; import com.google.common.collect.Lists; import com.google.common.collect.Maps; -import org.nuiton.jaxx.application.ApplicationBusinessException; -import org.nuiton.jaxx.application.ApplicationIOUtil; import fr.ifremer.tutti.TuttiConfiguration; import fr.ifremer.tutti.persistence.InvalidBatchModelException; import fr.ifremer.tutti.persistence.TuttiPersistence; @@ -68,13 +66,14 @@ import fr.ifremer.tutti.persistence.service.TuttiPersistenceServiceLocator; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.commons.vfs2.AllFileSelector; import org.apache.commons.vfs2.FileName; import org.apache.commons.vfs2.FileObject; import org.apache.commons.vfs2.FileType; +import org.nuiton.jaxx.application.ApplicationBusinessException; +import org.nuiton.jaxx.application.ApplicationIOUtil; import org.nuiton.util.TimeLog; import org.nuiton.util.Version; @@ -86,6 +85,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.Callable; import static org.nuiton.i18n.I18n.t; @@ -1067,7 +1067,7 @@ public FishingOperation createFishingOperation(FishingOperation bean) { // see http://forge.codelutin.com/issues/2014 - if (ObjectUtils.equals(bean.getGearShootingStartDate(), bean.getGearShootingEndDate())) { + if (Objects.equals(bean.getGearShootingStartDate(), bean.getGearShootingEndDate())) { bean.setGearShootingEndDate(null); } return driver.createFishingOperation(bean); @@ -1076,7 +1076,7 @@ @Override public FishingOperation saveFishingOperation(FishingOperation bean) { // see http://forge.codelutin.com/issues/2014 - if (ObjectUtils.equals(bean.getGearShootingStartDate(), bean.getGearShootingEndDate())) { + if (Objects.equals(bean.getGearShootingStartDate(), bean.getGearShootingEndDate())) { bean.setGearShootingEndDate(null); } return driver.saveFishingOperation(bean); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/TuttiCsvUtil.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -96,6 +96,13 @@ } }; + public static final ValueFormatter<String> COMMENT_FORMATTER = new ValueFormatter<String>() { + @Override + public String format(String value) { + return value == null ? "" : value.replaceAll("\n", "@@"); + } + }; + public static final ValueFormatter<Caracteristic> CARACTERISTIC_ID_FORMATTER = new ValueFormatter<Caracteristic>() { @Override public String format(Caracteristic value) { Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/AccidentalCatchExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/AccidentalCatchExportModel.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/AccidentalCatchExportModel.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -77,12 +77,11 @@ newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); -// newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER); newColumnForExport("BatchId", AccidentalCatchExportRow.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); newColumnForExport("ReferenceTaxonId", AccidentalBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); newColumnForExport("ReferenceTaxonName", AccidentalBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_NAME); - newColumnForExport("Commentaire", AccidentalBatch.PROPERTY_COMMENT); + newColumnForExport("Commentaire", AccidentalBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_FORMATTER); newColumnForExport("CaracteristicId", AccidentalCatchExportRow.PROPERTY_CARACTERISTIC, Caracteristic.PROPERTY_ID); newColumnForExport("CaracteristicValue", AccidentalCatchExportRow.PROPERTY_CARACTERISTIC_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -71,11 +71,10 @@ newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); -// newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER); newColumnForExport("Code_Taxon", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.INTEGER); newColumnForExport("Code_Espece_Campagne", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_SURVEY_CODE); newColumnForExport("Nom_scientifique", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_NAME); - newColumnForExport("Commentaire", SpeciesBatch.PROPERTY_COMMENT); + newColumnForExport("Commentaire", SpeciesBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_FORMATTER); for (SampleCategoryModelEntry entry : sampleCategoryModel.getCategory()) { addSampleCategory(entry.getCanonicalLabel(), entry.getOrder()); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/IndividualObservationExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/IndividualObservationExportModel.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/IndividualObservationExportModel.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -69,12 +69,11 @@ newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); -// newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER); newColumnForExport("BatchId", IndividualObservationExportRow.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); newColumnForExport("ReferenceTaxonId", IndividualObservationBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.PRIMITIVE_INTEGER); newColumnForExport("ReferenceTaxonName", IndividualObservationBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_NAME); - newColumnForExport("Commentaire", IndividualObservationBatch.PROPERTY_COMMENT); + newColumnForExport("Commentaire", IndividualObservationBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_FORMATTER); newColumnForExport("CaracteristicId", IndividualObservationExportRow.PROPERTY_CARACTERISTIC, Caracteristic.PROPERTY_ID); newColumnForExport("CaracteristicValue", IndividualObservationExportRow.PROPERTY_CARACTERISTIC_VALUE, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); } Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/MarineLitterExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/MarineLitterExportModel.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/MarineLitterExportModel.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -54,13 +54,12 @@ newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER); newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION); -// newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER); newColumnForExport("MarineLitterCategory", MarineLitterBatch.PROPERTY_MARINE_LITTER_CATEGORY, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); newColumnForExport("MarineLitterSizeCategory", MarineLitterBatch.PROPERTY_MARINE_LITTER_SIZE_CATEGORY, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER); newColumnForExport("Number", MarineLitterBatch.PROPERTY_NUMBER, TuttiCsvUtil.INTEGER); newColumnForExport("Weight", MarineLitterBatch.PROPERTY_WEIGHT, TuttiCsvUtil.FLOAT); - newColumnForExport("Commentaire", MarineLitterBatch.PROPERTY_COMMENT); + newColumnForExport("Commentaire", MarineLitterBatch.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_FORMATTER); } public void prepareRows(PersistenceService persistenceService, Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportModel.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/OperationExportModel.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -70,7 +70,7 @@ newColumnForExport("Distance", FishingOperation.PROPERTY_TRAWL_DISTANCE, TuttiCsvUtil.FLOAT_NULL_TO_9); newColumnForExport("Saisisseur", FishingOperation.PROPERTY_RECORDER_PERSON, TuttiCsvUtil.LIST_PERSON_FORMATTER); newColumnForExport("NavireAssocie", FishingOperation.PROPERTY_SECONDARY_VESSEL, TuttiCsvUtil.newListVesselFormatter(vesselDecorator)); - newColumnForExport("Commentaire", FishingOperation.PROPERTY_COMMENT); + newColumnForExport("Commentaire", FishingOperation.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_FORMATTER); newNullableColumnForExport("Poids_Total", OperationExportRow.PROPERTY_CATCH_TOTAL_WEIGHT, TuttiCsvUtil.FLOAT_NULL_TO_9); newNullableColumnForExport("Poids_Total_Calcule", OperationExportRow.PROPERTY_CATCH_TOTAL_WEIGHT_COMPUTED, TuttiCsvUtil.BOOLEAN); Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/SurveyExportModel.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/SurveyExportModel.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/SurveyExportModel.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -50,15 +50,13 @@ newColumnForExport("Zone_Etude", Program.PROPERTY_ZONE, TuttiLocation.PROPERTY_NAME); newColumnForExport("Campagne", Cruise.PROPERTY_NAME); newColumnForExport("Id_Sismer", SurveyExportRow.PROPERTY_ID_SISMER); -// newColumnForExport("Nombre_de_poche", Cruise.PROPERTY_MULTIRIG_NUMBER, TuttiCsvUtil.PRIMITIVE_INTEGER); newColumnForExport("Date_Deb_Campagne", Cruise.PROPERTY_BEGIN_DATE, TuttiCsvUtil.DAY_TIME_SECOND); newColumnForExport("Port_Deb_Campagne", Cruise.PROPERTY_DEPARTURE_LOCATION, TuttiLocation.PROPERTY_NAME); newColumnForExport("Date_Fin_Campagne", Cruise.PROPERTY_END_DATE, TuttiCsvUtil.DAY_TIME_SECOND); newColumnForExport("Port_Fin_Campagne", Cruise.PROPERTY_RETURN_LOCATION, TuttiLocation.PROPERTY_NAME); -// newColumnForExport("Engin", Cruise.PROPERTY_GEAR, TuttiCsvUtil.LIST_GEAR_FORMATTER); newColumnForExport("Chef_Mission", Cruise.PROPERTY_HEAD_OF_MISSION, TuttiCsvUtil.LIST_PERSON_FORMATTER); newColumnForExport("Resp_Salle_Tri", Cruise.PROPERTY_HEAD_OF_SORT_ROOM, TuttiCsvUtil.LIST_PERSON_FORMATTER); - newColumnForExport("Commentaire", Cruise.PROPERTY_COMMENT); + newColumnForExport("Commentaire", Cruise.PROPERTY_COMMENT, TuttiCsvUtil.COMMENT_FORMATTER); } public void prepareRows(List<SurveyExportRow> rows, Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/TuttiExportService.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -194,6 +194,7 @@ } // check cruise fishing operations + ApplicationBusinessException checkError = null; try { checkCruise(progressionModel, cruise, null); } catch (ApplicationBusinessException e) { @@ -201,7 +202,7 @@ if (log.isDebugEnabled()) { log.debug("Got a check cruise error", e); } - throw e; + checkError = e; } File basedir = new File(context.getConfig().newTempFile( @@ -219,9 +220,18 @@ t("tutti.service.exportCruise.buildZip", exportFile)); ApplicationIOUtil.zip(basedir, exportFile, t("tutti.service.export.zip.error", exportFile)); + } catch (ApplicationBusinessException e) { + if (checkError != null) { + throw checkError; + } + throw e; } finally { IOUtils.closeQuietly(exportContext); } + + if (checkError != null) { + throw checkError; + } } /** Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java =================================================================== --- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/psionimport/PsionImportService.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -54,7 +54,6 @@ import fr.ifremer.tutti.service.TuttiServiceContext; import fr.ifremer.tutti.type.WeightUnit; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.mutable.MutableInt; import org.apache.commons.logging.Log; @@ -72,6 +71,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import static org.nuiton.i18n.I18n.t; @@ -249,7 +249,8 @@ result.addError( t("tutti.service.psionimport.error.invalidSampleCategoryModel.message", - Joiner.on("").join(missingCategories))); + Joiner.on("").join(missingCategories)) + ); } else { // persist in db @@ -284,8 +285,8 @@ throw new IOException(t("tutti.service.psionimport.error.invalid.date.format")); } - boolean correctOperation = ObjectUtils.equals(operationCode, operation.getStationNumber()) && - ObjectUtils.equals(operationDate, operation.getGearShootingStartDate()); + boolean correctOperation = Objects.equals(operationCode, operation.getStationNumber()) && + Objects.equals(operationDate, operation.getGearShootingStartDate()); if (!correctOperation) { throw new IOException(t("tutti.service.psionimport.error.invalid.operation")); Modified: trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/generic/TuttiExportService2Test.java =================================================================== --- trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/generic/TuttiExportService2Test.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-service/src/test/java/fr/ifremer/tutti/service/export/generic/TuttiExportService2Test.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -158,18 +158,8 @@ ServiceDbResource.assertFileContent("operation export:\n", url, "Annee;Serie;Serie_Partielle;Code_Station;Id_Operation;Poche;Engin;Navire;DateDeb_Op;LatDeb;LongDeb;DateFin_Op;LatFin;LongFin;Duree;Strate;Sous-Strate;Localite;Validite_OP;Rectiligne;Distance;Saisisseur;NavireAssocie;Commentaire;Poids_Total;Poids_Total_Calcule;Poids_Total_Vrac;Poids_Total_Vrac_Calcule;Poids_Total_HorsVrac;Poids_Total_HorsVrac_Calcule;Poids_Total_Non_Trie;Poids_Total_Non_Trie_Calcule;Poids_Total_Tremis;Poids_Total_Tremis_Calcule;Poids_Total_Carroussel;Poids_Total_Carroussel_Calcule;Poids_Total_Espece;Poids_Total_Espece_Calcule;Poids_Total_Espece_Vrac;Poids_Total_Espece_Vrac_Calcule;Poids_Total_Espece_Vrac_Trie;Poids_Total_Espece_Vrac_Trie_Calcule;Poids_Total_Espece_HorsVrac;Poids_Total_Espece_HorsVrac_Calcule;Poids_Total_Espece_Inerte_Trie;Poids_Total_Espece_Inerte_Trie_Calcule;Poids_Total_Espece_Vivant_non_detaille_trie;Poids_Total_Espece_Vivant_non_detaille_trie_Calcule;Poids_Total_Benthos;Poids_Total_Benthos_Calcule;Poids_Total_Benthos_Vrac;Poids_Total_Benthos_Vrac_Calcule;Poids_Total_Benthos_Vrac_Trie;Poids_Total_Benthos_Vrac_Trie_Calcule;Poids_Total_Benthos_HorsVrac;Poids_Total_Benthos_HorsVrac_Calcule;Poids_Total_Benthos_Inerte_Trie;Poids_Total_Benthos_Inerte_Trie_Calcule;Poids_Total_Benthos_Vivant_non_detaille_trie;Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule;Poids_Total_Macro_Dechet;Poids_Total_Macro_Dechet_Calcule\n" + - "2013;test elevation;1;B;2;1;OTB 20/28.10;278970;01/07/2013 00:00:00;;;01/07/2013 00:00:00;;;00;NA;NA;NA;?;N;-9.0;;;\"Commentaire sur le trait B-2-1\n" + - "\n" + - "avec\n" + - "saut\n" + - "de \n" + - "ligne\";1000.0;Y;280.0;Y;20.0;Y;700.0;N;-9.0;?;-9.0;?;200.0;Y;180.0;Y;180.0;Y;20.0;Y;0.0;Y;0.0;Y;100.0;Y;100.0;N;50.0;Y;0.0;Y;2.0;N;0.0;Y;100.0;N\n" + - "2013;test elevation;1;A;1;1;OTB 20/28.10;278970;01/07/2013 00:00:00;;;01/07/2013 00:00:00;;;00;NA;NA;NA;?;N;-9.0;;;\"commentaire trait A-1-1\n" + - "Avec \n" + - "saut\n" + - "de\n" + - "ligne\n" + - "...\";1000.0;Y;180.0;Y;20.0;Y;800.0;N;-9.0;?;-9.0;?;200.0;Y;180.0;Y;180.0;Y;20.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y\n" + + "2013;test elevation;1;B;2;1;OTB 20/28.10;278970;01/07/2013 00:00:00;;;01/07/2013 00:00:00;;;00;NA;NA;NA;?;N;-9.0;;;Commentaire sur le trait B-2-1@@@@avec@@saut@@de @@ligne;1000.0;Y;280.0;Y;20.0;Y;700.0;N;-9.0;?;-9.0;?;200.0;Y;180.0;Y;180.0;Y;20.0;Y;0.0;Y;0.0;Y;100.0;Y;100.0;N;50.0;Y;0.0;Y;2.0;N;0.0;Y;100.0;N\n" + + "2013;test elevation;1;A;1;1;OTB 20/28.10;278970;01/07/2013 00:00:00;;;01/07/2013 00:00:00;;;00;NA;NA;NA;?;N;-9.0;;;commentaire trait A-1-1@@Avec @@saut@@de@@ligne@@...;1000.0;Y;180.0;Y;20.0;Y;800.0;N;-9.0;?;-9.0;?;200.0;Y;180.0;Y;180.0;Y;20.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y;0.0;Y\n" + "2013;test elevation;1;C;3;1;;278970;25/09/2013 00:00:00;;;25/09/2013 00:00:00;;;00;NA;NA;NA;?;N;-9.0;;;;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?;-9.0;?"); } @@ -206,16 +196,8 @@ "2013;test elevation;1;OTB 20/28.10;B;2;1;1358;;Alosa alosa;Trait B-2-1 ALOSALO Vrac|Trait B-2-1 ALOSALO Vrac - Male 60;Vrac;2;;;Poids;kg;NA;;;;;kg;Mâle;1;60.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;60.0;5.8333335;1.0\n" + "2013;test elevation;1;OTB 20/28.10;B;2;1;1358;;Alosa alosa;Trait B-2-1 ALOSALO Vrac|Trait B-2-1 ALOSALO Vrac - Femelle 40.0;Vrac;2;;;Poids;kg;NA;;;;;kg;Femelle;2;40.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;40.0;8.75;1.0\n" + "2013;test elevation;1;OTB 20/28.10;B;2;1;1938;;Agonus cataphractus;Trait B-2-1 AGONCAT-horsvrac 20;Hors Vrac;1;20.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;20.0;1.0;1.0\n" + - "2013;test elevation;1;OTB 20/28.10;B;2;1;4622;;Abietinaria abietina;\"Trait B-2-1 Benthos ABIEABI Vrac 30\n" + - "\n" + - "avec \n" + - "\n" + - "commentaire...\";Vrac;1;30.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;30.0;7.0;1.0\n" + - "2013;test elevation;1;OTB 20/28.10;B;2;1;380;;Acanthocardia echinata;\"Trait B-2-1 Benthos ACANECH Vrac 18\n" + - "\n" + - "avec \n" + - "\n" + - "commentaire...\";Vrac;2;18.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;18.0;7.0;1.0\n" + + "2013;test elevation;1;OTB 20/28.10;B;2;1;4622;;Abietinaria abietina;Trait B-2-1 Benthos ABIEABI Vrac 30@@@@avec @@@@commentaire...;Vrac;1;30.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;30.0;7.0;1.0\n" + + "2013;test elevation;1;OTB 20/28.10;B;2;1;380;;Acanthocardia echinata;Trait B-2-1 Benthos ACANECH Vrac 18@@@@avec @@@@commentaire...;Vrac;2;18.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;18.0;7.0;1.0\n" + "2013;test elevation;1;OTB 20/28.10;A;1;1;1938;;Agonus cataphractus;AGONCAT-vrac-80;Vrac;1;80.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;80.0;5.4444447;1.0\n" + "2013;test elevation;1;OTB 20/28.10;A;1;1;1358;;Alosa alosa;ALOSALO-vrac|ALOSALO-vrac-male 60;Vrac;2;;;Poids;kg;NA;;;;;kg;Mâle;1;60.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;60.0;9.074075;1.0\n" + "2013;test elevation;1;OTB 20/28.10;A;1;1;1358;;Alosa alosa;ALOSALO-vrac|ALOSALO-vrac-femelle 40;Vrac;2;;;Poids;kg;NA;;;;;kg;Femelle;2;40.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;306;Longueur totale (LT) - individu - totale - Mesure au cm par un observateur;5.0;1;0.6;cm;1.0;4;0.6;907.4074;1.0\n" + @@ -244,11 +226,7 @@ ServiceDbResource.assertFileContent("marineLitter export:\n", url, "Annee;Serie;Serie_Partielle;Engin;Code_station;Id_Operation;Poche;MarineLitterCategory;MarineLitterSizeCategory;Number;Weight;Commentaire\n" + - "2013;test elevation;1;OTB 20/28.10;B;2;1;L1 PLASTIQUE;A: <5*5 cm= 25 cm2;10;;\"Trait B-2-1 Macro dechet L1 Plastique (nb 10)\n" + - "\n" + - "avec \n" + - "\n" + - "commentaire...\""); + "2013;test elevation;1;OTB 20/28.10;B;2;1;L1 PLASTIQUE;A: <5*5 cm= 25 cm2;10;;Trait B-2-1 Macro dechet L1 Plastique (nb 10)@@@@avec @@@@commentaire..."); } { Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/benthos/BenthosBatchRowModel.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -54,6 +54,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Objects; import java.util.Set; /** @@ -359,7 +360,7 @@ if (getParentBatch() != null) { BenthosBatchRowModel parentBatch = getParentBatch(); SampleCategory<?> parentSampleCategory = parentBatch.getSampleCategoryById(entrySampleCategory.getCategoryId()); - if (ObjectUtils.equals(entrySampleCategory, parentSampleCategory)) { + if (Objects.equals(entrySampleCategory, parentSampleCategory)) { result = parentBatch.getFirstAncestor(entrySampleCategory); } Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java =================================================================== --- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2014-03-20 12:16:26 UTC (rev 1630) +++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/species/SpeciesBatchRowModel.java 2014-03-21 14:04:03 UTC (rev 1631) @@ -41,10 +41,9 @@ import fr.ifremer.tutti.ui.swing.content.operation.catches.SampleCategoryAble; import fr.ifremer.tutti.ui.swing.content.operation.catches.species.frequency.SpeciesFrequencyRowModel; import fr.ifremer.tutti.ui.swing.util.AbstractTuttiBeanUIModel; +import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware; import fr.ifremer.tutti.ui.swing.util.computable.ComputableData; -import fr.ifremer.tutti.ui.swing.util.attachment.AttachmentModelAware; import org.apache.commons.collections.CollectionUtils; -import org.apache.commons.lang3.ObjectUtils; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; @@ -54,6 +53,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.Objects; import java.util.Set; /** @@ -492,7 +492,7 @@ SampleCategory<?> sampleCategory = getSampleCategoryById(sampleCategoryId); TuttiEntities.setProperty(sampleCategory, - SampleCategory.PROPERTY_CATEGORY_VALUE, value); + SampleCategory.PROPERTY_CATEGORY_VALUE, value); firePropertyChange(PROPERTY_SAMPLE_CATEGORY_VALUE, null, sampleCategory); } @@ -529,7 +529,7 @@ if (getParentBatch() != null) { SpeciesBatchRowModel parentBatch = getParentBatch(); SampleCategory<?> parentSampleCategory = parentBatch.getSampleCategoryById(entrySampleCategory.getCategoryId()); - if (ObjectUtils.equals(entrySampleCategory, parentSampleCategory)) { + if (Objects.equals(entrySampleCategory, parentSampleCategory)) { result = parentBatch.getFirstAncestor(entrySampleCategory); }