This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit f9805f5ea351bc39c1684c58d2624d77a4ceab7b Author: Kevin Morin <morin@codelutin.com> Date: Mon Jan 25 11:22:53 2016 +0100 ajout des zones au protocole (refs #7929) --- .../tutti/persistence/TuttiPersistenceImpl.java | 5 +++ .../persistence/TuttiPersistenceNoDbImpl.java | 5 +++ .../referential/LocationPersistenceService.java | 10 ++++++ .../LocationPersistenceServiceImpl.java | 38 ++++++++++++++++++++++ .../ifremer/tutti/service/PersistenceService.java | 5 +++ 5 files changed, 63 insertions(+) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java index bf8f9ee..a072045 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java @@ -498,6 +498,11 @@ public class TuttiPersistenceImpl implements TuttiPersistence { } @Override + public Multimap<TuttiLocation, TuttiLocation> getAllFishingOperationStratasAndSubstratas(String zoneId) { + return getLocationService().getAllFishingOperationStratasAndSubstratas(zoneId); + } + + @Override public List<TuttiLocation> getAllFishingOperationStrata(String zoneId) { return getLocationService().getAllFishingOperationStrata(zoneId); } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java index 3f5d7c8..e3de04e 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceNoDbImpl.java @@ -154,6 +154,11 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { } @Override + public Multimap<TuttiLocation, TuttiLocation> getAllFishingOperationStratasAndSubstratas(String zoneId) { + throw notImplemented(); + } + + @Override public List<TuttiLocation> getAllFishingOperationStrata(String zoneId) { throw notImplemented(); } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/LocationPersistenceService.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/LocationPersistenceService.java index 89d532b..945eeee 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/LocationPersistenceService.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/LocationPersistenceService.java @@ -24,6 +24,7 @@ package fr.ifremer.tutti.persistence.service.referential; * #L% */ +import com.google.common.collect.Multimap; import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor; import fr.ifremer.tutti.persistence.entities.data.Cruise; import fr.ifremer.tutti.persistence.entities.data.Program; @@ -73,6 +74,15 @@ public interface LocationPersistenceService extends TuttiPersistenceServiceImple List<TuttiLocation> getAllHarbourWithObsoletes(); /** + * Get a multimap of location of type substrata by location of type strata that match the given zone id. + * + * @param zoneId id of the parent zone (can not be null) + * @return the stratas and substratas with given zone id as location parent + * @since 1.0 + */ + Multimap<TuttiLocation, TuttiLocation> getAllFishingOperationStratasAndSubstratas(String zoneId); + + /** * Get the list of location of type strata that match the given zone id. * * @param zoneId id of the parent zone (can not be null) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/LocationPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/LocationPersistenceServiceImpl.java index 8ae68c5..02f5e34 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/LocationPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/referential/LocationPersistenceServiceImpl.java @@ -25,13 +25,17 @@ package fr.ifremer.tutti.persistence.service.referential; */ import com.google.common.base.Preconditions; +import com.google.common.collect.HashMultimap; import com.google.common.collect.Lists; +import com.google.common.collect.Multimap; import fr.ifremer.adagio.core.dao.referential.location.LocationClassificationId; import fr.ifremer.adagio.core.dao.referential.location.LocationExtendDao; import fr.ifremer.adagio.core.dao.referential.location.LocationLevelId; import fr.ifremer.adagio.core.service.referential.location.LocationService; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; import fr.ifremer.tutti.persistence.entities.referential.TuttiLocations; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.hibernate.type.IntegerType; import org.springframework.stereotype.Service; @@ -39,6 +43,7 @@ import javax.annotation.Resource; import java.util.Collections; import java.util.Iterator; import java.util.List; +import java.util.stream.Collectors; /** * Created on 11/3/14. @@ -49,6 +54,9 @@ import java.util.List; @Service("locationPersistenceService") public class LocationPersistenceServiceImpl extends ReferentialPersistenceServiceSupport implements LocationPersistenceService { + /** Logger. */ + private static final Log log = LogFactory.getLog(LocationPersistenceServiceImpl.class); + @Resource(name = "locationDao") protected LocationExtendDao locationDao; @@ -104,6 +112,36 @@ public class LocationPersistenceServiceImpl extends ReferentialPersistenceServic } @Override + public Multimap<TuttiLocation, TuttiLocation> getAllFishingOperationStratasAndSubstratas(final String zoneId) { + Preconditions.checkNotNull(zoneId); + + Multimap<TuttiLocation, TuttiLocation> result = HashMultimap.create(); + + List<TuttiLocation> stratas = getAllFishingOperationStrata(zoneId); + + if (log.isInfoEnabled()) { + log.info("stratas : " + stratas.stream().map(TuttiLocation::getLabel).collect(Collectors.toSet())); + } + + stratas.forEach(strata -> { + List<TuttiLocation> allFishingOperationSubStrata = getAllFishingOperationSubStrata(zoneId, strata.getId()); + + if (allFishingOperationSubStrata.isEmpty()) { + result.put(strata, null); + + } else { + result.putAll(strata, allFishingOperationSubStrata); + } + }); + + if (log.isInfoEnabled()) { + log.info("stratas in result : " + result.keySet().stream().map(TuttiLocation::getLabel).collect(Collectors.toSet())); + } + + return result; + } + + @Override public List<TuttiLocation> getAllFishingOperationStrata(String zoneId) { Preconditions.checkNotNull(zoneId); List<TuttiLocation> result = getFishingOperationLocationsByParent( diff --git a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java index d5543f8..d092b27 100644 --- a/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java +++ b/tutti-service/src/main/java/fr/ifremer/tutti/service/PersistenceService.java @@ -766,6 +766,11 @@ public class PersistenceService extends AbstractTuttiService implements TuttiPer } @Override + public Multimap<TuttiLocation, TuttiLocation> getAllFishingOperationStratasAndSubstratas(String zoneId) { + return driver.getAllFishingOperationStratasAndSubstratas(zoneId); + } + + @Override public List<TuttiLocation> getAllFishingOperationStrata(String zoneId) { return driver.getAllFishingOperationStrata(zoneId); } -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.