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 cacb25e8648c06879e493a0c30093aec9a5c561c Author: Tony CHEMIT <chemit@codelutin.com> Date: Sun Feb 8 13:08:00 2015 +0100 - introduce technical parser formatter - introduce none technical formatter for all entities used in generic ie (if anything need to be modified, let's do it in formatter but not in model) --- .../persistence/entities/referential/Vessels.java | 12 ++++++ .../csv/CaracteristicTechnicalFormatter.java | 22 ++++++++++ ...rser.java => CaracteristicTechnicalParser.java} | 4 +- .../tutti/service/csv/CountryFormatter.java | 23 ++++++++++ .../csv/FishingOperationLocationFormatter.java | 19 ++++++++ ...FishingOperationLocationTechnicalFormatter.java | 19 ++++++++ ...> FishingOperationLocationTechnicalParser.java} | 16 +++---- .../csv/FishingOperationStrataFormatter.java | 19 ++++++++ .../FishingOperationStrataTechnicalFormatter.java | 19 ++++++++ ... => FishingOperationStrataTechnicalParser.java} | 16 +++---- .../csv/FishingOperationSubStrataFormatter.java | 19 ++++++++ ...ishingOperationSubStrataTechnicalFormatter.java | 19 ++++++++ ... FishingOperationSubStrataTechnicalParser.java} | 16 +++---- .../ifremer/tutti/service/csv/GearFormatter.java | 23 ++++++++++ .../tutti/service/csv/GearTechnicalFormatter.java | 23 ++++++++++ .../{GearParser.java => GearTechnicalParser.java} | 16 +++---- .../tutti/service/csv/HarbourFormatter.java | 23 ++++++++++ .../service/csv/HarbourTechnicalFormatter.java | 23 ++++++++++ ...bourParser.java => HarbourTechnicalParser.java} | 8 ++-- .../tutti/service/csv/ListGearFormatter.java | 30 ------------- .../tutti/service/csv/ListPersonFormatter.java | 22 ++++------ .../service/csv/ListPersonTechnicalFormatter.java | 25 +++++++++++ ...nParser.java => ListPersonTechnicalParser.java} | 19 ++++---- .../tutti/service/csv/ListVesselFormatter.java | 18 ++------ .../service/csv/ListVesselTechnicalFormatter.java | 25 +++++++++++ ...lParser.java => ListVesselTechnicalParser.java} | 21 +++------ .../tutti/service/csv/ProgramFormatter.java | 23 ++++++++++ .../service/csv/ProgramTechnicalFormatter.java | 23 ++++++++++ ...gramParser.java => ProgramTechnicalParser.java} | 24 +++++------ .../tutti/service/csv/ProgramZoneFormatter.java | 23 ++++++++++ .../service/csv/SpeciesTechnicalFormatter.java | 23 ++++++++++ ...ciesParser.java => SpeciesTechnicalParser.java} | 4 +- .../fr/ifremer/tutti/service/csv/TuttiCsvUtil.java | 42 +++++++++++++++++- .../ifremer/tutti/service/csv/VesselFormatter.java | 16 +++---- .../fr/ifremer/tutti/service/csv/VesselParser.java | 50 ---------------------- .../service/csv/VesselTechnicalFormatter.java | 23 ++++++++++ .../tutti/service/csv/VesselTechnicalParser.java | 43 +++++++++++++++++++ 37 files changed, 599 insertions(+), 194 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Vessels.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Vessels.java index d91161f..e4ba98f 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Vessels.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/referential/Vessels.java @@ -50,6 +50,18 @@ public class Vessels extends AbstractVessels { } }; + public static Function<Vessel, String> GET_REGISTRATION_CODE_OR_INTERNATIONAL_REGISTRATION_CODE = new Function<Vessel, String>() { + @Override + public String apply(Vessel input) { + + String result = input.getRegistrationCode(); + if (result == null) { + result = input.getInternationalRegistrationCode(); + } + return result; + } + }; + public static final Function<Vessel, String> GET_REGISTRATION_CODE = new Function<Vessel, String>() { @Override public String apply(Vessel input) { diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicTechnicalFormatter.java new file mode 100644 index 0000000..13b65d3 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicTechnicalFormatter.java @@ -0,0 +1,22 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class CaracteristicTechnicalFormatter implements ValueFormatter<Caracteristic> { + + @Override + public String format(Caracteristic value) { + + String result = TuttiEntities.GET_ID.apply(value); + return result; + + } +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicTechnicalParser.java similarity index 87% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicParser.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicTechnicalParser.java index 7e27c22..3c93821 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CaracteristicTechnicalParser.java @@ -15,13 +15,13 @@ import java.util.Map; * @author Tony Chemit - chemit@codelutin.com * @since 3.13 */ -public class CaracteristicParser implements ValueParser<Caracteristic> { +public class CaracteristicTechnicalParser implements ValueParser<Caracteristic> { private final PersistenceService persistenceService; private Map<String, Caracteristic> caracteristicsById; - public CaracteristicParser(PersistenceService persistenceService) { + public CaracteristicTechnicalParser(PersistenceService persistenceService) { this.persistenceService = persistenceService; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CountryFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CountryFormatter.java new file mode 100644 index 0000000..d16f5df --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/CountryFormatter.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class CountryFormatter implements ValueFormatter<TuttiLocation> { + + @Override + public String format(TuttiLocation value) { + String result = ""; + if (value != null) { + result = TuttiLocations.GET_LABEL.apply(value); + } + return result; + } +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationFormatter.java new file mode 100644 index 0000000..f590a25 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationFormatter.java @@ -0,0 +1,19 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class FishingOperationLocationFormatter implements ValueFormatter<TuttiLocation> { + + @Override + public String format(TuttiLocation value) { + return value == null ? "NA" : TuttiLocations.GET_NAME.apply(value); + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationTechnicalFormatter.java new file mode 100644 index 0000000..fd2c9dd --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationTechnicalFormatter.java @@ -0,0 +1,19 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class FishingOperationLocationTechnicalFormatter implements ValueFormatter<TuttiLocation> { + + @Override + public String format(TuttiLocation value) { + return value == null ? "" : TuttiLocations.GET_LABEL.apply(value); + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationTechnicalParser.java similarity index 68% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationParser.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationTechnicalParser.java index c7a6018..2b65ad5 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationLocationTechnicalParser.java @@ -15,15 +15,15 @@ import java.util.Map; * @author Tony Chemit - chemit@codelutin.com * @since 3.13 */ -public class FishingOperationLocationParser implements ValueParser<TuttiLocation> { +public class FishingOperationLocationTechnicalParser implements ValueParser<TuttiLocation> { private final PersistenceService persistenceService; private final String zoneId; - private Map<String, TuttiLocation> locationsByName; + private Map<String, TuttiLocation> locationsByLabel; - public FishingOperationLocationParser(PersistenceService persistenceService, String zoneId) { + public FishingOperationLocationTechnicalParser(PersistenceService persistenceService, String zoneId) { this.persistenceService = persistenceService; this.zoneId = zoneId; } @@ -31,21 +31,21 @@ public class FishingOperationLocationParser implements ValueParser<TuttiLocation @Override public TuttiLocation parse(String value) throws ParseException { - if (locationsByName == null) { + if (locationsByLabel == null) { List<TuttiLocation> locations = persistenceService.getAllFishingOperationLocation(zoneId, null, null); - locationsByName = TuttiLocations.splitByName(locations); + locationsByLabel = TuttiLocations.splitByLabel(locations); } TuttiLocation location; - if ("NA".equals(value)) { + if ("".equals(value)) { location = null; } else { - location = locationsByName.get(value); + location = locationsByLabel.get(value); if (location == null) { - throw new ParseException("Could not found a fishing operation location with name " + value, 0); + throw new ParseException("Could not found a fishing operation location with label " + value, 0); } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataFormatter.java new file mode 100644 index 0000000..50deedb --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataFormatter.java @@ -0,0 +1,19 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class FishingOperationStrataFormatter implements ValueFormatter<TuttiLocation> { + + @Override + public String format(TuttiLocation value) { + return value == null ? "NA" : TuttiLocations.GET_NAME.apply(value); + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataTechnicalFormatter.java new file mode 100644 index 0000000..078ae70 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataTechnicalFormatter.java @@ -0,0 +1,19 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class FishingOperationStrataTechnicalFormatter implements ValueFormatter<TuttiLocation> { + + @Override + public String format(TuttiLocation value) { + return value == null ? "" : TuttiLocations.GET_LABEL.apply(value); + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataTechnicalParser.java similarity index 68% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataParser.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataTechnicalParser.java index a9cb4bd..0d3fcef 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationStrataTechnicalParser.java @@ -15,15 +15,15 @@ import java.util.Map; * @author Tony Chemit - chemit@codelutin.com * @since 3.13 */ -public class FishingOperationStrataParser implements ValueParser<TuttiLocation> { +public class FishingOperationStrataTechnicalParser implements ValueParser<TuttiLocation> { private final PersistenceService persistenceService; private final String zoneId; - private Map<String, TuttiLocation> locationsByName; + private Map<String, TuttiLocation> locationsByLabel; - public FishingOperationStrataParser(PersistenceService persistenceService, String zoneId) { + public FishingOperationStrataTechnicalParser(PersistenceService persistenceService, String zoneId) { this.persistenceService = persistenceService; this.zoneId = zoneId; } @@ -31,21 +31,21 @@ public class FishingOperationStrataParser implements ValueParser<TuttiLocation> @Override public TuttiLocation parse(String value) throws ParseException { - if (locationsByName == null) { + if (locationsByLabel == null) { List<TuttiLocation> locations = persistenceService.getAllFishingOperationStrata(zoneId); - locationsByName = TuttiLocations.splitByName(locations); + locationsByLabel = TuttiLocations.splitByLabel(locations); } TuttiLocation location; - if ("NA".equals(value)) { + if ("".equals(value)) { location = null; } else { - location = locationsByName.get(value); + location = locationsByLabel.get(value); if (location == null) { - throw new ParseException("Could not found a fishing operation stata with name " + value, 0); + throw new ParseException("Could not found a fishing operation stata with label " + value, 0); } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataFormatter.java new file mode 100644 index 0000000..4eb6fb1 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataFormatter.java @@ -0,0 +1,19 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class FishingOperationSubStrataFormatter implements ValueFormatter<TuttiLocation> { + + @Override + public String format(TuttiLocation value) { + return value == null ? "NA" : TuttiLocations.GET_NAME.apply(value); + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataTechnicalFormatter.java new file mode 100644 index 0000000..9e0b399 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataTechnicalFormatter.java @@ -0,0 +1,19 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class FishingOperationSubStrataTechnicalFormatter implements ValueFormatter<TuttiLocation> { + + @Override + public String format(TuttiLocation value) { + return value == null ? "" : TuttiLocations.GET_LABEL.apply(value); + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataTechnicalParser.java similarity index 68% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataParser.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataTechnicalParser.java index 058d88c..03d4f90 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/FishingOperationSubStrataTechnicalParser.java @@ -15,15 +15,15 @@ import java.util.Map; * @author Tony Chemit - chemit@codelutin.com * @since 3.13 */ -public class FishingOperationSubStrataParser implements ValueParser<TuttiLocation> { +public class FishingOperationSubStrataTechnicalParser implements ValueParser<TuttiLocation> { private final PersistenceService persistenceService; private final String zoneId; - private Map<String, TuttiLocation> locationsByName; + private Map<String, TuttiLocation> locationsByLabel; - public FishingOperationSubStrataParser(PersistenceService persistenceService, String zoneId) { + public FishingOperationSubStrataTechnicalParser(PersistenceService persistenceService, String zoneId) { this.persistenceService = persistenceService; this.zoneId = zoneId; } @@ -31,21 +31,21 @@ public class FishingOperationSubStrataParser implements ValueParser<TuttiLocatio @Override public TuttiLocation parse(String value) throws ParseException { - if (locationsByName == null) { + if (locationsByLabel == null) { List<TuttiLocation> locations = persistenceService.getAllFishingOperationSubStrata(zoneId, null); - locationsByName = TuttiLocations.splitByName(locations); + locationsByLabel = TuttiLocations.splitByLabel(locations); } TuttiLocation location; - if ("NA".equals(value)) { + if ("".equals(value)) { location = null; } else { - location = locationsByName.get(value); + location = locationsByLabel.get(value); if (location == null) { - throw new ParseException("Could not found a fishing operation subStata with name " + value, 0); + throw new ParseException("Could not found a fishing operation subStata with label " + value, 0); } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearFormatter.java new file mode 100644 index 0000000..7b8a06e --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearFormatter.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.Gear; +import fr.ifremer.tutti.persistence.entities.referential.Gears; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class GearFormatter implements ValueFormatter<Gear> { + + @Override + public String format(Gear value) { + String result = ""; + if (value != null) { + result = Gears.GET_NAME.apply(value); + } + return result; + } +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearTechnicalFormatter.java new file mode 100644 index 0000000..5c152d2 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearTechnicalFormatter.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.referential.Gear; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class GearTechnicalFormatter implements ValueFormatter<Gear> { + + @Override + public String format(Gear value) { + String result = ""; + if (value != null) { + result = TuttiEntities.GET_ID.apply(value); + } + return result; + } +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearTechnicalParser.java similarity index 67% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearParser.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearTechnicalParser.java index 228e3ae..2b91dae 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/GearTechnicalParser.java @@ -1,7 +1,7 @@ package fr.ifremer.tutti.service.csv; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.Gear; -import fr.ifremer.tutti.persistence.entities.referential.Gears; import fr.ifremer.tutti.service.PersistenceService; import org.nuiton.csv.ValueParser; @@ -15,15 +15,15 @@ import java.util.Map; * @author Tony Chemit - chemit@codelutin.com * @since 3.13 */ -public class GearParser implements ValueParser<Gear> { +public class GearTechnicalParser implements ValueParser<Gear> { private final PersistenceService persistenceService; - private Map<String, Gear> gearsByName; + private Map<String, Gear> gearsById; private boolean mandatory; - public GearParser(PersistenceService persistenceService, boolean mandatory) { + public GearTechnicalParser(PersistenceService persistenceService, boolean mandatory) { this.persistenceService = persistenceService; this.mandatory = mandatory; } @@ -31,14 +31,14 @@ public class GearParser implements ValueParser<Gear> { @Override public Gear parse(String value) throws ParseException { - if (gearsByName == null) { + if (gearsById == null) { List<Gear> gears = persistenceService.getAllGear(); - gearsByName = Gears.splitByName(gears); + gearsById = TuttiEntities.splitById(gears); } - Gear gear = gearsByName.get(value); + Gear gear = gearsById.get(value); if (gear == null && mandatory) { - throw new ParseException("Could not found a gear with name " + value, 0); + throw new ParseException("Could not found a gear with id " + value, 0); } return gear; diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourFormatter.java new file mode 100644 index 0000000..b2c2391 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourFormatter.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since XXX + */ +public class HarbourFormatter implements ValueFormatter<TuttiLocation> { + + @Override + public String format(TuttiLocation value) { + String result = ""; + if (value != null) { + result = TuttiLocations.GET_NAME.apply(value); + } + return result; + } +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourTechnicalFormatter.java new file mode 100644 index 0000000..413c83b --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourTechnicalFormatter.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since XXX + */ +public class HarbourTechnicalFormatter implements ValueFormatter<TuttiLocation> { + + @Override + public String format(TuttiLocation value) { + String result = ""; + if (value != null) { + result = TuttiLocations.GET_LABEL.apply(value); + } + return result; + } +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourTechnicalParser.java similarity index 80% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourParser.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourTechnicalParser.java index cd61338..77b1230 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/HarbourTechnicalParser.java @@ -15,13 +15,13 @@ import java.util.Map; * @author Tony Chemit - chemit@codelutin.com * @since 3.13 */ -public class HarbourParser implements ValueParser<TuttiLocation> { +public class HarbourTechnicalParser implements ValueParser<TuttiLocation> { private final PersistenceService persistenceService; private Map<String, TuttiLocation> locationsByName; - public HarbourParser(PersistenceService persistenceService) { + public HarbourTechnicalParser(PersistenceService persistenceService) { this.persistenceService = persistenceService; } @@ -30,12 +30,12 @@ public class HarbourParser implements ValueParser<TuttiLocation> { if (locationsByName == null) { List<TuttiLocation> locations = persistenceService.getAllHarbour(); - locationsByName = TuttiLocations.splitByName(locations); + locationsByName = TuttiLocations.splitByLabel(locations); } TuttiLocation location = locationsByName.get(value); if (location == null) { - throw new ParseException("Could not found a harbour with name " + value, 0); + throw new ParseException("Could not found a harbour with label " + value, 0); } return location; diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListGearFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListGearFormatter.java deleted file mode 100644 index 5194ca5..0000000 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListGearFormatter.java +++ /dev/null @@ -1,30 +0,0 @@ -package fr.ifremer.tutti.service.csv; - -import com.google.common.base.Function; -import com.google.common.base.Joiner; -import com.google.common.collect.Lists; -import fr.ifremer.tutti.persistence.entities.referential.Gear; -import org.nuiton.csv.ValueFormatter; - -import java.util.List; - -/** -* Created on 2/5/15. -* -* @author Tony Chemit - chemit@codelutin.com -* @since 3.13 -*/ -public class ListGearFormatter implements ValueFormatter<List<Gear>> { - - @Override - public String format(List<Gear> value) { - List<String> decoratedValues = - Lists.transform(value, new Function<Gear, String>() { - @Override - public String apply(Gear input) { - return input.getName(); - } - }); - return Joiner.on('|').join(decoratedValues); - } -} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonFormatter.java index bc3df5d..086a7f5 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonFormatter.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonFormatter.java @@ -1,30 +1,24 @@ package fr.ifremer.tutti.service.csv; -import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.referential.Person; +import fr.ifremer.tutti.persistence.entities.referential.Persons; import org.nuiton.csv.ValueFormatter; import java.util.List; /** -* Created on 2/5/15. -* -* @author Tony Chemit - chemit@codelutin.com -* @since 3.13 -*/ + * Created on 2/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ public class ListPersonFormatter implements ValueFormatter<List<Person>> { @Override public String format(List<Person> value) { - List<String> decoratedValues = - Lists.transform(value, new Function<Person, String>() { - @Override - public String apply(Person input) { - return input.getFirstName() + ' ' + input.getLastName(); - } - }); - return Joiner.on('|').join(decoratedValues); + List<String> fullNames = Lists.transform(value, Persons.GET_FULL_NAME); + return Joiner.on('|').join(fullNames); } } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonTechnicalFormatter.java new file mode 100644 index 0000000..552ff69 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonTechnicalFormatter.java @@ -0,0 +1,25 @@ +package fr.ifremer.tutti.service.csv; + +import com.google.common.base.Joiner; +import com.google.common.collect.Lists; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.referential.Person; +import org.nuiton.csv.ValueFormatter; + +import java.util.List; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class ListPersonTechnicalFormatter implements ValueFormatter<List<Person>> { + + @Override + public String format(List<Person> value) { + List<String> ids = Lists.transform(value, TuttiEntities.newIdFunction()); + return Joiner.on('|').join(ids); + } + +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonTechnicalParser.java similarity index 66% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonParser.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonTechnicalParser.java index 32d2e95..b097fc1 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListPersonTechnicalParser.java @@ -1,5 +1,6 @@ package fr.ifremer.tutti.service.csv; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Persons; import fr.ifremer.tutti.service.PersistenceService; @@ -16,31 +17,31 @@ import java.util.Map; * @author Tony Chemit - chemit@codelutin.com * @since 3.13 */ -public class ListPersonParser implements ValueParser<List<Person>> { +public class ListPersonTechnicalParser implements ValueParser<List<Person>> { private final PersistenceService persistenceService; - private Map<String, Person> personsByFullName; + private Map<String, Person> personsById; - public ListPersonParser(PersistenceService persistenceService) { + public ListPersonTechnicalParser(PersistenceService persistenceService) { this.persistenceService = persistenceService; } @Override public List<Person> parse(String value) throws ParseException { - if (personsByFullName == null) { + if (personsById == null) { List<Person> allPerson = persistenceService.getAllPerson(); - personsByFullName = Persons.splitByFullName(allPerson); + personsById = TuttiEntities.splitById(allPerson); } List<Person> persons = new ArrayList<>(); - String[] fullNames = value.split("|"); - for (String fullName : fullNames) { - Person person = personsByFullName.get(fullName); + String[] ids = value.split("|"); + for (String id : ids) { + Person person = personsById.get(id); if (person == null) { - throw new ParseException("Could not found a person with name " + value, 0); + throw new ParseException("Could not found a person with id " + value, 0); } persons.add(person); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselFormatter.java index 0ea521b..2cd846b 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselFormatter.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselFormatter.java @@ -1,9 +1,9 @@ package fr.ifremer.tutti.service.csv; -import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.collect.Lists; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; import org.nuiton.csv.ValueFormatter; import java.util.List; @@ -18,18 +18,8 @@ public class ListVesselFormatter implements ValueFormatter<List<Vessel>> { @Override public String format(List<Vessel> value) { - List<String> decoratedValues = - Lists.transform(value, new Function<Vessel, String>() { - @Override - public String apply(Vessel input) { - - String result = input.getRegistrationCode(); - if (result == null) { - result = input.getInternationalRegistrationCode(); - } - return result; - } - }); - return Joiner.on('|').join(decoratedValues); + List<String> codes = Lists.transform(value, Vessels.GET_REGISTRATION_CODE_OR_INTERNATIONAL_REGISTRATION_CODE); + return Joiner.on('|').join(codes); } + } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselTechnicalFormatter.java new file mode 100644 index 0000000..55c5e3f --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselTechnicalFormatter.java @@ -0,0 +1,25 @@ +package fr.ifremer.tutti.service.csv; + +import com.google.common.base.Joiner; +import com.google.common.collect.Lists; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import org.nuiton.csv.ValueFormatter; + +import java.util.List; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class ListVesselTechnicalFormatter implements ValueFormatter<List<Vessel>> { + + @Override + public String format(List<Vessel> value) { + List<String> codes = Lists.transform(value, TuttiEntities.GET_ID); + return Joiner.on('|').join(codes); + } + +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselTechnicalParser.java similarity index 57% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselParser.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselTechnicalParser.java index 8ecf44e..f2224cf 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ListVesselTechnicalParser.java @@ -16,39 +16,32 @@ import java.util.Map; * @author Tony Chemit - chemit@codelutin.com * @since 3.13 */ -public class ListVesselParser implements ValueParser<List<Vessel>> { +public class ListVesselTechnicalParser implements ValueParser<List<Vessel>> { private final PersistenceService persistenceService; - private Map<String, Vessel> vesselsByRegistrationCode; + private Map<String, Vessel> vesselsById; - private Map<String, Vessel> vesselsByInternalRegistrationCode; - - public ListVesselParser(PersistenceService persistenceService) { + public ListVesselTechnicalParser(PersistenceService persistenceService) { this.persistenceService = persistenceService; } @Override public List<Vessel> parse(String value) throws ParseException { - if (vesselsByRegistrationCode == null) { + if (vesselsById == null) { List<Vessel> allVessels = persistenceService.getAllVessel(); - vesselsByRegistrationCode = Vessels.splitByRegistrationCode(allVessels); - vesselsByInternalRegistrationCode = Vessels.splitByInternationalRegistrationCode(allVessels); + vesselsById = Vessels.splitByRegistrationCode(allVessels); } List<Vessel> vessels = new ArrayList<>(); String[] immatriculations = value.split("|"); for (String immatriculation : immatriculations) { - Vessel vessel = vesselsByRegistrationCode.get(immatriculation); - - if (vessel == null) { - vessel = vesselsByInternalRegistrationCode.get(immatriculation); - } + Vessel vessel = vesselsById.get(immatriculation); if (vessel == null) { - throw new ParseException("Could not found a vessel with registrationCode " + value + ", neither with internationalRegistrationCode", 0); + throw new ParseException("Could not found a vessel with code " + value, 0); } vessels.add(vessel); } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramFormatter.java new file mode 100644 index 0000000..8acd5d1 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramFormatter.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.data.Program; +import fr.ifremer.tutti.persistence.entities.data.Programs; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class ProgramFormatter implements ValueFormatter<Program> { + + @Override + public String format(Program value) { + String result = ""; + if (value != null) { + result = Programs.GET_NAME.apply(value); + } + return result; + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramTechnicalFormatter.java new file mode 100644 index 0000000..b2fee74 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramTechnicalFormatter.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.data.Program; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class ProgramTechnicalFormatter implements ValueFormatter<Program> { + + @Override + public String format(Program value) { + String result = ""; + if (value != null) { + result = TuttiEntities.GET_ID.apply(value); + } + return result; + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramTechnicalParser.java similarity index 59% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramParser.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramTechnicalParser.java index 11d64f8..b9cbd10 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramTechnicalParser.java @@ -1,7 +1,7 @@ package fr.ifremer.tutti.service.csv; +import fr.ifremer.tutti.persistence.entities.TuttiEntities; import fr.ifremer.tutti.persistence.entities.data.Program; -import fr.ifremer.tutti.persistence.entities.data.Programs; import fr.ifremer.tutti.service.PersistenceService; import org.nuiton.csv.ValueParser; @@ -10,29 +10,29 @@ import java.util.List; import java.util.Map; /** -* Created on 2/5/15. -* -* @author Tony Chemit - chemit@codelutin.com -* @since 3.13 -*/ -public class ProgramParser implements ValueParser<Program> { + * Created on 2/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class ProgramTechnicalParser implements ValueParser<Program> { private final PersistenceService persistenceService; - private Map<String, Program> programsByName; + private Map<String, Program> programsById; - public ProgramParser(PersistenceService persistenceService) { + public ProgramTechnicalParser(PersistenceService persistenceService) { this.persistenceService = persistenceService; } @Override public Program parse(String value) throws ParseException { - if (programsByName == null) { + if (programsById == null) { List<Program> allProgram = persistenceService.getAllProgram(); - programsByName = Programs.splitByName(allProgram); + programsById = TuttiEntities.splitById(allProgram); } - Program program = programsByName.get(value); + Program program = programsById.get(value); if (program == null) { throw new ParseException("Could not found a program with name " + value, 0); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramZoneFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramZoneFormatter.java new file mode 100644 index 0000000..98fe709 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/ProgramZoneFormatter.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class ProgramZoneFormatter implements ValueFormatter<TuttiLocation> { + + @Override + public String format(TuttiLocation value) { + String result = ""; + if (value != null) { + result = TuttiLocations.GET_NAME.apply(value); + } + return result; + } +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesTechnicalFormatter.java new file mode 100644 index 0000000..75626ee --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesTechnicalFormatter.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.Speciess; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class SpeciesTechnicalFormatter implements ValueFormatter<Species> { + + @Override + public String format(Species value) { + String result = ""; + if (value != null) { + result = Speciess.GET_REFERECE_TAXON_ID.apply(value); + } + return result; + } +} \ No newline at end of file diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesTechnicalParser.java similarity index 90% rename from tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesParser.java rename to tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesTechnicalParser.java index 494c9f4..c1a69c1 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesParser.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/SpeciesTechnicalParser.java @@ -18,13 +18,13 @@ import java.util.List; * @author Tony Chemit - chemit@codelutin.com * @since 3.13 */ -public class SpeciesParser implements ValueParser<Species> { +public class SpeciesTechnicalParser implements ValueParser<Species> { private final PersistenceService persistenceService; private Multimap<String, Species> speciesByReferenceTaxonId; - public SpeciesParser(PersistenceService persistenceService) { + public SpeciesTechnicalParser(PersistenceService persistenceService) { this.persistenceService = persistenceService; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/TuttiCsvUtil.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/TuttiCsvUtil.java index d471fc5..e8db3f1 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/TuttiCsvUtil.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/TuttiCsvUtil.java @@ -23,11 +23,13 @@ package fr.ifremer.tutti.service.csv; */ import com.google.common.base.Preconditions; +import fr.ifremer.tutti.persistence.entities.data.Program; import fr.ifremer.tutti.persistence.entities.referential.Caracteristic; import fr.ifremer.tutti.persistence.entities.referential.CaracteristicQualitativeValue; import fr.ifremer.tutti.persistence.entities.referential.Gear; import fr.ifremer.tutti.persistence.entities.referential.Person; import fr.ifremer.tutti.persistence.entities.referential.Species; +import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.Vessel; import fr.ifremer.tutti.util.Weights; import org.nuiton.csv.Common; @@ -246,17 +248,53 @@ public class TuttiCsvUtil extends Common { public static final ValueParserFormatter<Date> YEAR = new DateValue("yyyy"); + public static final ValueFormatter<Caracteristic> CARACTERISTIC_TECHNICAL_FORMATTER = new CaracteristicTechnicalFormatter(); + public static final ValueFormatter<Serializable> CARACTERISTIC_VALUE_FORMATTER = new CaracteristicValueFormatter(); + public static final ValueFormatter<Program> PROGRAM_FORMATTER = new ProgramFormatter(); + + public static final ValueFormatter<Program> PROGRAM_TECHNICAL_FORMATTER = new ProgramTechnicalFormatter(); + + public static final ValueFormatter<Gear> GEAR_FORMATTER = new GearFormatter(); + + public static final ValueFormatter<Gear> GEAR_TECHNICAL_FORMATTER = new GearTechnicalFormatter(); + + public static final ValueFormatter<TuttiLocation> COUNTRY_FORMATTER = new CountryFormatter(); + + public static final ValueFormatter<TuttiLocation> PROGRAM_ZONE_FORMATTER = new ProgramZoneFormatter(); + + public static final ValueFormatter<TuttiLocation> HARBOUR_FORMATTER = new HarbourFormatter(); + + public static final ValueFormatter<TuttiLocation> HARBOUR_TECHNICAL_FORMATTER = new HarbourTechnicalFormatter(); + + public static final ValueFormatter<TuttiLocation> FISHING_OPERATION_STRATA_FORMATTER = new FishingOperationStrataFormatter(); + + public static final ValueFormatter<TuttiLocation> FISHING_OPERATION_STRATA_TECHNICAL_FORMATTER = new FishingOperationStrataTechnicalFormatter(); + + public static final ValueFormatter<TuttiLocation> FISHING_OPERATION_SUB_STRATA_FORMATTER = new FishingOperationSubStrataFormatter(); + + public static final ValueFormatter<TuttiLocation> FISHING_OPERATION_SUB_STRATA_TECHNICAL_FORMATTER = new FishingOperationSubStrataTechnicalFormatter(); + + public static final ValueFormatter<TuttiLocation> FISHING_OPERATION_LOCATION_FORMATTER = new FishingOperationLocationFormatter(); + + public static final ValueFormatter<TuttiLocation> FISHING_OPERATION_LOCATION_TECHNICAL_FORMATTER = new FishingOperationLocationTechnicalFormatter(); + + public static final ValueFormatter<Vessel> VESSEL_TECHNICAL_FORMATTER = new VesselTechnicalFormatter(); + public static final ValueFormatter<Vessel> VESSEL_FORMATTER = new VesselFormatter(); + public static final ValueFormatter<Species> SPECIES_TECHNICAL_FORMATTER = new SpeciesTechnicalFormatter(); + public static final ValueFormatter<List<Person>> LIST_PERSON_FORMATTER = new ListPersonFormatter(); + public static final ValueFormatter<List<Person>> LIST_PERSON_TECHNICAL_FORMATTER = new ListPersonTechnicalFormatter(); + public static final ValueFormatter<List<Vessel>> LIST_VESSEL_FORMATTER = new ListVesselFormatter(); - public static final ValueParserFormatter<List<Integer>> LIST_INTEGER_PARSER_FORMATTER = new ListIntegerFormatter(); + public static final ValueFormatter<List<Vessel>> LIST_VESSEL_TECHNICAL_FORMATTER = new ListVesselTechnicalFormatter(); - public static final ValueFormatter<List<Gear>> LIST_GEAR_FORMATTER = new ListGearFormatter(); + public static final ValueParserFormatter<List<Integer>> LIST_INTEGER_PARSER_FORMATTER = new ListIntegerFormatter(); public static <E> BeanPropertyFormatter<E> newBeanFormatter(String propertyName, String defaultNullValue) { return new BeanPropertyFormatter<E>(propertyName, defaultNullValue); diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselFormatter.java index f88f19f..43cf7e2 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselFormatter.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselFormatter.java @@ -1,24 +1,22 @@ package fr.ifremer.tutti.service.csv; import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.persistence.entities.referential.Vessels; import org.nuiton.csv.ValueFormatter; /** -* Created on 2/5/15. -* -* @author Tony Chemit - chemit@codelutin.com -* @since 3.13 -*/ + * Created on 2/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ public class VesselFormatter implements ValueFormatter<Vessel> { @Override public String format(Vessel value) { String result = ""; if (value != null) { - result = value.getRegistrationCode(); - if (result == null) { - result = value.getInternationalRegistrationCode(); - } + result = Vessels.GET_REGISTRATION_CODE_OR_INTERNATIONAL_REGISTRATION_CODE.apply(value); } return result; } diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselParser.java deleted file mode 100644 index f8d3ea8..0000000 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselParser.java +++ /dev/null @@ -1,50 +0,0 @@ -package fr.ifremer.tutti.service.csv; - -import fr.ifremer.tutti.persistence.entities.referential.Vessel; -import fr.ifremer.tutti.persistence.entities.referential.Vessels; -import fr.ifremer.tutti.service.PersistenceService; -import org.nuiton.csv.ValueParser; - -import java.text.ParseException; -import java.util.List; -import java.util.Map; - -/** - * Created on 2/5/15. - * - * @author Tony Chemit - chemit@codelutin.com - * @since 3.13 - */ -public class VesselParser implements ValueParser<Vessel> { - - private final PersistenceService persistenceService; - - private Map<String, Vessel> vesselsByRegistrationCode; - - private Map<String, Vessel> vesselsByInternalRegistrationCode; - - public VesselParser(PersistenceService persistenceService) { - this.persistenceService = persistenceService; - } - - @Override - public Vessel parse(String value) throws ParseException { - - if (vesselsByRegistrationCode == null) { - List<Vessel> allVessels = persistenceService.getAllVessel(); - vesselsByRegistrationCode = Vessels.splitByRegistrationCode(allVessels); - vesselsByInternalRegistrationCode = Vessels.splitByInternationalRegistrationCode(allVessels); - } - Vessel vessel = vesselsByRegistrationCode.get(value); - - if (vessel == null) { - vessel = vesselsByInternalRegistrationCode.get(value); - } - - if (vessel == null) { - throw new ParseException("Could not found a vessel with registrationCode " + value + ", neither with internationalRegistrationCode", 0); - } - return vessel; - - } -} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselTechnicalFormatter.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselTechnicalFormatter.java new file mode 100644 index 0000000..0748353 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselTechnicalFormatter.java @@ -0,0 +1,23 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import org.nuiton.csv.ValueFormatter; + +/** + * Created on 2/8/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class VesselTechnicalFormatter implements ValueFormatter<Vessel> { + + @Override + public String format(Vessel value) { + String result = ""; + if (value != null) { + result = TuttiEntities.GET_ID.apply(value); + } + return result; + } +} diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselTechnicalParser.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselTechnicalParser.java new file mode 100644 index 0000000..4a95d47 --- /dev/null +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/csv/VesselTechnicalParser.java @@ -0,0 +1,43 @@ +package fr.ifremer.tutti.service.csv; + +import fr.ifremer.tutti.persistence.entities.TuttiEntities; +import fr.ifremer.tutti.persistence.entities.referential.Vessel; +import fr.ifremer.tutti.service.PersistenceService; +import org.nuiton.csv.ValueParser; + +import java.text.ParseException; +import java.util.List; +import java.util.Map; + +/** + * Created on 2/5/15. + * + * @author Tony Chemit - chemit@codelutin.com + * @since 3.13 + */ +public class VesselTechnicalParser implements ValueParser<Vessel> { + + private final PersistenceService persistenceService; + + private Map<String, Vessel> vesselsById; + + public VesselTechnicalParser(PersistenceService persistenceService) { + this.persistenceService = persistenceService; + } + + @Override + public Vessel parse(String value) throws ParseException { + + if (vesselsById == null) { + List<Vessel> allVessels = persistenceService.getAllVessel(); + vesselsById = TuttiEntities.splitById(allVessels); + } + Vessel vessel = vesselsById.get(value); + + if (vessel == null) { + throw new ParseException("Could not found a vessel with code " + value, 0); + } + return vessel; + + } +} -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.