This is an automated email from the git hooks/post-receive script. New commit to branch feature/reecriture_editeur_de_zones in repository tutti. See https://gitlab.nuiton.org/codelutin/tutti.git commit b7d7b968838387ada5ecccc65df9312fe102a728 Author: Tony CHEMIT <chemit@codelutin.com> Date: Tue Mar 22 15:32:33 2016 +0100 Rethink Protocol zone model --- .../tutti/persistence/TuttiPersistenceImpl.java | 6 ++++ .../persistence/TuttiPersistenceNoDbImpl.java | 6 ++++ .../persistence/entities/TuttiEntityBean.java | 4 +-- .../persistence/entities/protocol/SubStratas.java | 12 -------- .../persistence/entities/protocol/ZoneBean.java | 17 +++++++++++ .../tutti/persistence/entities/protocol/Zones.java | 22 +++++++++++++ .../service/ProtocolPersistenceServiceImpl.java | 34 ++++++++------------- .../referential/LocationPersistenceService.java | 10 ++++++ .../LocationPersistenceServiceImpl.java | 30 ++++++++++++++++++ .../src/main/xmi/tutti-persistence.zargo | Bin 59307 -> 59165 bytes 10 files changed, 105 insertions(+), 36 deletions(-) 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 6d9d10b..23070b5 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 @@ -23,6 +23,7 @@ package fr.ifremer.tutti.persistence; */ import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; @@ -497,6 +498,11 @@ public class TuttiPersistenceImpl implements TuttiPersistence { } @Override + public ImmutableSet<Integer> getAllFishingOperationStratasAndSubstratasIdsForProgram(String zoneId) { + return getLocationService().getAllFishingOperationStratasAndSubstratasIdsForProgram(zoneId); + } + + @Override public Multimap<TuttiLocation, TuttiLocation> getAllFishingOperationStratasAndSubstratas(String zoneId) { return getLocationService().getAllFishingOperationStratasAndSubstratas(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 c851073..82ac8a5 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 @@ -23,6 +23,7 @@ package fr.ifremer.tutti.persistence; */ import com.google.common.base.Predicate; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Multimap; import fr.ifremer.adagio.core.dao.referential.ObjectTypeCode; import fr.ifremer.tutti.persistence.entities.CaracteristicMap; @@ -152,6 +153,11 @@ public class TuttiPersistenceNoDbImpl implements TuttiPersistence { } @Override + public ImmutableSet<Integer> getAllFishingOperationStratasAndSubstratasIdsForProgram(String zoneId) { + throw notImplemented(); + } + + @Override public Multimap<TuttiLocation, TuttiLocation> getAllFishingOperationStratasAndSubstratas(String zoneId) { throw notImplemented(); } diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java index 3c8acf3..5c1601f 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/TuttiEntityBean.java @@ -86,12 +86,12 @@ public abstract class TuttiEntityBean implements Serializable, TuttiEntity { TuttiEntityBean that = (TuttiEntityBean) o; - return Objects.equals(id, that.id); + return Objects.equals(getId(), that.getId()); } @Override public int hashCode() { - return id == null ? 0 : id.hashCode(); + return Objects.hashCode(getId()); } @Override diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/SubStratas.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/SubStratas.java deleted file mode 100644 index c36d056..0000000 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/SubStratas.java +++ /dev/null @@ -1,12 +0,0 @@ -package fr.ifremer.tutti.persistence.entities.protocol; - -import fr.ifremer.tutti.persistence.entities.referential.TuttiLocation; - -public class SubStratas extends AbstractSubStratas { - - public static SubStrata newSubStrata(TuttiLocation tuttiLocation) { - SubStrata subStrata = newSubStrata(); - subStrata.setLocation(tuttiLocation); - return subStrata; - } -} diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/ZoneBean.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/ZoneBean.java new file mode 100644 index 0000000..b14857b --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/ZoneBean.java @@ -0,0 +1,17 @@ +package fr.ifremer.tutti.persistence.entities.protocol; + +import com.google.common.base.MoreObjects; + +public class ZoneBean extends AbstractZoneBean { + + private static final long serialVersionUID = 1L; + + @Override + public String toString() { + return MoreObjects.toStringHelper(this) + .add(PROPERTY_ID, getId()) + .add(PROPERTY_LABEL, label) + .toString(); + } + +} diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/Zones.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/Zones.java new file mode 100644 index 0000000..21a1764 --- /dev/null +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/Zones.java @@ -0,0 +1,22 @@ +package fr.ifremer.tutti.persistence.entities.protocol; + +import com.google.common.collect.ImmutableSet; + +public class Zones extends AbstractZones { + + public static ImmutableSet<Integer> getAllLocationIds(Zone zone) { + + ImmutableSet.Builder<Integer> resultBuilder = ImmutableSet.builder(); + + zone.getStrata().forEach(strata -> { + + resultBuilder.add(strata.getIdAsInt()); + strata.getSubstrata().forEach(subStrata -> resultBuilder.add(subStrata.getIdAsInt())); + + }); + + return resultBuilder.build(); + + } + +} diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java index 6e74499..4e1147f 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/ProtocolPersistenceServiceImpl.java @@ -44,6 +44,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.io.File; +import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; @@ -123,10 +124,10 @@ public class ProtocolPersistenceServiceImpl extends AbstractPersistenceService i @Override public TuttiProtocol getProtocolByName(String protocolName) { - TuttiProtocol result=null; + TuttiProtocol result = null; for (TuttiProtocol protocol : getAllProtocol()) { if (protocolName.equals(protocol.getName())) - result = protocol; + result = protocol; } return result; @@ -177,12 +178,12 @@ public class ProtocolPersistenceServiceImpl extends AbstractPersistenceService i TuttiProtocol protocol = getProtocol(id); if (TuttiProtocols.matchProgramId(protocol, programId)) { if (log.isDebugEnabled()) { - log.debug("Keep protocol: "+protocol.getName()+", programId: "+programId+" matches!"); + log.debug("Keep protocol: " + protocol.getName() + ", programId: " + programId + " matches!"); } result.add(protocol); } else { if (log.isDebugEnabled()) { - log.debug("Remove protocol: "+protocol.getName()+", programId: "+programId+" does not match!"); + log.debug("Remove protocol: " + protocol.getName() + ", programId: " + programId + " does not match!"); } } } @@ -235,40 +236,29 @@ public class ProtocolPersistenceServiceImpl extends AbstractPersistenceService i } result.setBenthos(benthos); - Binder<Zone, Zone> zoneBinder = BinderFactory.newBinder(Zone.class); - Binder<Strata, Strata> strataBinder = BinderFactory.newBinder(Strata.class); - Binder<SubStrata, SubStrata> subStrataBinder = BinderFactory.newBinder(SubStrata.class); - - List<Zone> zones = Lists.newArrayList(); + List<Zone> zones = new ArrayList<>(); if (!bean.isZoneEmpty()) { for (Zone zone : bean.getZone()) { - Zone z = Zones.newZone(); - zoneBinder.copy(zone, z); - z.setId(UUID.randomUUID().toString()); + Zone z = Zones.newZone(zone); + zones.add(z); - List<Strata> stratas = Lists.newArrayList(); + List<Strata> stratas = new ArrayList<>(); if (!zone.isStrataEmpty()) { for (Strata strata : zone.getStrata()) { - Strata s = Stratas.newStrata(); - strataBinder.copy(strata, s); - s.setId(UUID.randomUUID().toString()); + Strata s = Stratas.newStrata(strata); stratas.add(s); - List<SubStrata> subStratas = Lists.newArrayList(); + List<SubStrata> subStratas = new ArrayList<>(); if (!strata.isSubstrataEmpty()) { for (SubStrata subStrata : strata.getSubstrata()) { - SubStrata ss = SubStratas.newSubStrata(); - subStrataBinder.copy(subStrata, ss); - ss.setId(UUID.randomUUID().toString()); + SubStrata ss = SubStratas.newSubStrata(subStrata); subStratas.add(ss); } } - s.setSubstrata(subStratas); } } - z.setStrata(stratas); } } 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 945eeee..83133fa 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.ImmutableSet; import com.google.common.collect.Multimap; import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor; import fr.ifremer.tutti.persistence.entities.data.Cruise; @@ -74,6 +75,15 @@ public interface LocationPersistenceService extends TuttiPersistenceServiceImple List<TuttiLocation> getAllHarbourWithObsoletes(); /** + * Get the set of all ids of stratas or substratas that match the given zone id. + * + * @param zoneId id of the program zone + * @return set of all strata or substrata that match the given zone id. + * @since 4.5 + */ + ImmutableSet<Integer> getAllFishingOperationStratasAndSubstratasIdsForProgram(String zoneId); + + /** * 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) 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 02f5e34..13bbecc 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 @@ -26,6 +26,7 @@ package fr.ifremer.tutti.persistence.service.referential; import com.google.common.base.Preconditions; import com.google.common.collect.HashMultimap; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Lists; import com.google.common.collect.Multimap; import fr.ifremer.adagio.core.dao.referential.location.LocationClassificationId; @@ -112,6 +113,35 @@ public class LocationPersistenceServiceImpl extends ReferentialPersistenceServic } @Override + public ImmutableSet<Integer> getAllFishingOperationStratasAndSubstratasIdsForProgram(String zoneId) { + Preconditions.checkNotNull(zoneId); + + ImmutableSet.Builder<Integer> resultBuilder = ImmutableSet.builder(); + + List<TuttiLocation> stratas = getAllFishingOperationStrata(zoneId); + + if (log.isInfoEnabled()) { + log.info("found " + stratas.size() + " stratas for zone: " + zoneId); + } + + stratas.forEach(strata -> { + + resultBuilder.add(strata.getIdAsInt()); + + List<TuttiLocation> subStrats = getAllFishingOperationSubStrata(zoneId, strata.getId()); + + if (log.isInfoEnabled()) { + log.info("found " + subStrats.size() + " substratas for strata: " + strata); + } + + subStrats.forEach(subStrata -> resultBuilder.add(subStrata.getIdAsInt())); + + }); + + return resultBuilder.build(); + } + + @Override public Multimap<TuttiLocation, TuttiLocation> getAllFishingOperationStratasAndSubstratas(final String zoneId) { Preconditions.checkNotNull(zoneId); diff --git a/tutti-persistence/src/main/xmi/tutti-persistence.zargo b/tutti-persistence/src/main/xmi/tutti-persistence.zargo index c721325..a07a79f 100644 Binary files a/tutti-persistence/src/main/xmi/tutti-persistence.zargo and b/tutti-persistence/src/main/xmi/tutti-persistence.zargo differ -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.