Author: bleny Date: 2014-04-15 17:19:03 +0200 (Tue, 15 Apr 2014) New Revision: 1890 Url: http://forge.codelutin.com/projects/wao/repository/revisions/1890 Log: change model to add 'unique' where necessary Modified: trunk/pom.xml trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactImpl.java trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java trunk/wao-persistence/src/main/xmi/wao-model.zargo trunk/wao-persistence/src/test/java/fr/ifremer/wao/entity/SampleRowLogImplTest.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.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/operations/DCF5CodesParserFormatter.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/UsersParserFormatter.java Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2014-04-15 13:41:07 UTC (rev 1889) +++ trunk/pom.xml 2014-04-15 15:19:03 UTC (rev 1890) @@ -116,7 +116,7 @@ <nuitonConfigVersion>3.0-alpha-2</nuitonConfigVersion> <nuitonCsvVersion>3.0-alpha-3</nuitonCsvVersion> <nuitonUtilsVersion>3.0-SNAPSHOT</nuitonUtilsVersion> - <eugeneVersion>2.7.3</eugeneVersion> + <eugeneVersion>2.8-SNAPSHOT</eugeneVersion> <topiaVersion>3.0-SNAPSHOT</topiaVersion> <!--Site configuration --> Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactImpl.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2014-04-15 13:41:07 UTC (rev 1889) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactImpl.java 2014-04-15 15:19:03 UTC (rev 1890) @@ -24,10 +24,10 @@ package fr.ifremer.wao.entity; -import java.util.Collection; import java.util.Date; import java.util.LinkedList; import java.util.List; +import java.util.Set; /** * ContactImpl @@ -120,13 +120,13 @@ } @Override - public void addAllSecondaryObservers(Collection<WaoUser> secondaryObservers) { + public void addAllSecondaryObservers(Set<WaoUser> secondaryObservers) { super.addAllSecondaryObservers(secondaryObservers); updateNbObservers(); } @Override - public void setSecondaryObservers(Collection<WaoUser> secondaryObservers) { + public void setSecondaryObservers(Set<WaoUser> secondaryObservers) { super.setSecondaryObservers(secondaryObservers); updateNbObservers(); } Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2014-04-15 13:41:07 UTC (rev 1889) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2014-04-15 15:19:03 UTC (rev 1890) @@ -29,9 +29,8 @@ import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import java.util.ArrayList; -import java.util.Collection; import java.util.Date; +import java.util.HashSet; import java.util.LinkedHashSet; import java.util.LinkedList; import java.util.List; @@ -73,10 +72,12 @@ */ @Override public String getFacade() { - if (getFishingZone().size() > 0) { - return getFishingZone().get(0).getFacadeName(); + FishingZone firstFishingZone = Iterables.getFirst(getFishingZone(), null); + String facade = null; + if (firstFishingZone != null) { + facade = firstFishingZone.getFacadeName(); } - return null; + return facade; } /** @@ -176,7 +177,7 @@ setdCF5Code(null); } else { String[] splitCodes = codes.split(separatorRegex); - List<DCF5Code> dcfFives = new ArrayList<>(splitCodes.length); + Set<DCF5Code> dcfFives = new HashSet<>(splitCodes.length); for (String code : splitCodes) { String[] codeParts = code.split("_"); DCF5Code dcfFive = new DCF5CodeImpl(); Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java 2014-04-15 13:41:07 UTC (rev 1889) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java 2014-04-15 15:19:03 UTC (rev 1890) @@ -39,6 +39,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Set; /** * SampleRowLogImpl @@ -278,7 +279,7 @@ oldMonths = Maps.uniqueIndex(oldRow.getSampleMonth(), TopiaEntities.getTopiaIdFunction()); } - List<SampleMonth> newMonths = newRow.getSampleMonth(); + Set<SampleMonth> newMonths = newRow.getSampleMonth(); for (SampleMonth oldMonth : oldMonths.values()) { if ( ! newMonths.contains(oldMonth)) { String date = dateFormat.format(oldMonth.getPeriodDate()); @@ -305,13 +306,13 @@ } protected void compareEligibleBoats() { - List<ElligibleBoat> oldEligibleBoats; + Collection<ElligibleBoat> oldEligibleBoats; if (oldRow == null) { oldEligibleBoats = Collections.emptyList(); } else { oldEligibleBoats = oldRow.getElligibleBoat(); } - List<ElligibleBoat> newEligibleBoats = newRow.getElligibleBoat(); + Collection<ElligibleBoat> newEligibleBoats = newRow.getElligibleBoat(); // Lists for boats by status List<Integer> noLongerEligibleBoats = new ArrayList<>(); @@ -350,13 +351,13 @@ } protected void compareFishingZones() { - List<FishingZone> oldFishingZones; + Collection<FishingZone> oldFishingZones; if (oldRow == null) { oldFishingZones = Collections.emptyList(); } else { oldFishingZones = oldRow.getFishingZone(); } - List<FishingZone> newFishingZones = newRow.getFishingZone(); + Collection<FishingZone> newFishingZones = newRow.getFishingZone(); // Lists for boats by status List<String> removedZones = new ArrayList<>(); Modified: trunk/wao-persistence/src/main/xmi/wao-model.zargo =================================================================== (Binary files differ) Modified: trunk/wao-persistence/src/test/java/fr/ifremer/wao/entity/SampleRowLogImplTest.java =================================================================== --- trunk/wao-persistence/src/test/java/fr/ifremer/wao/entity/SampleRowLogImplTest.java 2014-04-15 13:41:07 UTC (rev 1889) +++ trunk/wao-persistence/src/test/java/fr/ifremer/wao/entity/SampleRowLogImplTest.java 2014-04-15 15:19:03 UTC (rev 1890) @@ -31,8 +31,7 @@ import org.junit.Test; import org.nuiton.util.DateUtil; -import java.util.ArrayList; -import java.util.Collections; +import java.util.HashSet; public class SampleRowLogImplTest { @@ -50,9 +49,9 @@ sampleRow.setPeriodBegin(DateUtil.createDate(1, 3, 2011)); sampleRow.setPeriodEnd(DateUtil.createDate(1, 6, 2011)); sampleRow.setProfession(new ProfessionImpl()); - sampleRow.setSampleMonth(Collections.<SampleMonth>emptyList()); - sampleRow.setElligibleBoat(Collections.<ElligibleBoat>emptyList()); - sampleRow.setFishingZone(new ArrayList<FishingZone>()); + sampleRow.setSampleMonth(new HashSet<SampleMonth>()); + sampleRow.setElligibleBoat(new HashSet<ElligibleBoat>()); + sampleRow.setFishingZone(new HashSet<FishingZone>()); return sampleRow; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-04-15 13:41:07 UTC (rev 1889) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-04-15 15:19:03 UTC (rev 1890) @@ -34,6 +34,7 @@ import java.io.Serializable; import java.text.NumberFormat; +import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Iterator; @@ -448,7 +449,8 @@ } // compute sampleRowPeriod - List<SampleMonth> sampleMonth = sampleRow.getSampleMonth(); + // TODO brendan 15/04/14 use treeset + List<SampleMonth> sampleMonth = new ArrayList<>(sampleRow.getSampleMonth()); firstSampleMonthDate = sampleMonth.get(0).getPeriodDate(); lastSampleMonthDate = sampleMonth.get(sampleMonth.size() - 1).getPeriodDate(); 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-15 13:41:07 UTC (rev 1889) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-04-15 15:19:03 UTC (rev 1890) @@ -87,7 +87,6 @@ import java.io.InputStream; import java.text.ParseException; -import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.Date; @@ -148,8 +147,8 @@ newSampleRow.setObsProgram(ObsProgram.OBSMER); newSampleRow.setProfession(new ProfessionImpl()); - newSampleRow.setFishingZone(new ArrayList<FishingZone>()); - newSampleRow.setSampleMonth(new ArrayList<SampleMonth>()); + newSampleRow.setFishingZone(new HashSet<FishingZone>()); + newSampleRow.setSampleMonth(new HashSet<SampleMonth>()); newSampleRow.setSamplingStrategy(SamplingStrategy.SIMULTANEOUS_ALL_SPECIES); String newSampleRowCode = getNewSampleRowCode(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-15 13:41:07 UTC (rev 1889) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java 2014-04-15 15:19:03 UTC (rev 1890) @@ -95,7 +95,6 @@ import java.io.InputStream; import java.util.Arrays; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -1031,9 +1030,9 @@ * les instances de {@link fr.ifremer.wao.entity.DCF5Code} correspondantes en ajoutant * les manquantes au référentiel au besoin. */ - public Collection<DCF5Code> getDcf5Codes(String joinedDcf5Codes) throws UnknownFishingGearDcfCodeException, UnknownTargetSpeciesDcfCodeException { + public Set<DCF5Code> getDcf5Codes(String joinedDcf5Codes) throws UnknownFishingGearDcfCodeException, UnknownTargetSpeciesDcfCodeException { - Collection<DCF5Code> dcf5Codes = new HashSet<>(); + Set<DCF5Code> dcf5Codes = new HashSet<>(); DCF5CodeTopiaDao dao = getDCF5CodeDao(); 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-15 13:41:07 UTC (rev 1889) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/DCF5CodesParserFormatter.java 2014-04-15 15:19:03 UTC (rev 1890) @@ -33,12 +33,10 @@ import org.nuiton.i18n.I18n; import org.nuiton.util.StringUtil; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; import java.util.Locale; +import java.util.Set; -public class DCF5CodesParserFormatter implements ValueParserFormatter<List<DCF5Code>> { +public class DCF5CodesParserFormatter implements ValueParserFormatter<Set<DCF5Code>> { protected static final String DCF5_CODES_SEPARATOR = ","; @@ -56,17 +54,16 @@ } @Override - public String format(List<DCF5Code> dcf5Codes) { + public String format(Set<DCF5Code> dcf5Codes) { String join = StringUtil.join(Iterables.transform(dcf5Codes, DCF5Codes.getCode()), DCF5_CODES_SEPARATOR, true); return join; } @Override - public List<DCF5Code> parse(String codes) { + public Set<DCF5Code> parse(String codes) { try { - Collection<DCF5Code> dcf5Codes = referentialService.getDcf5Codes(codes); - List<DCF5Code> value = new ArrayList<>(dcf5Codes); - return value; + Set<DCF5Code> dcf5Codes = referentialService.getDcf5Codes(codes); + return dcf5Codes; } catch (UnknownFishingGearDcfCodeException e) { throw new IllegalArgumentException(I18n.l(locale,"wao.import.sampleRow.failure.unknownFishingGearDcfCode", e.getCode()), e); } catch (UnknownTargetSpeciesDcfCodeException e) { 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-15 13:41:07 UTC (rev 1889) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/FishingZonesParserFormatter.java 2014-04-15 15:19:03 UTC (rev 1890) @@ -32,14 +32,16 @@ import org.nuiton.i18n.I18n; import java.text.ParseException; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Locale; +import java.util.Set; /** * Consiste en plusieurs codes de zones de pêches séparés par des " / ". */ -public class FishingZonesParserFormatter implements ValueParserFormatter<List<FishingZone>> { +public class FishingZonesParserFormatter implements ValueParserFormatter<Set<FishingZone>> { protected final Locale locale; @@ -53,7 +55,7 @@ } @Override - public String format(List<FishingZone> fishingZones) { + public String format(Set<FishingZone> fishingZones) { List<String> districtCodes = new LinkedList<>(); for (FishingZone fishingZone : fishingZones) { districtCodes.add(fishingZone.getDistrictCode()); @@ -62,11 +64,11 @@ } @Override - public List<FishingZone> parse(String districtCodes) throws ParseException { + public Set<FishingZone> parse(String districtCodes) throws ParseException { if (indexedFishingZones == null) { indexedFishingZones = Maps.uniqueIndex(fishingZones, FishingZones.getDistrictCode()); } - List<FishingZone> fishingZones = new LinkedList<>(); + Set<FishingZone> fishingZones = new HashSet<>(); if (StringUtils.isBlank(districtCodes)) { throw new IllegalArgumentException(I18n.l(locale, "wao.import.sampleRow.failure.fishingZoneMissing")); } else { 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-15 13:41:07 UTC (rev 1889) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/operations/UsersParserFormatter.java 2014-04-15 15:19:03 UTC (rev 1890) @@ -33,11 +33,12 @@ import org.nuiton.i18n.I18n; import java.text.ParseException; -import java.util.LinkedList; +import java.util.HashSet; import java.util.List; import java.util.Locale; +import java.util.Set; -public class UsersParserFormatter implements ValueParserFormatter<List<WaoUser>> { +public class UsersParserFormatter implements ValueParserFormatter<Set<WaoUser>> { protected static final String SEPARATOR = ","; @@ -52,16 +53,16 @@ } @Override - public String format(List<WaoUser> value) { + public String format(Set<WaoUser> value) { Iterable<String> usersLogin = Iterables.transform(value, WaoUsers.getLogin()); String commaSeparatedLogins = StringUtils.join(usersLogin, ", "); return commaSeparatedLogins; } @Override - public List<WaoUser> parse(String value) throws ParseException { + public Set<WaoUser> parse(String value) throws ParseException { String[] logins = StringUtils.split(value, SEPARATOR); - List<WaoUser> users = new LinkedList<>(); + Set<WaoUser> users = new HashSet<>(); for (String login : logins) { String trimmedLogin = login.trim(); WaoUser user = indexedWaoUsers.get(trimmedLogin);