r2266 - in branches/wao-4.0.x: wao-persistence/src/main/java/fr/ifremer/wao/entity wao-services/src/main/java/fr/ifremer/wao/services/service/administration
Author: bleny Date: 2014-10-02 14:36:59 +0200 (Thu, 02 Oct 2014) New Revision: 2266 Url: http://forge.codelutin.com/projects/wao/repository/revisions/2266 Log: am?\195?\169lioration de ReferentialService#getTerrestrialLocationInDistricts Modified: branches/wao-4.0.x/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocations.java branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java Modified: branches/wao-4.0.x/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocations.java =================================================================== --- branches/wao-4.0.x/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocations.java 2014-10-01 09:14:11 UTC (rev 2265) +++ branches/wao-4.0.x/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocations.java 2014-10-02 12:36:59 UTC (rev 2266) @@ -22,6 +22,7 @@ */ import com.google.common.base.Function; +import com.google.common.base.Predicate; import com.google.common.collect.Ordering; import java.util.Comparator; @@ -48,6 +49,10 @@ return new GetName(); } + public static Predicate<TerrestrialLocation> isDistrict() { + return new IsDistrict(); + } + protected static class GetDistrictCode implements Function<TerrestrialLocation, String> { @Override @@ -79,4 +84,12 @@ return input.getName(); } } + + protected static class IsDistrict implements Predicate<TerrestrialLocation> { + + @Override + public boolean apply(TerrestrialLocation input) { + return input.isDistrict(); + } + } } Modified: branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java =================================================================== --- branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java 2014-10-01 09:14:11 UTC (rev 2265) +++ branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java 2014-10-02 12:36:59 UTC (rev 2266) @@ -27,7 +27,9 @@ import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.base.Splitter; +import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; import fr.ifremer.wao.WaoTechnicalException; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.BoatGroup; @@ -67,6 +69,7 @@ import fr.ifremer.wao.entity.TerrestrialLocation; import fr.ifremer.wao.entity.TerrestrialLocationImpl; import fr.ifremer.wao.entity.TerrestrialLocationTopiaDao; +import fr.ifremer.wao.entity.TerrestrialLocations; import fr.ifremer.wao.services.service.ImportErrorException; import fr.ifremer.wao.services.service.WaoServiceSupport; import fr.ifremer.wao.services.service.csv.BoatGroupImportModel; @@ -1134,15 +1137,19 @@ public List<TerrestrialLocation> getTerrestrialLocationInDistricts(Collection<TerrestrialLocation> terrestrialDistricts) { - Set districtCodes = new HashSet(); - for (TerrestrialLocation terrestrialDistrict : terrestrialDistricts) { - Preconditions.checkArgument(terrestrialDistrict.isDistrict()); - districtCodes.add(terrestrialDistrict.getDistrictCode()); - } + Preconditions.checkState( + Iterables.all(terrestrialDistricts, TerrestrialLocations.isDistrict()), + terrestrialDistricts + " must contains only districts" + ); + Collection<String> districtCodes = Collections2.transform(terrestrialDistricts, TerrestrialLocations.getDistrictCode()); + TerrestrialLocationTopiaDao dao = getTerrestrialLocationDao(); - List<TerrestrialLocation> locationsInDistricts = dao.forLocationTypeIn(ImmutableSet.of(LocationType.PORT, LocationType.AUCTION)).addIn(TerrestrialLocation.PROPERTY_DISTRICT_CODE, districtCodes).findAll(); + List<TerrestrialLocation> locationsInDistricts = dao + .forLocationTypeIn(ImmutableSet.of(LocationType.PORT, LocationType.AUCTION)) + .addIn(TerrestrialLocation.PROPERTY_DISTRICT_CODE, districtCodes) + .findAll(); return locationsInDistricts;
participants (1)
-
bleny@users.forge.codelutin.com