r1838 - in trunk/wao-services/src/main: java/fr/ifremer/wao/services/service java/fr/ifremer/wao/services/service/administration java/fr/ifremer/wao/services/service/csv java/fr/ifremer/wao/services/service/csv/operations resources/i18n
Author: tchemit Date: 2014-04-04 18:15:57 +0200 (Fri, 04 Apr 2014) New Revision: 1838 Url: http://forge.codelutin.com/projects/wao/repository/revisions/1838 Log: refs #4482 i18n csv import, refs #3387, refs #4483 Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/EmailService.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/BoatGroupImportModel.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/BoatImportExportModel.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ContactImportExportModel.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ContactStateMotivesImportModel.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/FishingZoneImportModel.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsDebSamplingPlanImportExportModel.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerContactImportExportModel.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModel.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/RawObsDebCodesImportModel.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/TerrestrialDivisionImportModel.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/TerrestrialLocationImportModel.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/BoatImmatriculationParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/BoatParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/CompanyParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/ContactStateMotivesParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DCF5CodesParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictsParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/FishingZonesParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LatitudeParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LocationTypeParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LongitudeParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/ObsDebCodeParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/PortParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/RegionParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/RegionsParser.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/SampleRowCodeParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/SampleRowParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/UserParserFormatter.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/UsersParserFormatter.java trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/EmailService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/EmailService.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/EmailService.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -7,6 +7,7 @@ import org.apache.commons.mail.SimpleEmail; /** + * //TODO remove this and use the {@link fr.ifremer.wao.services.service.mail.EmailService}. * Created on 4/4/14. * * @author Tony Chemit <chemit@codelutin.com> Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerBoatsService.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -122,7 +122,7 @@ List<Boat> sampleRows = dao.findAll(filter); ExportModel<Boat> exportModel = - new BoatImportExportModel(); + new BoatImportExportModel(getLocale()); Export<Boat> export = Export.newExport(exportModel, sampleRows); Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerContactsService.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -153,7 +153,8 @@ List<Contact> contacts = dao.findAll(filter); - ExportModel<Contact> exportModel = ObsMerContactImportExportModel.forExport(filter.getSampleRowFilter().getObsProgram()); + ExportModel<Contact> exportModel = ObsMerContactImportExportModel.forExport(getLocale(), + filter.getSampleRowFilter().getObsProgram()); Export<Contact> export = Export.newExport(exportModel, contacts); @@ -182,7 +183,8 @@ List<ContactStateMotif> motives = getContactStateMotifDao().findAll(); ImportModel<Contact> contactImportModel = - ObsMerContactImportExportModel.forImport(obsProgram, + ObsMerContactImportExportModel.forImport(getLocale(), + obsProgram, waoUsers, sampleRows, boats, @@ -386,6 +388,7 @@ log.debug("notification will be sent to " + waoUsers.size() + " users"); } + //TODO remove this and use the {@link fr.ifremer.wao.services.service.mail.EmailService}. // sending the same e-mail to all of them for (WaoUser waoUser : waoUsers) { String userLogin = waoUser.getLogin(); Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -557,8 +557,12 @@ ReferentialService referentialService = getReferentialService(); ImportModel<SampleRow> samplingPlanImportModel = - new ObsMerObsVenteSamplingPlanImportExportModel(obsProgram, - activeCompanies, fishingZones, terrestrialDistricts, referentialService); + new ObsMerObsVenteSamplingPlanImportExportModel(getLocale(), + obsProgram, + activeCompanies, + fishingZones, + terrestrialDistricts, + referentialService); return samplingPlanImportModel; @@ -578,6 +582,7 @@ ExportModel<SampleRow> exportModel = new ObsMerObsVenteSamplingPlanImportExportModel( + getLocale(), filter.getPeriodFrom(), filter.getPeriodTo(), ObsProgram.OBSMER); Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -188,7 +188,8 @@ */ public void importFishingZones(InputStream input) throws ImportErrorException { - FishingZoneImportModel model = new FishingZoneImportModel(); + FishingZoneImportModel model = new FishingZoneImportModel(getLocale()); + Import<FishingZone> fishingZoneImport = Import.newImport(model, input); FishingZoneTopiaDao dao = getPersistenceContext().getFishingZoneDao(); @@ -243,7 +244,7 @@ // if yes, some attribute may have change, so we use a binder to copy all field // if no, add the new location in database - ImportModel<TerrestrialLocation> model = new TerrestrialLocationImportModel(); + ImportModel<TerrestrialLocation> model = new TerrestrialLocationImportModel(getLocale()); Import<TerrestrialLocation> terrestrialLocationImport = Import.newImport(model, input); // we will need a binder, to copy location for an update @@ -451,7 +452,7 @@ public void importContactStateMotives(InputStream input) throws ImportErrorException { - ImportModel<ContactStateMotif> model = new ContactStateMotivesImportModel(); + ImportModel<ContactStateMotif> model = new ContactStateMotivesImportModel(getLocale()); Import<ContactStateMotif> motivesImport = Import.newImport(model, input); ContactStateMotifTopiaDao dao = getPersistenceContext().getContactStateMotifDao(); @@ -491,7 +492,7 @@ } // the import itself - ImportModel<TerrestrialDivision> importModel = new TerrestrialDivisionImportModel(ports, regions); + ImportModel<TerrestrialDivision> importModel = new TerrestrialDivisionImportModel(getLocale(), ports, regions); Import<TerrestrialDivision> terrestrialDivisionImport = Import.newImport(importModel, input); TerrestrialDivisionTopiaDao dao = getPersistenceContext().getTerrestrialDivisionDao(); @@ -601,7 +602,7 @@ ObsDebCodeTopiaDao dao = getPersistenceContext().getObsDebCodeDao(); ObsDebCodeDetailsTopiaDao obsDebCodeDetailsDAO = getPersistenceContext().getObsDebCodeDetailsDao(); - ImportModel<RawObsDebCode> model = new RawObsDebCodesImportModel(allRegions); + ImportModel<RawObsDebCode> model = new RawObsDebCodesImportModel(getLocale(), allRegions); Import<RawObsDebCode> rawObsDebCodeImport = Import.newImport(model, input); // start reading the CSV file line by line @@ -869,7 +870,7 @@ List<TerrestrialLocation> districts = terrestrialLocationDao.forLocationTypeEquals(LocationType.DISTRICT).findAll(); // Building the model, providing ports - BoatImportExportModel model = new BoatImportExportModel(ports, districts); + BoatImportExportModel model = new BoatImportExportModel(getLocale(), ports, districts); Import<Boat> boatImport = Import.newImport(model, input); // Getting some DAOs @@ -947,7 +948,7 @@ public void importBoatGroups(InputStream input) throws ImportErrorException { // Building the model, providing ports - BoatGroupImportModel model = new BoatGroupImportModel(); + BoatGroupImportModel model = new BoatGroupImportModel(getLocale()); Import<Boat> boatImport = Import.newImport(model, input); // Getting some DAOs Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/BoatGroupImportModel.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/BoatGroupImportModel.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/BoatGroupImportModel.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -34,17 +34,24 @@ import org.nuiton.csv.ValueGetterSetter; import java.util.List; +import java.util.Locale; public class BoatGroupImportModel implements ImportModel<Boat> { protected ModelBuilder<Boat> modelBuilder; + protected final Locale locale; + + public BoatGroupImportModel(Locale locale) { + this.locale = locale; + } + protected void buildModel() { modelBuilder = new ModelBuilder<>(); modelBuilder.newColumnForImportExport( "NAVIRE_IMMATRICULATION", Boat.PROPERTY_IMMATRICULATION, - new BoatImmatriculationParserFormatter()); + new BoatImmatriculationParserFormatter(locale)); // boat group modelBuilder.newColumnForImportExport( Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/BoatImportExportModel.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/BoatImportExportModel.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/BoatImportExportModel.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -40,6 +40,7 @@ import org.nuiton.csv.ValueGetterSetter; import java.util.List; +import java.util.Locale; /** * @@ -49,20 +50,29 @@ protected ModelBuilder<Boat> modelBuilder; + protected final Locale locale; + protected List<TerrestrialLocation> ports; protected List<TerrestrialLocation> districts; - /** Constructor for export. */ - public BoatImportExportModel() { + /** + * Constructor for export. + * + * @param locale + */ + public BoatImportExportModel(Locale locale) { + this.locale = locale; } /** * Constructor for import. - * - * @param ports ports that can be used by boats as port of registry + * + * @param locale + * @param ports ports that can be used by boats as port of registry */ - public BoatImportExportModel(List<TerrestrialLocation> ports, List<TerrestrialLocation> districts) { + public BoatImportExportModel(Locale locale, List<TerrestrialLocation> ports, List<TerrestrialLocation> districts) { + this.locale = locale; this.ports = ports; this.districts = districts; } @@ -72,7 +82,7 @@ modelBuilder.newColumnForImportExport( "NAVIRE_IMMATRICULATION", Boat.PROPERTY_IMMATRICULATION, - new BoatImmatriculationParserFormatter()); + new BoatImmatriculationParserFormatter(locale)); modelBuilder.newColumnForImportExport( "NAVIRE_NOM", Boat.PROPERTY_NAME); @@ -131,12 +141,12 @@ // boat district modelBuilder.newColumnForImportExport("QUARTIER_CODE", Boat.PROPERTY_DISTRICT, - new DistrictParserFormatter(districts)); + new DistrictParserFormatter(locale, districts)); // port of registry modelBuilder.newColumnForImportExport("PORT_CODE", Boat.PROPERTY_PORT_OF_REGISTRY, - new PortParserFormatter(ports, true)); + new PortParserFormatter(locale, ports, true)); // fleet modelBuilder.newColumnForImportExport( @@ -157,7 +167,8 @@ boat.getFleet().setCode(code); } } - }); + } + ); modelBuilder.newColumnForImportExport( "FLOTILLE_NOM", @@ -177,7 +188,8 @@ boat.getFleet().setFleetName(name); } } - }); + } + ); modelBuilder.newColumnForImportExport( "SOUS_FLOTILLE_NOM", @@ -195,7 +207,8 @@ public void set(Boat boat, String subFleetName) throws Exception { boat.getFleet().setSubFleetName(subFleetName); } - }); + } + ); modelBuilder.newColumnForImportExport( "SOUS_SOUS_FLOTILLE_NOM", @@ -214,7 +227,8 @@ public void set(Boat boat, String subSubFleetName) throws Exception { boat.getFleet().setSubSubFleetName(subSubFleetName); } - }); + } + ); } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ContactImportExportModel.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ContactImportExportModel.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ContactImportExportModel.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -62,6 +62,7 @@ import java.util.HashMap; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import java.util.Map; public class ContactImportExportModel implements ImportExportModel<Contact> { @@ -125,6 +126,8 @@ } } + protected final Locale locale; + protected ObsProgram obsProgram; protected List<WaoUser> waoUsers; @@ -140,15 +143,17 @@ protected List<ContactStateMotif> motives; /** for export */ - public ContactImportExportModel(ObsProgram obsProgram) { + public ContactImportExportModel(Locale locale, ObsProgram obsProgram) { + this.locale = locale; this.obsProgram = obsProgram; } /** for import */ - public ContactImportExportModel(ObsProgram obsProgram, List<WaoUser> waoUsers, + public ContactImportExportModel(Locale locale, ObsProgram obsProgram, List<WaoUser> waoUsers, List<TerrestrialLocation> terrestrialLocations, List<SampleRow> sampleRows, List<Boat> boats, List<ObsDebCode> obsDebCodes, List<ContactStateMotif> motives) { + this.locale = locale; this.obsProgram = obsProgram; this.waoUsers = waoUsers; this.terrestrialLocations = terrestrialLocations; @@ -179,8 +184,8 @@ ModelBuilder<Contact> modelBuilder = new ModelBuilder<>(); modelBuilder.newColumnForImportExport("CONTACT_ID", Contact.TOPIA_ID); modelBuilder.newColumnForImportExport("CONTACT_DATE_CREATION", Contact.PROPERTY_CREATION_DATE, Common.DAY_TIME); - modelBuilder.newColumnForImportExport("CONTACT_OBSERVATEUR_PRINCIPAL", Contact.PROPERTY_MAIN_OBSERVER, new UserParserFormatter(waoUsers)); - modelBuilder.newColumnForImportExport("CONTACT_OBSERVATEURS_SECONDAIRES", Contact.PROPERTY_SECONDARY_OBSERVERS, new UsersParserFormatter(waoUsers)); + modelBuilder.newColumnForImportExport("CONTACT_OBSERVATEUR_PRINCIPAL", Contact.PROPERTY_MAIN_OBSERVER, new UserParserFormatter(locale, waoUsers)); + modelBuilder.newColumnForImportExport("CONTACT_OBSERVATEURS_SECONDAIRES", Contact.PROPERTY_SECONDARY_OBSERVERS, new UsersParserFormatter(locale, waoUsers)); modelBuilder.newIgnoredColumn("CONTACT_OBSERVATEURS_NOMS"); modelBuilder.newColumnForExport( "CONTACT_OBSERVATEURS_NOMS", @@ -194,7 +199,8 @@ } return StringUtils.join(fullNames, ", "); } - }); + } + ); modelBuilder.newIgnoredColumn("CONTACT_OBSERVATEURS_SOCIETE"); modelBuilder.newColumnForExport( "CONTACT_OBSERVATEURS_SOCIETE", @@ -204,7 +210,8 @@ return contact.getMainObserver().getCompany(); } }, - new CompanyParserFormatter(null)); + new CompanyParserFormatter(locale, null) + ); modelBuilder.newColumnForImportExport("CONTACT_ETAT", "contactState", new Common.ToStringParserFormatter(ContactState.getAllowedStates(obsProgram))); modelBuilder.newColumnForImportExport("CONTACT_DEBUT_OBSERVATION", Contact.PROPERTY_OBSERVATION_BEGIN_DATE, Common.DAY_TIME); modelBuilder.newColumnForImportExport("CONTACT_FIN_OBSERVATION", Contact.PROPERTY_OBSERVATION_END_DATE, Common.DAY_TIME); @@ -213,7 +220,7 @@ modelBuilder.newColumnForImportExport("CONTACT_COMMENTAIRE_COORDINATEUR", Contact.PROPERTY_COMMENT_COORDINATOR); modelBuilder.newColumnForImportExport("CONTACT_COMMENTAIRE_PROGRAMME", Contact.PROPERTY_COMMENT_ADMIN); - modelBuilder.newColumnForImportExport("NAVIRE_IMMATRICULATION", Contact.PROPERTY_BOAT, new BoatParserFormatter(boats)); + modelBuilder.newColumnForImportExport("NAVIRE_IMMATRICULATION", Contact.PROPERTY_BOAT, new BoatParserFormatter(boats, locale)); modelBuilder.newIgnoredColumn("NAVIRE_NOM"); modelBuilder.newColumnForExport("NAVIRE_NOM", new ValueGetter<Contact, String>() { @Override @@ -224,7 +231,7 @@ modelBuilder.newColumnForImportExport("CONTACT_VALIDATION_SOCIETE", Contact.PROPERTY_VALIDATION_COMPANY, Common.BOOLEAN); modelBuilder.newColumnForImportExport("CONTACT_VALIDATION_PROGRAMME", Contact.PROPERTY_VALIDATION_PROGRAM, Common.BOOLEAN); - modelBuilder.newColumnForImportExport("PLAN_CODE", Contact.PROPERTY_SAMPLE_ROW, new SampleRowParserFormatter(sampleRows)); + modelBuilder.newColumnForImportExport("PLAN_CODE", Contact.PROPERTY_SAMPLE_ROW, new SampleRowParserFormatter(locale, sampleRows)); if (obsProgram == ObsProgram.OBSMER) { modelBuilder.newColumnForImportExport("CONTACT_QUALITE_DONNEE", "dataReliability", @@ -233,7 +240,7 @@ modelBuilder.newColumnForImportExport("CONTACT_CAPTURE_ACCIDENTELLE", Contact.PROPERTY_MAMMALS_CAPTURE, Common.BOOLEAN); modelBuilder.newIgnoredColumn("CONTACT_CAPTURE_ACCIDENTELLE_DETAILS"); modelBuilder.newColumnForExport("CONTACT_CAPTURE_ACCIDENTELLE_DETAILS", Contact.PROPERTY_MAMMALS_INFO); - modelBuilder.newColumnForImportExport("CONTACT_ETAT_MOTIF_CODE", Contact.PROPERTY_CONTACT_STATE_MOTIF, new ContactStateMotivesParserFormatter(motives)); + modelBuilder.newColumnForImportExport("CONTACT_ETAT_MOTIF_CODE", Contact.PROPERTY_CONTACT_STATE_MOTIF, new ContactStateMotivesParserFormatter(locale, motives)); modelBuilder.newIgnoredColumn("CONTACT_ETAT_MOTIF_NOM"); modelBuilder.newColumnForExport("CONTACT_ETAT_MOTIF_NOM", new ValueGetter<Contact, String>() { @Override @@ -252,7 +259,7 @@ // terrestrial location for both ObsVente and ObsDeb ValueGetterSetter<Contact, LocationType> locationTypeGetter = new Common.ValueSaver<>(); - LocationTypeParserFormatter locationTypeParserFormatter = new LocationTypeParserFormatter(); + LocationTypeParserFormatter locationTypeParserFormatter = new LocationTypeParserFormatter(locale); modelBuilder.newMandatoryColumn( "CONTACT_LIEU_TYPE", locationTypeParserFormatter, @@ -297,7 +304,7 @@ if (obsProgram == ObsProgram.OBSDEB) { modelBuilder.newColumnForImportExport("CONTACT_DATE_DEBARQUEMENT", Contact.PROPERTY_LANDING_DATE, Common.DAY_TIME); modelBuilder.newColumnForImportExport("CONTACT_TYPE_OBSERVATION", "observationType", new Common.ToStringParserFormatter(ObservationType.values())); - modelBuilder.newColumnForImportExport("CONTACT_METIER", Contact.PROPERTY_OBS_DEB_CODE, new ObsDebCodeParserFormatter(obsDebCodes)); + modelBuilder.newColumnForImportExport("CONTACT_METIER", Contact.PROPERTY_OBS_DEB_CODE, new ObsDebCodeParserFormatter(locale, obsDebCodes)); } return modelBuilder; Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ContactStateMotivesImportModel.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ContactStateMotivesImportModel.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ContactStateMotivesImportModel.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -34,11 +34,18 @@ import java.text.ParseException; import java.util.List; +import java.util.Locale; public class ContactStateMotivesImportModel implements ImportModel<ContactStateMotif> { protected ModelBuilder<ContactStateMotif> modelBuilder; + protected final Locale locale; + + public ContactStateMotivesImportModel(Locale locale) { + this.locale = locale; + } + @Override public char getSeparator() { return ';'; @@ -67,7 +74,7 @@ @Override public String parse(String value) throws ParseException { if (value.length() != 6) { - throw new IllegalArgumentException(I18n.t("wao.import.contact.failure.wrongColor", value)); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.contact.failure.wrongColor", value)); } return value.trim(); } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/FishingZoneImportModel.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/FishingZoneImportModel.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/FishingZoneImportModel.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -33,13 +33,19 @@ import java.util.Collection; import java.util.List; +import java.util.Locale; /** * Modèle permettant l'import des zones de pêches. - * */ public class FishingZoneImportModel implements ImportModel<FishingZone> { + protected final Locale locale; + + public FishingZoneImportModel(Locale locale) { + this.locale = locale; + } + @Override public char getSeparator() { return ';'; @@ -61,8 +67,8 @@ modelBuilder.newMandatoryColumn("PECHE_DIVISION", FishingZone.PROPERTY_DISTRICT_CODE); modelBuilder.newMandatoryColumn("PECHE_ZONE", FishingZone.PROPERTY_SECTOR_NAME); modelBuilder.newMandatoryColumn("PECHE_FACADE", FishingZone.PROPERTY_FACADE_NAME); - modelBuilder.newMandatoryColumn("PECHE_LATITUDE", FishingZone.PROPERTY_LATITUDE, new LatitudeParserFormatter(true)); - modelBuilder.newMandatoryColumn("PECHE_LONGITUDE", FishingZone.PROPERTY_LONGITUDE, new LongitudeParserFormatter(true)); + modelBuilder.newMandatoryColumn("PECHE_LATITUDE", FishingZone.PROPERTY_LATITUDE, new LatitudeParserFormatter(locale, true)); + modelBuilder.newMandatoryColumn("PECHE_LONGITUDE", FishingZone.PROPERTY_LONGITUDE, new LongitudeParserFormatter(locale, true)); return (Collection) modelBuilder.getColumnsForImport(); } } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsDebSamplingPlanImportExportModel.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsDebSamplingPlanImportExportModel.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsDebSamplingPlanImportExportModel.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -48,6 +48,7 @@ import java.text.ParseException; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; /** @@ -62,6 +63,8 @@ protected static final String OBSERVATION_UNIT_HEADER_NAME = "UNITE_OBSERVATION_COD"; + protected final Locale locale; + protected List<TerrestrialDivision> observationUnits; protected List<WaoUser> allWaoUsers; @@ -81,12 +84,14 @@ protected ObservationType observationType; /** Constructor used for import */ - public ObsDebSamplingPlanImportExportModel(boolean admin, + public ObsDebSamplingPlanImportExportModel(Locale locale, + boolean admin, List<TerrestrialDivision> observationUnits, List<WaoUser> allWaoUsers, List<Company> allCompanies, List<Boat> allActiveBoats, List<TerrestrialLocation> allRegions) { + this.locale = locale; this.admin = admin; this.allWaoUsers = allWaoUsers; this.observationUnits = observationUnits; @@ -96,7 +101,8 @@ } /** Constructor used for export */ - public ObsDebSamplingPlanImportExportModel(boolean admin, ObservationType observationType) { + public ObsDebSamplingPlanImportExportModel(Locale locale, boolean admin, ObservationType observationType) { + this.locale = locale; this.admin = admin; this.observationType = observationType; } @@ -132,12 +138,12 @@ modelBuilder.newColumnForImportExport( "PLAN_CODE", SampleRow.PROPERTY_CODE, - new SampleRowCodeParserFormatter(ObsProgram.OBSDEB)); + new SampleRowCodeParserFormatter(locale, ObsProgram.OBSDEB)); if (admin) { modelBuilder.newColumnForImportExport( "SOCIETE", SampleRow.PROPERTY_COMPANY, - new CompanyParserFormatter(allCompanies)); + new CompanyParserFormatter(locale, allCompanies)); } modelBuilder.newColumnForImportExport( "OBSERVATEUR_COD", @@ -145,7 +151,7 @@ modelBuilder.newColumnForImportExport( "OBSERVATEURS", SampleRow.PROPERTY_OBSERVERS, - new UsersParserFormatter(allWaoUsers)); + new UsersParserFormatter(locale, allWaoUsers)); if (observationType == ObservationType.FIELD_WORK_OBSERVATION) { modelBuilder.newColumnForImportExport( "OBSERVATION_DATE", @@ -170,7 +176,7 @@ modelBuilder.newColumnForImportExport( "REGION_IFREMER", "terrestrialLocation", - new RegionParserFormatter(allRegions)); + new RegionParserFormatter(locale, allRegions)); modelBuilder.newColumnForImportExport( "OBSERVATION_DATE", SampleRow.PROPERTY_EXPECTED_DATE, @@ -178,7 +184,7 @@ modelBuilder.newColumnForImportExport( BOAT_HEADER_NAME, SampleRow.PROPERTY_BOAT, - new BoatParserFormatter(allActiveBoats)); + new BoatParserFormatter(allActiveBoats, locale)); } if (log.isDebugEnabled()) { log.debug("model built : " + modelBuilder.getColumnsForImport()); Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerContactImportExportModel.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerContactImportExportModel.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerContactImportExportModel.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -52,9 +52,12 @@ import java.util.LinkedList; import java.util.List; +import java.util.Locale; public class ObsMerContactImportExportModel implements ImportExportModel<Contact> { + protected final Locale locale; + protected ObsProgram obsProgram; protected List<WaoUser> waoUsers; @@ -65,11 +68,13 @@ protected List<ContactStateMotif> motives; - public static ObsMerContactImportExportModel forExport(ObsProgram obsProgram) { - return new ObsMerContactImportExportModel(obsProgram, null, null, null, null); + public static ObsMerContactImportExportModel forExport(Locale locale, + ObsProgram obsProgram) { + return new ObsMerContactImportExportModel(locale, obsProgram, null, null, null, null); } - public static ObsMerContactImportExportModel forImport(ObsProgram obsProgram, + public static ObsMerContactImportExportModel forImport(Locale locale, + ObsProgram obsProgram, List<WaoUser> waoUsers, List<SampleRow> sampleRows, List<Boat> boats, @@ -79,14 +84,16 @@ Preconditions.checkState(boats != null, "To import must have boats"); Preconditions.checkState(sampleRows != null, "To import must have sampleRows"); Preconditions.checkState(motives != null, "To import must have motives"); - return new ObsMerContactImportExportModel(obsProgram, waoUsers, sampleRows, boats, motives); + return new ObsMerContactImportExportModel(locale, obsProgram, waoUsers, sampleRows, boats, motives); } - protected ObsMerContactImportExportModel(ObsProgram obsProgram, + protected ObsMerContactImportExportModel(Locale locale, + ObsProgram obsProgram, List<WaoUser> waoUsers, List<SampleRow> sampleRows, List<Boat> boats, List<ContactStateMotif> motives) { + this.locale = locale; this.obsProgram = obsProgram; this.waoUsers = waoUsers; this.sampleRows = sampleRows; @@ -128,8 +135,8 @@ modelBuilder.newColumnForImportExport("CONTACT_ID", Contact.PROPERTY_TOPIA_ID); modelBuilder.newColumnForImportExport("CONTACT_DATE_CREATION", Contact.PROPERTY_CREATION_DATE, Common.DAY_TIME); if (waoUsers != null) { - modelBuilder.newColumnForImportExport("CONTACT_OBSERVATEUR_PRINCIPAL", Contact.PROPERTY_MAIN_OBSERVER, new UserParserFormatter(waoUsers)); - modelBuilder.newColumnForImportExport("CONTACT_OBSERVATEURS_SECONDAIRES", Contact.PROPERTY_SECONDARY_OBSERVERS, new UsersParserFormatter(waoUsers)); + modelBuilder.newColumnForImportExport("CONTACT_OBSERVATEUR_PRINCIPAL", Contact.PROPERTY_MAIN_OBSERVER, new UserParserFormatter(locale, waoUsers)); + modelBuilder.newColumnForImportExport("CONTACT_OBSERVATEURS_SECONDAIRES", Contact.PROPERTY_SECONDARY_OBSERVERS, new UsersParserFormatter(locale, waoUsers)); } modelBuilder.newIgnoredColumn("CONTACT_OBSERVATEURS_NOMS"); @@ -156,7 +163,7 @@ return contact.getMainObserver().getCompany(); } }, - new CompanyParserFormatter(null) + new CompanyParserFormatter(locale, null) ); modelBuilder.newColumnForImportExport("CONTACT_ETAT", "contactState", new Common.ToStringParserFormatter(ContactState.getAllowedStates(obsProgram))); modelBuilder.newColumnForImportExport("CONTACT_DEBUT_OBSERVATION", Contact.PROPERTY_OBSERVATION_BEGIN_DATE, Common.DAY_TIME); @@ -167,7 +174,7 @@ modelBuilder.newColumnForImportExport("CONTACT_COMMENTAIRE_PROGRAMME", Contact.PROPERTY_COMMENT_ADMIN); if (boats != null) { - modelBuilder.newColumnForImportExport("NAVIRE_IMMATRICULATION", Contact.PROPERTY_BOAT, new BoatParserFormatter(boats)); + modelBuilder.newColumnForImportExport("NAVIRE_IMMATRICULATION", Contact.PROPERTY_BOAT, new BoatParserFormatter(boats, locale)); } modelBuilder.newIgnoredColumn("NAVIRE_NOM"); modelBuilder.newColumnForExport("NAVIRE_NOM", new ValueGetter<Contact, String>() { @@ -180,7 +187,7 @@ modelBuilder.newColumnForImportExport("CONTACT_VALIDATION_PROGRAMME", Contact.PROPERTY_VALIDATION_PROGRAM, Common.BOOLEAN); if (sampleRows != null) { - modelBuilder.newColumnForImportExport("PLAN_CODE", Contact.PROPERTY_SAMPLE_ROW, new SampleRowParserFormatter(sampleRows)); + modelBuilder.newColumnForImportExport("PLAN_CODE", Contact.PROPERTY_SAMPLE_ROW, new SampleRowParserFormatter(locale, sampleRows)); } modelBuilder.newColumnForImportExport("CONTACT_QUALITE_DONNEE", "dataReliability", @@ -190,7 +197,7 @@ modelBuilder.newIgnoredColumn("CONTACT_CAPTURE_ACCIDENTELLE_DETAILS"); modelBuilder.newColumnForExport("CONTACT_CAPTURE_ACCIDENTELLE_DETAILS", Contact.PROPERTY_MAMMALS_INFO); if (motives != null) { - modelBuilder.newColumnForImportExport("CONTACT_ETAT_MOTIF_CODE", Contact.PROPERTY_CONTACT_STATE_MOTIF, new ContactStateMotivesParserFormatter(motives)); + modelBuilder.newColumnForImportExport("CONTACT_ETAT_MOTIF_CODE", Contact.PROPERTY_CONTACT_STATE_MOTIF, new ContactStateMotivesParserFormatter(locale, motives)); } modelBuilder.newIgnoredColumn("CONTACT_ETAT_MOTIF_NOM"); modelBuilder.newColumnForExport("CONTACT_ETAT_MOTIF_NOM", new ValueGetter<Contact, String>() { @@ -211,12 +218,12 @@ @Override public Iterable<ExportableColumn<Contact, Object>> getColumnsForExport() { - return (Iterable) getModel().getColumnsForExport(); + return (Iterable) getExportModel().getColumnsForExport(); } @Override public Iterable<ImportableColumn<Contact, Object>> getColumnsForImport() { - return (Iterable) getModel().getColumnsForImport(); + return (Iterable) getImportModel().getColumnsForImport(); } } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModel.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModel.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModel.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -54,6 +54,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; +import java.util.Locale; import java.util.regex.Pattern; /** @@ -106,6 +107,8 @@ protected static final ValueParserFormatter<Date> MONTH_YEAR_PARSER_FORMATTER = new Common.DateValue("MM/yyyy"); + protected final Locale locale; + protected ObsProgram obsProgram; protected List<Company> companies; @@ -121,16 +124,18 @@ protected PeriodDates periodDates; /** Pour l'export */ - public ObsMerObsVenteSamplingPlanImportExportModel(Date fromMonth, Date toMonth, ObsProgram obsProgram) { + public ObsMerObsVenteSamplingPlanImportExportModel(Locale locale, Date fromMonth, Date toMonth, ObsProgram obsProgram) { + this.locale = locale; this.periodDates = new PeriodDates(fromMonth, toMonth); this.obsProgram = obsProgram; } /** Pour l'import */ - public ObsMerObsVenteSamplingPlanImportExportModel(ObsProgram obsProgram, - List<Company> companies, List<FishingZone> fishingZones, - List<TerrestrialLocation> terrestrialDistricts, - ReferentialService referentialService) { + public ObsMerObsVenteSamplingPlanImportExportModel(Locale locale, ObsProgram obsProgram, + List<Company> companies, List<FishingZone> fishingZones, + List<TerrestrialLocation> terrestrialDistricts, + ReferentialService referentialService) { + this.locale = locale; this.obsProgram = obsProgram; this.companies = companies; this.fishingZones = fishingZones; @@ -184,8 +189,8 @@ modelBuilder = new ModelBuilder<>(); - modelBuilder.newColumnForImportExport("PLAN_CODE", SampleRow.PROPERTY_CODE, new SampleRowCodeParserFormatter(obsProgram)); - modelBuilder.newColumnForImportExport("SOCIETE_NOM", SampleRow.PROPERTY_COMPANY, new CompanyParserFormatter(companies)); + modelBuilder.newColumnForImportExport("PLAN_CODE", SampleRow.PROPERTY_CODE, new SampleRowCodeParserFormatter(locale, obsProgram)); + modelBuilder.newColumnForImportExport("SOCIETE_NOM", SampleRow.PROPERTY_COMPANY, new CompanyParserFormatter(locale, companies)); modelBuilder.newColumnForExport("PECHE_FACADE", "facade"); modelBuilder.newIgnoredColumn("PECHE_FACADE"); @@ -193,9 +198,9 @@ modelBuilder.newColumnForExport("PECHE_ZONE", "sectors"); modelBuilder.newIgnoredColumn("PECHE_ZONE"); - modelBuilder.newColumnForImportExport("PECHE_DIVISION", SampleRow.PROPERTY_FISHING_ZONE, new FishingZonesParserFormatter(fishingZones)); + modelBuilder.newColumnForImportExport("PECHE_DIVISION", SampleRow.PROPERTY_FISHING_ZONE, new FishingZonesParserFormatter(locale, fishingZones)); modelBuilder.newColumnForImportExport("PECHE_AUTRE", SampleRow.PROPERTY_FISHING_ZONES_INFOS); - modelBuilder.newColumnForImportExport("METIER_CODE_DCF5", SampleRow.PROPERTY_D_CF5_CODE, new DCF5CodesParserFormatter(referentialService)); + modelBuilder.newColumnForImportExport("METIER_CODE_DCF5", SampleRow.PROPERTY_D_CF5_CODE, new DCF5CodesParserFormatter(locale, referentialService)); modelBuilder.newColumnForImportExport("METIER_MAILLAGE", SampleRow.PROPERTY_PROFESSION + "." + Profession.PROPERTY_MESH_SIZE); modelBuilder.newColumnForImportExport("METIER_TAILLE", SampleRow.PROPERTY_PROFESSION + "." + Profession.PROPERTY_SIZE); modelBuilder.newColumnForImportExport("METIER_AUTRE", SampleRow.PROPERTY_PROFESSION + "." + Profession.PROPERTY_OTHER); Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/RawObsDebCodesImportModel.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/RawObsDebCodesImportModel.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/RawObsDebCodesImportModel.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -31,15 +31,19 @@ import org.nuiton.csv.ModelBuilder; import java.util.List; +import java.util.Locale; public class RawObsDebCodesImportModel implements ImportModel<RawObsDebCode> { + protected final Locale locale; + protected ModelBuilder<RawObsDebCode> modelBuilder; protected RegionParserFormatter regionParser; - public RawObsDebCodesImportModel(List<TerrestrialLocation> allRegions) { - regionParser = new RegionParserFormatter(allRegions); + public RawObsDebCodesImportModel(Locale locale, List<TerrestrialLocation> allRegions) { + this.locale = locale; + regionParser = new RegionParserFormatter(this.locale, allRegions); } @Override Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/TerrestrialDivisionImportModel.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/TerrestrialDivisionImportModel.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/TerrestrialDivisionImportModel.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -35,9 +35,11 @@ import org.nuiton.csv.ValueParser; import java.util.List; +import java.util.Locale; public class TerrestrialDivisionImportModel implements ImportModel<TerrestrialDivision> { + protected final Locale locale; /** all valid {@link fr.ifremer.wao.entity.TerrestrialLocation#getRegionIfremerCode()} values. * for validation purpose only */ @@ -45,8 +47,9 @@ protected List<TerrestrialLocation> ports; - public TerrestrialDivisionImportModel(List<TerrestrialLocation> ports, + public TerrestrialDivisionImportModel(Locale locale, List<TerrestrialLocation> ports, List<TerrestrialLocation> regions) { + this.locale = locale; this.ports = ports; this.regions = regions; } @@ -87,7 +90,7 @@ modelBuilder.newMandatoryColumn( "REGION_IFREMER_COD", TerrestrialDivision.PROPERTY_REGION_IFREMER, - new RegionParserFormatter(regions)); + new RegionParserFormatter(locale, regions)); modelBuilder.newIgnoredColumn("REGION_IFREMER_LIB"); modelBuilder.newMandatoryColumn("ZONE_COMPETENCE_COD", TerrestrialDivision.PROPERTY_SKILL_ZONE_CODE); modelBuilder.newMandatoryColumn("ZONE_COMPETENCE_LIB", TerrestrialDivision.PROPERTY_SKILL_ZONE_NAME); @@ -99,7 +102,7 @@ "LIEU_OBSERVATION_COD", TerrestrialDivision.PROPERTY_PORT, // the value given is a code of a port, let's find and associate - new PortParserFormatter(ports, false)); + new PortParserFormatter(locale, ports, false)); modelBuilder.newIgnoredColumn("LIEU_OBSERVATION_LIB"); modelBuilder.newIgnoredColumn("DATE_DEBUT"); modelBuilder.newIgnoredColumn("DATE_FIN"); Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/TerrestrialLocationImportModel.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/TerrestrialLocationImportModel.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/TerrestrialLocationImportModel.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -34,9 +34,16 @@ import org.nuiton.csv.ValueSetter; import java.util.List; +import java.util.Locale; public class TerrestrialLocationImportModel implements ImportModel<TerrestrialLocation> { + protected final Locale locale; + + public TerrestrialLocationImportModel(Locale locale) { + this.locale = locale; + } + @Override public char getSeparator() { return ';'; @@ -191,20 +198,20 @@ modelBuilder.newMandatoryColumn( "QUARTIER_LATITUDE", TerrestrialLocation.PROPERTY_DISTRICT_LATITUDE, - new LatitudeParserFormatter(true)); + new LatitudeParserFormatter(locale, true)); modelBuilder.newMandatoryColumn( "QUARTIER_LONGITUDE", TerrestrialLocation.PROPERTY_DISTRICT_LONGITUDE, - new LongitudeParserFormatter(true)); + new LongitudeParserFormatter(locale, true)); modelBuilder.newMandatoryColumn( "FACADE_LATITUDE", TerrestrialLocation.PROPERTY_SEABOARD_LATITUDE, - new LatitudeParserFormatter(true)); + new LatitudeParserFormatter(locale, true)); modelBuilder.newMandatoryColumn( "FACADE_LONGITUDE", TerrestrialLocation.PROPERTY_SEABOARD_LONGITUDE, - new LongitudeParserFormatter(true)); + new LongitudeParserFormatter(locale, true)); return (Iterable) modelBuilder.getColumnsForImport(); } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/BoatImmatriculationParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/BoatImmatriculationParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/BoatImmatriculationParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -27,6 +27,7 @@ import org.nuiton.i18n.I18n; import java.text.ParseException; +import java.util.Locale; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -42,9 +43,15 @@ */ public class BoatImmatriculationParserFormatter implements ValueParserFormatter<Integer> { + protected final Locale locale; + /** Exactly 6 digits */ protected Pattern pattern = Pattern.compile("\\d{6}"); + public BoatImmatriculationParserFormatter(Locale locale) { + this.locale = locale; + } + @Override public String format(Integer immatriculation) { return String.valueOf(immatriculation); @@ -60,7 +67,7 @@ public Integer parse(String imma) throws ParseException { Matcher matcher = pattern.matcher(imma); if (!matcher.find()) { - throw new IllegalArgumentException(I18n.t("wao.business.boat.validation.immatriculation.wrongFormat")); + throw new IllegalArgumentException(I18n.l(locale, "wao.business.boat.validation.immatriculation.wrongFormat")); } Integer immatriculation = Integer.parseInt(imma); return immatriculation; Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/BoatParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/BoatParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/BoatParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -32,13 +32,17 @@ import java.text.ParseException; import java.util.List; +import java.util.Locale; /** Parse a boat (identification based on the immatriculation) */ public class BoatParserFormatter implements ValueParserFormatter<Boat> { + protected final Locale locale; + protected ImmutableMap<Integer, Boat> indexedBoats; - public BoatParserFormatter(List<Boat> boats) { + public BoatParserFormatter(List<Boat> boats, Locale locale) { + this.locale = locale; indexedBoats = Maps.uniqueIndex(boats, Boats.getImmatriculation()); } @@ -51,12 +55,12 @@ public Boat parse(String value) throws ParseException { String trimmedValue = value.trim(); if (trimmedValue.isEmpty()) { - throw new IllegalArgumentException(I18n.t("wao.import.contact.failure.boatMissing")); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.contact.failure.boatMissing")); } Integer key = Integer.valueOf(trimmedValue); Boat boat = indexedBoats.get(key); if (boat == null) { - throw new IllegalArgumentException(I18n.t("wao.import.contact.failure.wrongBoat", value)); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.contact.failure.wrongBoat", value)); } return boat; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/CompanyParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/CompanyParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/CompanyParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -29,18 +29,23 @@ import fr.ifremer.wao.entity.Company; import org.apache.commons.lang3.StringUtils; import org.nuiton.csv.ValueParserFormatter; +import org.nuiton.i18n.I18n; import java.text.ParseException; import java.util.List; +import java.util.Locale; /** Parse a company according to it's name. */ public class CompanyParserFormatter implements ValueParserFormatter<Company> { + protected final Locale locale; + protected List<Company> companies; protected ImmutableMap<String, Company> indexedCompanies; - public CompanyParserFormatter(List<Company> companies) { + public CompanyParserFormatter(Locale locale, List<Company> companies) { + this.locale = locale; this.companies = companies; } @@ -62,8 +67,7 @@ if (StringUtils.isNotBlank(companyName)) { company = indexedCompanies.get(companyName.trim()); if (company == null) { - throw new IllegalArgumentException("Il n'y a pas de société ayant pour nom '" - + companyName + "'"); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.contact.failure.unkwonCompany", companyName)); } } return company; Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/ContactStateMotivesParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/ContactStateMotivesParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/ContactStateMotivesParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -33,14 +33,18 @@ import java.text.ParseException; import java.util.List; +import java.util.Locale; public class ContactStateMotivesParserFormatter implements ValueParserFormatter<ContactStateMotif> { + protected final Locale locale; + protected List<ContactStateMotif> motives; protected ImmutableMap<String, ContactStateMotif> indexedMotives; - public ContactStateMotivesParserFormatter(List<ContactStateMotif> motives) { + public ContactStateMotivesParserFormatter(Locale locale, List<ContactStateMotif> motives) { + this.locale = locale; this.motives = motives; } @@ -64,7 +68,7 @@ } else { contactStateMotif = indexedMotives.get(code.trim()); if (contactStateMotif == null) { - throw new IllegalArgumentException(I18n.t("wao.import.contact.failure.wrongContactStateMotifCode", code)); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.contact.failure.wrongContactStateMotifCode", code)); } } return contactStateMotif; Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DCF5CodesParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DCF5CodesParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DCF5CodesParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -36,16 +36,22 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.Locale; public class DCF5CodesParserFormatter implements ValueParserFormatter<List<DCF5Code>> { protected static final String DCF5_CODES_SEPARATOR = ","; + protected final Locale locale; + protected ReferentialService referentialService; - public DCF5CodesParserFormatter() {} + public DCF5CodesParserFormatter(Locale locale) { + this.locale = locale; + } - public DCF5CodesParserFormatter(ReferentialService referentialService) { + public DCF5CodesParserFormatter(Locale locale, ReferentialService referentialService) { + this.locale = locale; this.referentialService = referentialService; } @@ -62,9 +68,9 @@ List<DCF5Code> value = new ArrayList<>(dcf5Codes); return value; } catch (UnknownFishingGearDcfCodeException e) { - throw new IllegalArgumentException(I18n.t("wao.import.sampleRow.failure.unknownFishingGearDcfCode", e.getCode()), e); + throw new IllegalArgumentException(I18n.l(locale,"wao.import.sampleRow.failure.unknownFishingGearDcfCode", e.getCode()), e); } catch (UnknownTargetSpeciesDcfCodeException e) { - throw new IllegalArgumentException(I18n.t("wao.import.sampleRow.failure.unknownTargetSpeciesDcfCode", e.getCode()), e); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.sampleRow.failure.unknownTargetSpeciesDcfCode", e.getCode()), e); } } } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -32,13 +32,17 @@ import java.text.ParseException; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; public class DistrictParserFormatter implements ValueParserFormatter<TerrestrialLocation> { + protected final Locale locale; + protected Map<String, TerrestrialLocation> indexedDistricts; - public DistrictParserFormatter(List<TerrestrialLocation> districts) { + public DistrictParserFormatter(Locale locale, List<TerrestrialLocation> districts) { + this.locale = locale; if (districts != null) { indexedDistricts = new HashMap<>(); for (TerrestrialLocation district : districts) { @@ -64,11 +68,11 @@ public TerrestrialLocation parse(String value) throws ParseException { String trimmedValue = value.trim(); if (trimmedValue.isEmpty()) { - throw new IllegalArgumentException(I18n.t("wao.import.contact.failure.districtMissing")); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.contact.failure.districtMissing")); } TerrestrialLocation district = indexedDistricts.get(trimmedValue); if (district == null) { - throw new IllegalArgumentException(I18n.t("wao.import.contact.failure.wrongDistrict", value)); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.contact.failure.wrongDistrict", value)); } return district; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictsParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictsParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DistrictsParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -33,13 +33,17 @@ import java.util.HashMap; import java.util.LinkedList; import java.util.List; +import java.util.Locale; import java.util.Map; public class DistrictsParserFormatter implements ValueParserFormatter<Collection<TerrestrialLocation>> { + protected final Locale locale; + protected Map<String, TerrestrialLocation> indexedDistricts; - public DistrictsParserFormatter(List<TerrestrialLocation> districts) { + public DistrictsParserFormatter(Locale locale, List<TerrestrialLocation> districts) { + this.locale = locale; indexedDistricts = new HashMap<>(); for (TerrestrialLocation district : districts) { if ( ! district.isDistrict()) { @@ -65,14 +69,14 @@ @Override public Collection<TerrestrialLocation> parse(String value) throws ParseException { if (StringUtils.isBlank(value)) { - throw new IllegalArgumentException(I18n.t("wao.import.contact.failure.districtMissing")); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.contact.failure.districtMissing")); } String[] districtCodes = StringUtils.split(value, ','); Collection<TerrestrialLocation> districts = new LinkedList<>(); for (String districtCode : districtCodes) { TerrestrialLocation district = indexedDistricts.get(districtCode.trim()); if (district == null) { - throw new IllegalArgumentException(I18n.t("wao.import.contact.failure.wrongDistrict", value)); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.contact.failure.wrongDistrict", value)); } districts.add(district); } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/FishingZonesParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/FishingZonesParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/FishingZonesParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -34,17 +34,21 @@ import java.text.ParseException; import java.util.LinkedList; import java.util.List; +import java.util.Locale; /** * Consiste en plusieurs codes de zones de pêches séparés par des " / ". */ public class FishingZonesParserFormatter implements ValueParserFormatter<List<FishingZone>> { + protected final Locale locale; + protected ImmutableMap<String, FishingZone> indexedFishingZones; protected List<FishingZone> fishingZones; - public FishingZonesParserFormatter(List<FishingZone> fishingZones) { + public FishingZonesParserFormatter(Locale locale, List<FishingZone> fishingZones) { + this.locale = locale; this.fishingZones = fishingZones; } @@ -64,13 +68,13 @@ } List<FishingZone> fishingZones = new LinkedList<>(); if (StringUtils.isBlank(districtCodes)) { - throw new IllegalArgumentException(I18n.t("wao.import.sampleRow.failure.fishingZoneMissing")); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.sampleRow.failure.fishingZoneMissing")); } else { String[] codes = districtCodes.split(","); for (String code : codes) { FishingZone fishingZone = indexedFishingZones.get(code.trim()); if (fishingZone == null) { - throw new IllegalArgumentException(I18n.t("wao.import.sampleRow.failure.wrongFishingZone", code.trim())); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.sampleRow.failure.wrongFishingZone", code.trim())); } fishingZones.add(fishingZone); } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LatitudeParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LatitudeParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LatitudeParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -25,23 +25,29 @@ import org.apache.commons.lang3.Range; import org.nuiton.csv.Common; +import org.nuiton.i18n.I18n; +import java.util.Locale; + public class LatitudeParserFormatter extends Common.DoubleParserFormatter { protected static final Range<Double> VALID_LATITUDES = Range.between(-90., 90.); - public LatitudeParserFormatter(boolean nullAllowed) { + protected final Locale locale; + + public LatitudeParserFormatter(Locale locale, boolean nullAllowed) { super(null, nullAllowed); + this.locale = locale; } @Override protected Double parseNoneEmptyValue(String value) { Double latitude = super.parseNoneEmptyValue(value); - if ( ! VALID_LATITUDES.contains(latitude)) { + if (!VALID_LATITUDES.contains(latitude)) { + throw new IllegalArgumentException( - "a latitude must be contained in range " + VALID_LATITUDES + - ". ('" + latitude + "' argument given)"); + I18n.l(locale, "wao.import.invalid.latitude", VALID_LATITUDES, latitude)); } return latitude; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LocationTypeParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LocationTypeParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LocationTypeParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -30,11 +30,18 @@ import java.text.ParseException; import java.util.HashMap; +import java.util.Locale; import java.util.Map; /** Parse a location type (PORT or AUCTION only) */ public class LocationTypeParserFormatter implements ValueParserFormatter<LocationType> { + protected final Locale locale; + + public LocationTypeParserFormatter(Locale locale) { + this.locale = locale; + } + @Override public String format(LocationType locationType) { String value = ""; @@ -58,7 +65,7 @@ locationType = fromStrings.get(value.trim()); if (locationType == null) { throw new IllegalArgumentException( - I18n.t("wao.import.failure.wrongLocationType", + I18n.l(locale, "wao.import.failure.wrongLocationType", value, fromStrings.keySet())); } } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LongitudeParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LongitudeParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/LongitudeParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -25,23 +25,28 @@ import org.apache.commons.lang3.Range; import org.nuiton.csv.Common; +import org.nuiton.i18n.I18n; +import java.util.Locale; + public class LongitudeParserFormatter extends Common.DoubleParserFormatter { protected static final Range<Double> VALID_LONGITUDES = Range.between(-180., 180.); - public LongitudeParserFormatter(boolean nullAllowed) { + protected final Locale locale; + + public LongitudeParserFormatter(Locale locale, boolean nullAllowed) { super(null, nullAllowed); + this.locale = locale; } @Override protected Double parseNoneEmptyValue(String value) { Double longitude = super.parseNoneEmptyValue(value); - if ( ! VALID_LONGITUDES.contains(longitude)) { + if (!VALID_LONGITUDES.contains(longitude)) { throw new IllegalArgumentException( - "a longitude must be contained in range " + VALID_LONGITUDES + - ". ('" + longitude + "' argument given)"); + I18n.l(locale, "wao.import.invalid.longitude", VALID_LONGITUDES, longitude)); } return longitude; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/ObsDebCodeParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/ObsDebCodeParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/ObsDebCodeParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -33,14 +33,18 @@ import java.text.ParseException; import java.util.List; +import java.util.Locale; public class ObsDebCodeParserFormatter implements ValueParserFormatter<ObsDebCode> { + protected final Locale locale; + protected ImmutableMap<String, ObsDebCode> indexedObsDebCodes; protected List<ObsDebCode> obsDebCodes; - public ObsDebCodeParserFormatter(List<ObsDebCode> obsDebCodes) { + public ObsDebCodeParserFormatter(Locale locale, List<ObsDebCode> obsDebCodes) { + this.locale = locale; this.obsDebCodes = obsDebCodes; } @@ -63,7 +67,7 @@ obsDebCode = indexedObsDebCodes.get(code); if (obsDebCode == null) { throw new IllegalArgumentException - (I18n.t("wao.import.failure.wrongObsDebCode", code)); + (I18n.l(locale, "wao.import.failure.wrongObsDebCode", code)); } } return obsDebCode; Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/PortParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/PortParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/PortParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -29,12 +29,17 @@ import fr.ifremer.wao.entity.TerrestrialLocations; import org.apache.commons.lang3.StringUtils; import org.nuiton.csv.ValueParserFormatter; +import org.nuiton.i18n.I18n; import java.util.List; +import java.util.Locale; public class PortParserFormatter implements ValueParserFormatter<TerrestrialLocation> { - /** Existing ports + protected final Locale locale; + + /** + * Existing ports * key should be an terrestrial location id {@link fr.ifremer.wao.entity.TerrestrialLocation#getCode()} * and all the values must have {@link fr.ifremer.wao.entity.TerrestrialLocation#getLocationType()} at * {@link fr.ifremer.wao.entity.LocationType#PORT}. @@ -43,7 +48,8 @@ protected boolean allowNullValue; - public PortParserFormatter(List<TerrestrialLocation> ports, boolean allowNullValue) { + public PortParserFormatter(Locale locale, List<TerrestrialLocation> ports, boolean allowNullValue) { + this.locale = locale; this.allowNullValue = allowNullValue; if (ports != null) { this.ports = Maps.uniqueIndex(ports, TerrestrialLocations.getCode()); @@ -57,12 +63,14 @@ if (allowNullValue) { port = null; } else { - throw new IllegalArgumentException("Il faut préciser un port"); + throw new IllegalArgumentException( + I18n.l(locale, "wao.import.boat.failure.missing.port")); } } else { port = ports.get(locationCode); if (port == null) { - throw new IllegalArgumentException("Le code '" + locationCode + "' n'est pas un code de lieu valide"); + throw new IllegalArgumentException( + I18n.l(locale, "wao.import.boat.failure.invalid.locationCode", locationCode)); } } return port; Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/RegionParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/RegionParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/RegionParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -28,17 +28,22 @@ import fr.ifremer.wao.entity.TerrestrialLocation; import fr.ifremer.wao.entity.TerrestrialLocations; import org.nuiton.csv.ValueParserFormatter; +import org.nuiton.i18n.I18n; import java.text.ParseException; import java.util.List; +import java.util.Locale; public class RegionParserFormatter implements ValueParserFormatter<TerrestrialLocation> { + protected final Locale locale; + protected List<TerrestrialLocation> regions; protected ImmutableMap<String, TerrestrialLocation> indexedRegions; - public RegionParserFormatter(List<TerrestrialLocation> regions) { + public RegionParserFormatter(Locale locale, List<TerrestrialLocation> regions) { + this.locale = locale; this.regions = regions; } @@ -59,10 +64,10 @@ } TerrestrialLocation terrestrialLocation = - indexedRegions.get(regionCode.trim()); + indexedRegions.get(regionCode.trim()); if (terrestrialLocation == null) { - throw new IllegalArgumentException("Le code '" + regionCode + - "' n'est pas un code de région valide"); + throw new IllegalArgumentException( + I18n.l(locale, "wao.import.failure.invalid.regionCode", regionCode)); } return terrestrialLocation; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/RegionsParser.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/RegionsParser.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/RegionsParser.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -28,18 +28,23 @@ import fr.ifremer.wao.entity.TerrestrialLocation; import fr.ifremer.wao.entity.TerrestrialLocations; import org.nuiton.csv.ValueParser; +import org.nuiton.i18n.I18n; import java.text.ParseException; import java.util.LinkedList; import java.util.List; +import java.util.Locale; public class RegionsParser implements ValueParser<List<TerrestrialLocation>> { + protected final Locale locale; + protected List<TerrestrialLocation> regions; protected ImmutableMap<String, TerrestrialLocation> indexedRegions; - public RegionsParser(List<TerrestrialLocation> regions) { + public RegionsParser(Locale locale, List<TerrestrialLocation> regions) { + this.locale = locale; this.regions = regions; } @@ -57,8 +62,8 @@ TerrestrialLocation region = indexedRegions.get(regionCode.trim()); if (region == null) { - throw new IllegalArgumentException("Le code '" + regionCode + - "' n'est pas un code de région valide"); + throw new IllegalArgumentException( + I18n.l(locale, "wao.import.failure.invalid.regionCode", regionCode)); } regions.add(region); } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/SampleRowCodeParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/SampleRowCodeParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/SampleRowCodeParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -30,13 +30,17 @@ import org.nuiton.i18n.I18n; import java.text.ParseException; +import java.util.Locale; import java.util.regex.Pattern; public class SampleRowCodeParserFormatter implements ValueParserFormatter<String> { + protected final Locale locale; + protected Pattern sampleRowCodePattern; - public SampleRowCodeParserFormatter(ObsProgram obsProgram) { + public SampleRowCodeParserFormatter(Locale locale, ObsProgram obsProgram) { + this.locale = locale; sampleRowCodePattern = WaoUtils.getSampleRowCodePattern(obsProgram); } @@ -49,12 +53,12 @@ public String parse(String value) throws ParseException { String sampleRowCode; if (StringUtils.isBlank(value)) { - throw new IllegalArgumentException(I18n.t("wao.import.sampleRow.failure.missingSampleRowCode")); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.sampleRow.failure.missingSampleRowCode")); } else { if (sampleRowCodePattern.matcher(value).matches()) { sampleRowCode = value; } else { - throw new IllegalArgumentException(I18n.t("wao.import.sampleRow.failure.wrongSampleRowCodeFormat", value.trim())); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.sampleRow.failure.wrongSampleRowCodeFormat", value.trim())); } } return sampleRowCode; Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/SampleRowParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/SampleRowParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/SampleRowParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -33,12 +33,16 @@ import java.text.ParseException; import java.util.List; +import java.util.Locale; public class SampleRowParserFormatter implements ValueParserFormatter<SampleRow> { + protected final Locale locale; + protected ImmutableMap<String, SampleRow> indexedSampleRows; - public SampleRowParserFormatter(List<SampleRow> sampleRows) { + public SampleRowParserFormatter(Locale locale, List<SampleRow> sampleRows) { + this.locale = locale; indexedSampleRows = Maps.uniqueIndex(sampleRows, SampleRows.getCode()); } @@ -51,11 +55,11 @@ public SampleRow parse(String sampleRowCode) throws ParseException { String trimmedCode = sampleRowCode.trim(); if (StringUtils.isEmpty(trimmedCode)) { - throw new IllegalArgumentException(I18n.t("wao.import.contact.failure.sampleRowCodeMissing")); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.contact.failure.sampleRowCodeMissing")); } SampleRow sampleRow = indexedSampleRows.get(sampleRowCode); if (sampleRow == null) { - throw new IllegalArgumentException(I18n.t("wao.import.contact.failure.wrongSampleRowCode", sampleRowCode)); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.contact.failure.wrongSampleRowCode", sampleRowCode)); } return sampleRow; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/UserParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/UserParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/UserParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -33,13 +33,17 @@ import java.text.ParseException; import java.util.List; +import java.util.Locale; public class UserParserFormatter implements ValueParserFormatter<WaoUser> { + protected final Locale locale; + /** all waoUsers in the database when import was started, indexed by logins */ protected ImmutableMap<String, WaoUser> indexedWaoUsers; - public UserParserFormatter(List<WaoUser> waoUsers) { + public UserParserFormatter(Locale locale, List<WaoUser> waoUsers) { + this.locale = locale; this.indexedWaoUsers = Maps.uniqueIndex(waoUsers, WaoUsers.getLogin()); } @@ -53,7 +57,7 @@ public WaoUser parse(String login) throws ParseException { WaoUser user = indexedWaoUsers.get(login.trim()); if (user == null) { - throw new IllegalArgumentException(I18n.t("wao.import.failure.wrongUser", login)); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.failure.wrongUser", login)); } return user; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/UsersParserFormatter.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/UsersParserFormatter.java 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/UsersParserFormatter.java 2014-04-04 16:15:57 UTC (rev 1838) @@ -35,15 +35,19 @@ import java.text.ParseException; import java.util.LinkedList; import java.util.List; +import java.util.Locale; public class UsersParserFormatter implements ValueParserFormatter<List<WaoUser>> { protected static final String SEPARATOR = ","; + protected final Locale locale; + /** all waoUsers in the database when import was started, indexed by logins */ protected ImmutableMap<String, WaoUser> indexedWaoUsers; - public UsersParserFormatter(List<WaoUser> waoUsers) { + public UsersParserFormatter(Locale locale, List<WaoUser> waoUsers) { + this.locale = locale; this.indexedWaoUsers = Maps.uniqueIndex(waoUsers, WaoUsers.getLogin()); } @@ -62,7 +66,7 @@ String trimmedLogin = login.trim(); WaoUser user = indexedWaoUsers.get(trimmedLogin); if (user == null) { - throw new IllegalArgumentException(I18n.t("wao.import.failure.wrongUser", login)); + throw new IllegalArgumentException(I18n.l(locale, "wao.import.failure.wrongUser", login)); } users.add(user); } Modified: trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties =================================================================== --- trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-04-04 16:15:57 UTC (rev 1838) @@ -32,6 +32,8 @@ wao.business.validationState.validated=validate wao.export.ical.desc=wtih %s wao.export.ical.title=ObsDeb Observation +wao.import.boat.failure.invalid.locationCode=The code '%s' is not a valid location code +wao.import.boat.failure.missing.port=The port is required wao.import.contact.failure.boatMissing=You need to precise the plate number of the boat associated to the contact wao.import.contact.failure.districtMissing=You need to precise the boat district wao.import.contact.failure.invalid.company.for.observer=L'observateur %s n'est pas membre de la société %s @@ -52,6 +54,7 @@ wao.import.contact.failure.missing.trip.beginDate=La date de début de marée est obligatoire pour l'état '%s' wao.import.contact.failure.sampleRowCodeMissing=The code of the sample row line is missing wao.import.contact.failure.terrestrialLocationMissing=The code of the terrestrial location is missing +wao.import.contact.failure.unkwonCompany=Company named '%s' does not exist wao.import.contact.failure.wrongBoat=There is no boat with plate number '%s' wao.import.contact.failure.wrongColor=The color '%s' is not a valid color. It must be composed of 6 characters without the hash (\#), see http\://en.wikipedia.org/wiki/Web_colors wao.import.contact.failure.wrongContactStateMotifCode=The code '%s' is not a valid code @@ -59,9 +62,12 @@ wao.import.contact.failure.wrongSampleRowCode=The is no sample row with code '%s' wao.import.contact.failure.wrongTerrestrialLocation=There is no location of type '%s' with code '%s' wao.import.failure=Import fail. +wao.import.failure.invalid.regionCode=The code '%s' is not a valid region code wao.import.failure.wrongLocationType='%s' is not a valid location type, allowed values are %s wao.import.failure.wrongObsDebCode=There is no profession code having code '%s' wao.import.failure.wrongUser=There is no user with login '%s' +wao.import.invalid.latitude=a latitude must be contained in range %s. ('%s' argument given) +wao.import.invalid.longitude=a longitude must be contained in range %s. ('%s' argument given) wao.import.sampleRow.failure.fishingZoneMissing=You must precise at least one fishing zone wao.import.sampleRow.failure.missingSampleRowCode=You must precise a code for the sample row wao.import.sampleRow.failure.unknownFishingGearDcfCode=Unknown fishing gear code\: %s Modified: trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties =================================================================== --- trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-04-04 15:37:35 UTC (rev 1837) +++ trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-04-04 16:15:57 UTC (rev 1838) @@ -31,6 +31,8 @@ wao.business.validationState.validated=Validé wao.export.ical.desc=avec %s wao.export.ical.title=Observation ObsDeb +wao.import.boat.failure.invalid.locationCode=Le code '%s' n'est pas un code de lieu valide +wao.import.boat.failure.missing.port=Il faut préciser un port wao.import.contact.failure.boatMissing=Il faut préciser l'immatriculation du navire associé au contact wao.import.contact.failure.districtMissing=Il faut préciser le code d'un quartier maritime wao.import.contact.failure.invalid.company.for.observer=L'observateur %s n'est pas membre de la société %s @@ -51,6 +53,7 @@ wao.import.contact.failure.missing.trip.beginDate=La date de début de marée est obligatoire pour l'état '%s' wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associée wao.import.contact.failure.terrestrialLocationMissing=Il manque le code du lieu +wao.import.contact.failure.unkwonCompany=Il n'y a pas de société ayant pour nom '%s' wao.import.contact.failure.wrongBoat=Il n'y a pas de navire avec l'immatriculation '%s' wao.import.contact.failure.wrongColor=Le code couleur '%s' n'est pas valide, il doit être composé de six caractères sans dièze voir http\://fr.wikipedia.org/wiki/Couleurs_du_Web wao.import.contact.failure.wrongContactStateMotifCode=Le code '%s' n'est pas un code de motif de refus valide @@ -58,9 +61,12 @@ wao.import.contact.failure.wrongSampleRowCode=Il n'y a pas de ligne du plan avec le code '%s' wao.import.contact.failure.wrongTerrestrialLocation=Il n'y a pas de lieu de type '%s' ayant pour code '%s' wao.import.failure=Une erreur est survenue lors de l'import. +wao.import.failure.invalid.regionCode=Le code '%s' n'est pas un code de région valide wao.import.failure.wrongLocationType='%s' n'est pas un type de lieu valide, les valeurs admises sont %s wao.import.failure.wrongObsDebCode=Il n'y a pas de code métier ayant pour code '%s' wao.import.failure.wrongUser=Il n'y a pas d'utilisateur ayant pour identifiant '%s' +wao.import.invalid.latitude=La latitude doit être dans l'intervalle %s (valeur actuelle %s) +wao.import.invalid.longitude=La longitude doit être dans l'intervalle %s (valeur actuelle %s) wao.import.sampleRow.failure.fishingZoneMissing=Il faut préciser au moins une zone de pêche wao.import.sampleRow.failure.missingSampleRowCode=Il faut préciser un code pour a ligne du plan wao.import.sampleRow.failure.unknownFishingGearDcfCode=Le code engin %s est inconnu du référentiel
participants (1)
-
tchemit@users.forge.codelutin.com