Observe-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
February 2023
- 1 participants
- 55 discussions
[Git][ultreiaio/ird-observe][develop] Consolidate - Improve API (Closes #2628)
by Tony CHEMIT (@tchemit) 15 Feb '23
by Tony CHEMIT (@tchemit) 15 Feb '23
15 Feb '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
673cf35e by Tony Chemit at 2023-02-15T15:06:37+01:00
Consolidate - Improve API (Closes #2628)
- - - - -
17 changed files:
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/DcpUIModelStates.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/localmarket/TripBatchUIModelStates.java
- core/api/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateEngine.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateResult.java
- − core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectResultConsolidateBuilder.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/localmarket/consolidate/BatchConsolidateResult.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/ActivityConsolidateResult.java
- − core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/CatchModification.java
- − core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/SampleMeasureModification.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateContext.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateResultBuilder.java
- core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
- toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModifications.java
- toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModification.java → toolkit/api/src/main/java/fr/ird/observe/dto/JavaBeanPropertyModification.java
- toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/DtoPropertyModificationAdapter.java → toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/JavaBeanPropertyModificationAdapter.java
Changes:
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/DcpUIModelStates.java
=====================================
@@ -100,8 +100,8 @@ public interface DcpUIModelStates<D extends DataDto & FloatingObjectAware, P ext
default void recomputeComputedValues() {
Optional<FloatingObjectConsolidateResult> result = consolidate(getConsolidateEngine());
result.ifPresent(r -> {
- log.info("Flush " + r.getFloatingObjectModifications().size() + " consolidate dcp changes...");
- r.flushToDto(getBean());
+ log.info("Flush " + r.getModifications().size() + " consolidate dcp changes...");
+ r.flushToBean(getBean());
fireComputedValuesChanged();
});
}
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/localmarket/TripBatchUIModelStates.java
=====================================
@@ -104,7 +104,7 @@ public class TripBatchUIModelStates extends GeneratedTripBatchUIModelStates {
BatchConsolidateResult result = psConsolidateDataService.consolidateLocalmarketBatch(request);
if (result != null) {
log.info("Flush consolidate batch changes...");
- result.flushToDto(getTableEditBean());
+ result.flushToBean(getTableEditBean());
String lengthWeightParameterNotFound = result.getLengthWeightParameterNotFound();
if (lengthWeightParameterNotFound != null) {
log.warn(lengthWeightParameterNotFound);
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java
=====================================
@@ -77,4 +77,7 @@ public interface ProtectedIdsPs {
String PS_LOGBOOK_SAMPLE_DEFAULT_SAMPLE_QUALITY_ID = "fr.ird.referential.ps.logbook.SampleQuality#1464000000000#01";
Set<String> PS_LOGBOOK_CATCH_SPECIES_FATES = Set.of("fr.ird.referential.ps.common.SpeciesFate#1239832683619#0.5722739932065866", "fr.ird.referential.ps.common.SpeciesFate#1501492537510#0.9210847837998154");
String PS_LOCAL_MARKET_SAMPLE_DEFAULT_SAMPLE_TYPE_ID = "fr.ird.referential.ps.common.SampleType#1464000000000#01";
+ String PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_WEIGHING = "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#01";
+ String PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_SINGLE_SPECIES_INDIVIDUAL = "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#02";
+ String PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_PACKAGING_NOT_WEIGHTED = "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#03";
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateEngine.java
=====================================
@@ -28,7 +28,6 @@ import fr.ird.observe.dto.data.ps.FloatingObjectAware;
import fr.ird.observe.dto.data.ps.FloatingObjectPartAware;
import fr.ird.observe.dto.data.ps.dcp.SimplifiedObjectTypeManager;
import fr.ird.observe.dto.data.ps.observation.FloatingObjectDto;
-import fr.ird.observe.dto.data.ps.observation.consolidate.FloatingObjectConsolidateRequest;
import io.ultreia.java4all.bean.monitor.BeanMonitor;
import java.util.Optional;
@@ -47,12 +46,12 @@ public class FloatingObjectConsolidateEngine {
private static class FloatingObjectConsolidateContext {
- final FloatingObjectResultConsolidateBuilder resultBuilder;
- final BeanMonitor dcpMonitor;
+ final FloatingObjectConsolidateResult.Builder resultBuilder;
+ final BeanMonitor monitor;
- FloatingObjectConsolidateContext(FloatingObjectResultConsolidateBuilder resultBuilder) {
- this.resultBuilder = resultBuilder;
- dcpMonitor = new BeanMonitor(
+ FloatingObjectConsolidateContext(FloatingObjectConsolidateResult.Builder builder) {
+ this.resultBuilder = builder;
+ this.monitor = new BeanMonitor(
FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE,
FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING,
FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE,
@@ -62,17 +61,15 @@ public class FloatingObjectConsolidateEngine {
);
}
-
- void watchDcp(DataDto dcp) {
- dcpMonitor.setBean(dcp);
+ void watch(DataDto floatingObject) {
+ monitor.setBean(floatingObject);
}
- void flushDcp() {
- if (dcpMonitor.wasModified()) {
- DataDto dcp = (DataDto) dcpMonitor.getBean();
- resultBuilder.flushDcpModification(dcp, dcpMonitor.getModifiedProperties());
+ void flush() {
+ if (monitor.wasModified()) {
+ resultBuilder.flush(monitor);
}
- dcpMonitor.setBean(null);
+ monitor.setBean(null);
}
}
@@ -80,7 +77,7 @@ public class FloatingObjectConsolidateEngine {
this.simplifiedObjectTypeManager = simplifiedObjectTypeManager;
}
- public Optional<FloatingObjectConsolidateResult> consolidate(FloatingObjectConsolidateRequest request) {
+ public Optional<FloatingObjectConsolidateResult> consolidate(fr.ird.observe.dto.data.ps.observation.consolidate.FloatingObjectConsolidateRequest request) {
return consolidate0(request);
}
@@ -91,36 +88,35 @@ public class FloatingObjectConsolidateEngine {
private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> Optional<FloatingObjectConsolidateResult> consolidate0(FloatingObjectAdapter<F, P> request) {
- FloatingObjectResultConsolidateBuilder builder = new FloatingObjectResultConsolidateBuilder();
+ FloatingObjectConsolidateResult.Builder builder = FloatingObjectConsolidateResult.builder();
FloatingObjectConsolidateContext context = new FloatingObjectConsolidateContext(builder);
- F dcp = request.getFloatingObject();
- context.watchDcp(dcp);
+ F floatingObject = request.getFloatingObject();
+ context.watch(floatingObject);
Set<P> whenArriving = request.getWhenArriving();
Set<P> whenLeaving = request.getWhenLeaving();
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE, request, whenArriving, this::computeDcpSimplifiedObjectType0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_SIMPLIFIED_OBJECT_TYPE, request, whenLeaving, this::computeDcpSimplifiedObjectType0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE, request, whenArriving, this::computeDcpSimplifiedObjectType0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_SIMPLIFIED_OBJECT_TYPE, request, whenLeaving, this::computeDcpSimplifiedObjectType0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING, request, whenArriving, this::computeDcpNonEntangling0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_NON_ENTANGLING, request, whenLeaving, this::computeDcpNonEntangling0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING, request, whenArriving, this::computeDcpNonEntangling0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_NON_ENTANGLING, request, whenLeaving, this::computeDcpNonEntangling0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE, request, whenArriving, this::computeDcpBiodegradable0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_BIODEGRADABLE, request, whenLeaving, this::computeDcpBiodegradable0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE, request, whenArriving, this::computeDcpBiodegradable0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_BIODEGRADABLE, request, whenLeaving, this::computeDcpBiodegradable0);
- context.flushDcp();
+ context.flush();
return builder.build();
-
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> void computeDcpValue(F dcp, String propertyName, FloatingObjectAdapter<F, P> adapter, Set<P> parts, BiFunction<FloatingObjectAdapter<F, P>, Set<P>, Object> valueComputer) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> void computeDcpValue(F dcp, String propertyName, FloatingObjectAdapter<F, P> adapter, Set<P> parts, BiFunction<FloatingObjectAdapter<F, P>, Set<P>, Object> valueComputer) {
Object newValue = valueComputer.apply(adapter, parts);
dcp.set(propertyName, newValue);
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> DcpComputedValue computeDcpBiodegradable0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> DcpComputedValue computeDcpBiodegradable0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
if (parts.isEmpty()) {
return null;
}
@@ -139,7 +135,7 @@ public class FloatingObjectConsolidateEngine {
return result;
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> String computeDcpSimplifiedObjectType0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> String computeDcpSimplifiedObjectType0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
if (parts.isEmpty()) {
return null;
}
@@ -147,7 +143,7 @@ public class FloatingObjectConsolidateEngine {
return simplifiedObjectTypeManager.getStandardCode(objectMaterialIds);
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> DcpComputedValue computeDcpNonEntangling0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> DcpComputedValue computeDcpNonEntangling0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
if (parts.isEmpty()) {
return null;
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateResult.java
=====================================
@@ -23,44 +23,64 @@ package fr.ird.observe.dto.data.ps.dcp.consolidate;
*/
-import fr.ird.observe.dto.DtoPropertyModification;
-import fr.ird.observe.dto.ObserveDto;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import fr.ird.observe.dto.data.DataDto;
+import io.ultreia.java4all.bean.JavaBean;
+import io.ultreia.java4all.bean.monitor.BeanMonitor;
+import io.ultreia.java4all.util.json.JsonAware;
-import java.io.Serializable;
+import java.util.LinkedHashSet;
+import java.util.Optional;
import java.util.Set;
/**
- * Pour retourner le résultat de la consolidation d'une activité de type Seine.
+ * Contains the result of a consolidation operation on a Floating Object..
* <p>
- * Un tel objet est créé uniquement si des modifications on été effectuée sur l'activité.
+ * UA such object is only created if there is some modification on a the floating object.
* <p>
* Created on 28/08/15.
*
* @author Tony Chemit - dev(a)tchemit.fr
*/
-public class FloatingObjectConsolidateResult implements Serializable, ObserveDto {
-
- private static final long serialVersionUID = 1L;
+public class FloatingObjectConsolidateResult implements JsonAware {
/**
* All modifications on floating object.
*/
- private final Set<DtoPropertyModification> floatingObjectModifications;
+ private final Set<JavaBeanPropertyModification> modifications;
- FloatingObjectConsolidateResult(Set<DtoPropertyModification> floatingObjectModifications) {
- this.floatingObjectModifications = floatingObjectModifications;
+ public static Builder builder() {
+ return new Builder();
}
- public Set<DtoPropertyModification> getFloatingObjectModifications() {
- return floatingObjectModifications;
- }
+ public static class Builder {
+
+ private final Set<JavaBeanPropertyModification> modifications = new LinkedHashSet<>();
- public void flushToDto(DataDto dto) {
- for (DtoPropertyModification floatingObjectModification : floatingObjectModifications) {
- Serializable newValue = floatingObjectModification.getNewValue();
- dto.set(floatingObjectModification.getPropertyName(), newValue);
+ public Optional<FloatingObjectConsolidateResult> build() {
+ boolean noModification = modifications.isEmpty();
+ return Optional.ofNullable(noModification ? null : new FloatingObjectConsolidateResult(modifications));
}
+
+ public void flush(BeanMonitor monitor) {
+ DataDto dcp = (DataDto) monitor.getBean();
+ for (String modifiedProperty : monitor.getModifiedProperties()) {
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(dcp, modifiedProperty);
+ modifications.add(element);
+ }
+ }
+ }
+
+ FloatingObjectConsolidateResult(Set<JavaBeanPropertyModification> modifications) {
+ this.modifications = modifications;
+ }
+
+ public Set<JavaBeanPropertyModification> getModifications() {
+ return modifications;
+ }
+
+ public void flushToBean(JavaBean dto) {
+ modifications.forEach(modification -> modification.flushToBean(dto));
}
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectResultConsolidateBuilder.java deleted
=====================================
@@ -1,52 +0,0 @@
-package fr.ird.observe.dto.data.ps.dcp.consolidate;
-
-/*-
- * #%L
- * ObServe Core :: API :: Dto
- * %%
- * Copyright (C) 2008 - 2023 IRD, Ultreia.io
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-
-import fr.ird.observe.dto.DtoPropertyModification;
-import fr.ird.observe.dto.data.DataDto;
-
-import java.util.LinkedHashSet;
-import java.util.Optional;
-import java.util.Set;
-
-/**
- * @author Tony Chemit - dev(a)tchemit.fr
- * @since 7.0
- */
-public class FloatingObjectResultConsolidateBuilder {
-
- private final Set<DtoPropertyModification> modifications = new LinkedHashSet<>();
-
- public Optional<FloatingObjectConsolidateResult> build() {
- boolean noModification = modifications.isEmpty();
- return Optional.ofNullable(noModification ? null : new FloatingObjectConsolidateResult(modifications));
- }
-
- void flushDcpModification(DataDto dcp, String... propertyNamesModified) {
- for (String modifiedProperty : propertyNamesModified) {
- DtoPropertyModification element = new DtoPropertyModification(dcp, modifiedProperty);
- modifications.add(element);
- }
- }
-}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/localmarket/consolidate/BatchConsolidateResult.java
=====================================
@@ -22,8 +22,9 @@ package fr.ird.observe.dto.data.ps.localmarket.consolidate;
* #L%
*/
-import fr.ird.observe.dto.DtoPropertyModification;
import fr.ird.observe.dto.DtoPropertyModifications;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
+import fr.ird.observe.dto.ProtectedIdsPs;
import fr.ird.observe.dto.data.ps.localmarket.BatchDto;
import fr.ird.observe.dto.data.ps.localmarket.BatchWeightComputedValueSource;
import fr.ird.observe.dto.referential.common.SpeciesReference;
@@ -65,7 +66,7 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
}
@Override
- protected BatchConsolidateResult createResult(String id, String label, Set<DtoPropertyModification> modifications, String lengthWeightParameterNotFound) {
+ protected BatchConsolidateResult createResult(String id, String label, Set<JavaBeanPropertyModification> modifications, String lengthWeightParameterNotFound) {
return new BatchConsolidateResult(id, label, modifications, lengthWeightParameterNotFound);
}
@@ -83,12 +84,12 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
BatchWeightTypeReference batchWeightType = dto.getPackaging().getBatchWeightType();
Integer count = dto.getCount();
switch (batchWeightType.getId()) {
- case "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#01":
+ case ProtectedIdsPs.PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_WEIGHING:
// pesée poids direct
// P = batch.weight
// donc rien à faire
break;
- case "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#02":
+ case ProtectedIdsPs.PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_SINGLE_SPECIES_INDIVIDUAL:
// espèce unité
// P = poids moyen de l'espèce * batch.count / 1000
// ocean = océan de débarquement de la marée = ps_common.trip.ocean
@@ -113,7 +114,7 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
});
}
break;
- case "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#03":
+ case ProtectedIdsPs.PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_PACKAGING_NOT_WEIGHTED:
// Paquet/Conditionnement non pesé
// P = batch.packaging.meanWeight * batch.count (ou null si pas de packaging.meanWeight)
if (count != null) {
@@ -132,7 +133,7 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
return new BatchConsolidateResultBuilder(rtpMeanWeightFinder);
}
- BatchConsolidateResult(String batchId, String batchLabel, Set<DtoPropertyModification> modifications, String lengthWeightParameterNotFound) {
+ BatchConsolidateResult(String batchId, String batchLabel, Set<JavaBeanPropertyModification> modifications, String lengthWeightParameterNotFound) {
super(batchId, batchLabel, modifications, lengthWeightParameterNotFound);
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/ActivityConsolidateResult.java
=====================================
@@ -23,7 +23,7 @@ package fr.ird.observe.dto.data.ps.observation.consolidate;
*/
-import fr.ird.observe.dto.DtoPropertyModification;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import fr.ird.observe.dto.ObserveDto;
import java.io.Serializable;
@@ -63,17 +63,17 @@ public class ActivityConsolidateResult implements Serializable, ObserveDto {
private String newSchoolType;
/**
- * L'ensemble des modifications sur les échantillons.
+ * All modification on samples.
*/
- private Set<SampleMeasureModification> sampleMeasureModifications;
+ private Set<JavaBeanPropertyModification> sampleMeasureModifications;
/**
- * L'ensemble des modifications sur les captures non cibles.
+ * All modification on catches.
*/
- private Set<CatchModification> catchModifications;
+ private Set<JavaBeanPropertyModification> catchModifications;
/**
- * L'ensemble des modifications sur les objets flottants.
+ * All modification on floating objects.
*/
- private Set<DtoPropertyModification> floatingObjectModifications;
+ private Set<JavaBeanPropertyModification> floatingObjectModifications;
private Set<String> lengthWeightParameterNotFound ;
private Set<String> lengthLengthParameterNotFound;
@@ -94,27 +94,27 @@ public class ActivityConsolidateResult implements Serializable, ObserveDto {
this.activityLabel = activityLabel;
}
- public Set<SampleMeasureModification> getSampleMeasureModifications() {
+ public Set<JavaBeanPropertyModification> getSampleMeasureModifications() {
return sampleMeasureModifications;
}
- public void setSampleMeasureModifications(Set<SampleMeasureModification> sampleMeasureModifications) {
+ public void setSampleMeasureModifications(Set<JavaBeanPropertyModification> sampleMeasureModifications) {
this.sampleMeasureModifications = sampleMeasureModifications;
}
- public Set<CatchModification> getCatchModifications() {
+ public Set<JavaBeanPropertyModification> getCatchModifications() {
return catchModifications;
}
- public void setCatchModifications(Set<CatchModification> catchModifications) {
+ public void setCatchModifications(Set<JavaBeanPropertyModification> catchModifications) {
this.catchModifications = catchModifications;
}
- public Set<DtoPropertyModification> getFloatingObjectModifications() {
+ public Set<JavaBeanPropertyModification> getFloatingObjectModifications() {
return floatingObjectModifications;
}
- public void setFloatingObjectModifications(Set<DtoPropertyModification> floatingObjectModifications) {
+ public void setFloatingObjectModifications(Set<JavaBeanPropertyModification> floatingObjectModifications) {
this.floatingObjectModifications = floatingObjectModifications;
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/CatchModification.java deleted
=====================================
@@ -1,71 +0,0 @@
-package fr.ird.observe.dto.data.ps.observation.consolidate;
-
-/*-
- * #%L
- * ObServe Core :: API :: Dto
- * %%
- * Copyright (C) 2008 - 2023 IRD, Ultreia.io
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import java.io.Serializable;
-
-/**
- * Created by tchemit on 04/08/17.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- */
-public class CatchModification implements Serializable {
-
- private static final long serialVersionUID = 1L;
- protected String speciesLabel;
- protected String propertyName;
- protected Number newValue;
- String catchId;
-
- public String getCatchCatchId() {
- return catchId;
- }
-
- public String getSpeciesLabel() {
- return speciesLabel;
- }
-
- public String getPropertyName() {
- return propertyName;
- }
-
- public Number getNewValue() {
- return newValue;
- }
-
- public void setCatchId(String catchId) {
- this.catchId = catchId;
- }
-
- public void setSpeciesLabel(String speciesLabel) {
- this.speciesLabel = speciesLabel;
- }
-
- public void setPropertyName(String propertyName) {
- this.propertyName = propertyName;
- }
-
- public void setNewValue(Number newValue) {
- this.newValue = newValue;
- }
-}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/SampleMeasureModification.java deleted
=====================================
@@ -1,71 +0,0 @@
-package fr.ird.observe.dto.data.ps.observation.consolidate;
-
-/*-
- * #%L
- * ObServe Core :: API :: Dto
- * %%
- * Copyright (C) 2008 - 2023 IRD, Ultreia.io
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import java.io.Serializable;
-
-/**
- * Created by tchemit on 04/08/17.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- */
-public class SampleMeasureModification implements Serializable {
-
- private static final long serialVersionUID = 1L;
- protected String speciesLabel;
- protected String propertyName;
- protected Float newValue;
- private String id;
-
- public String getId() {
- return id;
- }
-
- public String getSpeciesLabel() {
- return speciesLabel;
- }
-
- public String getPropertyName() {
- return propertyName;
- }
-
- public Float getNewValue() {
- return newValue;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public void setSpeciesLabel(String speciesLabel) {
- this.speciesLabel = speciesLabel;
- }
-
- public void setPropertyName(String propertyName) {
- this.propertyName = propertyName;
- }
-
- public void setNewValue(Float newValue) {
- this.newValue = newValue;
- }
-}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java
=====================================
@@ -162,7 +162,7 @@ public class TripConsolidateEngine {
// add to result
localmarketBatchResults.add(r);
// flush back to entity
- r.flushToDto(batch);
+ r.flushToBean(batch);
});
}
@@ -193,11 +193,11 @@ public class TripConsolidateEngine {
activityContext.daoSupplier = (ObserveTopiaDaoSupplier) persistenceContext;
activityContext.resultBuilder = resultBuilder;
activityContext.trip = trip;
- activityContext.routeObs = route;
- activityContext.activityObs = activity;
- activityContext.sampleMeasureObsMonitor = sampleMeasureMonitor;
- activityContext.sampleObsMonitor = sampleMonitor;
- activityContext.catchObsMonitor = catchMonitor;
+ activityContext.route = route;
+ activityContext.activity = activity;
+ activityContext.sampleMeasureMonitor = sampleMeasureMonitor;
+ activityContext.sampleMonitor = sampleMonitor;
+ activityContext.catchMonitor = catchMonitor;
activityContext.floatingObjectConsolidateEngine = floatingObjectConsolidateEngine;
activityContext.activityPrefix = activityPrefix;
try {
@@ -228,11 +228,11 @@ public class TripConsolidateEngine {
}
private void consolidateActivity(ActivityConsolidateContext activityContext) {
- Activity activity = activityContext.activityObs;
+ Activity activity = activityContext.activity;
log.debug(String.format("%s Start consolidate activity: %s", activityContext.activityPrefix, activity.getTopiaId()));
if (activity.isFloatingObjectNotEmpty()) {
- for (FloatingObject dcp : activity.getFloatingObject()) {
- updateDcp(dcp, activityContext);
+ for (FloatingObject floatingObject : activity.getFloatingObject()) {
+ updateFloatingObject(floatingObject, activityContext);
}
}
Set set = activity.getSet();
@@ -249,22 +249,17 @@ public class TripConsolidateEngine {
activityContext.setSchoolTypeChanged(oldSchoolType == null ? null : oldSchoolType.getTopiaId(), newSchoolTypeId);
}
if (set.isSampleNotEmpty()) {
- // des échantillons trouves
for (Sample sample : set.getSample()) {
if (sample.isSampleMeasureNotEmpty()) {
for (SampleMeasure sampleMeasure : sample.getSampleMeasure()) {
activityContext.watchSampleMeasure(sampleMeasure);
- updateLengthWeightAble(activityContext,
- sampleMeasure.getSpecies(),
- /* pas de sexe precise */
- sampleMeasure);
+ updateLengthWeightAble(activityContext, sampleMeasure.getSpecies(), sampleMeasure);
activityContext.flushSampleMeasure();
}
}
}
}
if (set.isCatchesNotEmpty()) {
- // des captures trouves
for (Catch aCatch : set.getCatches()) {
activityContext.watchCatch(aCatch);
updateCatch(activityContext, aCatch);
@@ -274,11 +269,11 @@ public class TripConsolidateEngine {
}
}
- private void updateDcp(FloatingObject dcp, ActivityConsolidateContext activityContext) {
+ private void updateFloatingObject(FloatingObject floatingObject, ActivityConsolidateContext activityContext) {
- if (dcp.getObjectOperation() == null) {
+ if (floatingObject.getObjectOperation() == null) {
log.warn("**********************");
- log.warn(String.format("Floating object %s has no object operation....", dcp.getTopiaId()));
+ log.warn(String.format("Floating object %s has no object operation....", floatingObject.getTopiaId()));
log.warn("**********************");
return;
}
@@ -286,22 +281,27 @@ public class TripConsolidateEngine {
ReferentialLocale referentialLocale = context.getReferentialLocale();
- FloatingObjectDto floatingObjectDto = FloatingObject.toDto(referentialLocale, dcp);
+ FloatingObjectDto floatingObjectDto = FloatingObject.toDto(referentialLocale, floatingObject);
- java.util.Set<FloatingObjectPartDto> floatingObjectPartSet = new LinkedHashSet<>(FloatingObjectPart.SPI.toDataDtoList(referentialLocale, dcp.getFloatingObjectPart()));
+ java.util.Set<FloatingObjectPartDto> floatingObjectPartSet = new LinkedHashSet<>(FloatingObjectPart.SPI.toDataDtoList(referentialLocale, floatingObject.getFloatingObjectPart()));
FloatingObjectConsolidateRequest request = new FloatingObjectConsolidateRequest(floatingObjectDto, floatingObjectPartSet);
Optional<FloatingObjectConsolidateResult> result = floatingObjectConsolidateEngine.consolidate(request);
- result.ifPresent(r -> activityContext.flushDcp(dcp, r));
+ result.ifPresent(r -> {
+ // flush to main result
+ activityContext.flushFloatingObject(r);
+ // flush back modifications detected to entity
+ r.flushToBean(floatingObject);
+ });
if (request.isNeedClean()) {
log.warn("**********************");
- log.warn(String.format("Floating object %s has some bad parts, this will be fixed here....", dcp.getTopiaId()));
+ log.warn(String.format("Floating object %s has some bad parts, this will be fixed here....", floatingObject.getTopiaId()));
log.warn("**********************");
// Need to clean dcp parts
- boolean notWhenArriving = !dcp.getObjectOperation().isWhenArriving();
- boolean notWhenLeaving = !dcp.getObjectOperation().isWhenLeaving();
- for (FloatingObjectPart floatingObjectPart : dcp.getFloatingObjectPart()) {
+ boolean notWhenArriving = !floatingObject.getObjectOperation().isWhenArriving();
+ boolean notWhenLeaving = !floatingObject.getObjectOperation().isWhenLeaving();
+ for (FloatingObjectPart floatingObjectPart : floatingObject.getFloatingObjectPart()) {
if (floatingObjectPart.getWhenArriving() != null && notWhenArriving) {
log.info(String.format("Set whenArriving to null for part: %s", floatingObjectPart.getTopiaId()));
floatingObjectPart.setWhenArriving(null);
@@ -333,7 +333,7 @@ public class TripConsolidateEngine {
// récupération des échantillon de cette espèce sur les calée
// on recherche sur le couple species/speciesFate (ou sur le couple species/null)
- Collection<SampleMeasure> sampleMeasures = getSampleMeasures(activityContext.getSetObs(), species, aCatch.getSpeciesFate());
+ Collection<SampleMeasure> sampleMeasures = getSampleMeasures(activityContext.getSet(), species, aCatch.getSpeciesFate());
if (aCatch.getCatchWeight() != null || aCatch.getTotalCount() != null) {
// -- Cas n°2 (pas de taille / poids moyen mais au moins un des deux taille / poids)
@@ -448,11 +448,11 @@ public class TripConsolidateEngine {
private void computeCatchMeanValues(Catch aCatch, LengthWeightParameter lengthWeightParameter) {
if (lengthWeightParameter != null) {
- if (aCatch.getMeanLength() == null) {
+ if (aCatch.getMeanLength() == null && lengthWeightParameter.getMeanLength() != null) {
aCatch.setMeanLength(lengthWeightParameter.getMeanLength());
aCatch.setMeanLengthComputedSource(CatchComputedValueSource.fromReferentiel);
}
- if (aCatch.getMeanWeight() == null) {
+ if (aCatch.getMeanWeight() == null && lengthWeightParameter.getMeanWeight() != null) {
aCatch.setMeanWeight(lengthWeightParameter.getMeanWeight());
aCatch.setMeanWeightComputedSource(CatchComputedValueSource.fromReferentiel);
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateContext.java
=====================================
@@ -23,11 +23,8 @@ package fr.ird.observe.entities.data.ps.observation;
*/
import fr.ird.observe.decoration.DecoratorService;
-import fr.ird.observe.dto.DtoPropertyModification;
-import fr.ird.observe.dto.data.ps.DcpComputedValue;
import fr.ird.observe.dto.data.ps.dcp.consolidate.FloatingObjectConsolidateEngine;
import fr.ird.observe.dto.data.ps.dcp.consolidate.FloatingObjectConsolidateResult;
-import fr.ird.observe.dto.data.ps.observation.FloatingObjectDto;
import fr.ird.observe.entities.ObserveTopiaDaoSupplier;
import fr.ird.observe.entities.data.ps.common.Trip;
import fr.ird.observe.entities.referential.LengthLengthParameterNotFoundException;
@@ -55,8 +52,8 @@ public class ActivityConsolidateContext {
public Locale locale;
public Trip trip;
- public fr.ird.observe.entities.data.ps.observation.Route routeObs;
- public fr.ird.observe.entities.data.ps.observation.Activity activityObs;
+ public fr.ird.observe.entities.data.ps.observation.Route route;
+ public fr.ird.observe.entities.data.ps.observation.Activity activity;
public ObserveTopiaDaoSupplier daoSupplier;
public boolean failIfLengthWeightParameterNotFound;
public boolean failIfLengthLengthParameterNotFound;
@@ -64,25 +61,25 @@ public class ActivityConsolidateContext {
public String activityPrefix;
public ActivityConsolidateResultBuilder resultBuilder;
public FloatingObjectConsolidateEngine floatingObjectConsolidateEngine;
- public BeanMonitor sampleObsMonitor;
- public BeanMonitor sampleMeasureObsMonitor;
- public BeanMonitor catchObsMonitor;
+ public BeanMonitor sampleMonitor;
+ public BeanMonitor sampleMeasureMonitor;
+ public BeanMonitor catchMonitor;
public Ocean getOcean() {
return trip.getOcean();
}
- public Date getRouteObsDate() {
- return routeObs.getDate();
+ public Date getRouteDate() {
+ return route.getDate();
}
- public fr.ird.observe.entities.data.ps.observation.Set getSetObs() {
- return activityObs.getSet();
+ public fr.ird.observe.entities.data.ps.observation.Set getSet() {
+ return activity.getSet();
}
public Optional<LengthWeightParameter> findLengthWeightParameter(Species species, Sex sex, SizeMeasureType sizeMeasureType) {
Ocean ocean = getOcean();
- Date routeDate = getRouteObsDate();
+ Date routeDate = getRouteDate();
try {
return Optional.ofNullable(LengthWeightParameters.findLengthWeightParameter(decoratorService, daoSupplier, species, sex, ocean, routeDate, sizeMeasureType));
} catch (LengthWeightParameterNotFoundException e) {
@@ -96,7 +93,7 @@ public class ActivityConsolidateContext {
public Optional<LengthLengthParameter> findLengthLengthParameter(Species species, Sex sex, SizeMeasureType inputSizeMeasureType, SizeMeasureType outputSizeMeasureType) {
Ocean ocean = getOcean();
- Date routeDate = getRouteObsDate();
+ Date routeDate = getRouteDate();
try {
return LengthLengthParameters.findLengthLengthParameter(decoratorService, daoSupplier, species, ocean, sex, routeDate, inputSizeMeasureType, outputSizeMeasureType);
} catch (LengthLengthParameterNotFoundException e) {
@@ -113,14 +110,12 @@ public class ActivityConsolidateContext {
}
public void watchSampleMeasure(SampleMeasure sampleMeasure) {
- sampleMeasureObsMonitor.setBean(sampleMeasure);
+ sampleMeasureMonitor.setBean(sampleMeasure);
if (sampleMeasure.isIsLengthComputed()) {
- // Reset de la valeur calculée
sampleMeasure.setLength(null);
sampleMeasure.setIsLengthComputed(false);
}
if (sampleMeasure.isIsWeightComputed()) {
- // Reset de la valeur calculée
sampleMeasure.setWeight(null);
sampleMeasure.setIsWeightComputed(false);
}
@@ -128,15 +123,15 @@ public class ActivityConsolidateContext {
public void flushSampleMeasure() {
- if (sampleMeasureObsMonitor.wasModified()) {
- SampleMeasure sampleMeasure = (SampleMeasure) sampleMeasureObsMonitor.getBean();
- resultBuilder.flushSampleMeasureModification(sampleMeasure, sampleMeasureObsMonitor.getModifiedProperties());
+ if (sampleMeasureMonitor.wasModified()) {
+ SampleMeasure sampleMeasure = (SampleMeasure) sampleMeasureMonitor.getBean();
+ resultBuilder.flushSampleMeasureModification(sampleMeasure, sampleMeasureMonitor.getModifiedProperties());
}
- sampleMeasureObsMonitor.setBean(null);
+ sampleMeasureMonitor.setBean(null);
}
public void watchCatch(Catch aCatch) {
- catchObsMonitor.setBean(aCatch);
+ catchMonitor.setBean(aCatch);
if (aCatch.isCatchWeightComputed()) {
aCatch.setCatchWeight(null);
aCatch.setCatchWeightComputedSource(null);
@@ -156,50 +151,15 @@ public class ActivityConsolidateContext {
}
public void flushCatch() {
- if (catchObsMonitor.wasModified()) {
- Catch aCatch = (Catch) catchObsMonitor.getBean();
- resultBuilder.flushCatchModification(aCatch, catchObsMonitor.getModifiedProperties());
+ if (catchMonitor.wasModified()) {
+ Catch aCatch = (Catch) catchMonitor.getBean();
+ resultBuilder.flushCatchModification(aCatch, catchMonitor.getModifiedProperties());
}
- catchObsMonitor.setBean(null);
+ catchMonitor.setBean(null);
}
- public void flushDcp(FloatingObject dcp, FloatingObjectConsolidateResult floatingObjectConsolidateResult) {
- resultBuilder.flushDcpModification(floatingObjectConsolidateResult);
- for (DtoPropertyModification floatingObjectModification : floatingObjectConsolidateResult.getFloatingObjectModifications()) {
- String modifiedProperty = floatingObjectModification.getPropertyName();
- switch (modifiedProperty) {
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE: {
-
- dcp.setComputedWhenArrivingBiodegradable((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING: {
-
- dcp.setComputedWhenArrivingNonEntangling((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE: {
-
- dcp.setComputedWhenArrivingSimplifiedObjectType((String) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_BIODEGRADABLE: {
-
- dcp.setComputedWhenLeavingBiodegradable((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_NON_ENTANGLING: {
-
- dcp.setComputedWhenLeavingNonEntangling((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_SIMPLIFIED_OBJECT_TYPE: {
-
- dcp.setComputedWhenLeavingSimplifiedObjectType((String) floatingObjectModification.getNewValue());
- break;
- }
- }
- }
+ public void flushFloatingObject(FloatingObjectConsolidateResult floatingObjectConsolidateResult) {
+ resultBuilder.flushFloatingObjectModification(floatingObjectConsolidateResult);
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateResultBuilder.java
=====================================
@@ -22,11 +22,9 @@ package fr.ird.observe.entities.data.ps.observation;
* #L%
*/
-import fr.ird.observe.dto.DtoPropertyModification;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import fr.ird.observe.dto.data.ps.dcp.consolidate.FloatingObjectConsolidateResult;
-import fr.ird.observe.dto.data.ps.observation.consolidate.CatchModification;
import fr.ird.observe.dto.data.ps.observation.consolidate.ActivityConsolidateResult;
-import fr.ird.observe.dto.data.ps.observation.consolidate.SampleMeasureModification;
import fr.ird.observe.dto.referential.I18nReferentialHelper;
import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.referential.common.Ocean;
@@ -58,49 +56,46 @@ public class ActivityConsolidateResultBuilder {
private final ReferentialLocale referenceLocale;
private final Set<String> lengthWeightParameterNotFoundBuilder = new LinkedHashSet<>();
private final Set<String> lengthLengthParameterNotFoundBuilder = new LinkedHashSet<>();
- private final Set<SampleMeasureModification> sampleMeasureObsModificationBuilder = new LinkedHashSet<>();
- private final Set<CatchModification> catchObsModificationBuilder = new LinkedHashSet<>();
- private final Set<DtoPropertyModification> dcpModificationBuilder = new LinkedHashSet<>();
- private final String activitySeineLabel;
- private final String activitySeineId;
+ private final Set<JavaBeanPropertyModification> sampleMeasureModificationBuilder = new LinkedHashSet<>();
+ private final Set<JavaBeanPropertyModification> catchModificationBuilder = new LinkedHashSet<>();
+ private final Set<JavaBeanPropertyModification> floatingObjectModificationBuilder = new LinkedHashSet<>();
+ private final String activityLabel;
+ private final String activityId;
private String oldSchoolType;
private String newSchoolType;
- public ActivityConsolidateResultBuilder(Locale locale, ReferentialLocale referenceLocale, String activitySeineId, String activitySeineLabel) {
+ public ActivityConsolidateResultBuilder(Locale locale, ReferentialLocale referenceLocale, String activityId, String activityLabel) {
this.locale = locale;
this.referenceLocale = referenceLocale;
- this.activitySeineId = activitySeineId;
- this.activitySeineLabel = activitySeineLabel;
+ this.activityId = activityId;
+ this.activityLabel = activityLabel;
}
public Optional<ActivityConsolidateResult> build() {
- Set<SampleMeasureModification> sampleMeasureObsModifications = sampleMeasureObsModificationBuilder;
- Set<CatchModification> catchObsModifications = catchObsModificationBuilder;
- Set<DtoPropertyModification> floatingObjectModifications = dcpModificationBuilder;
+ Set<JavaBeanPropertyModification> sampleMeasureModifications = sampleMeasureModificationBuilder;
+ Set<JavaBeanPropertyModification> catchModifications = catchModificationBuilder;
+ Set<JavaBeanPropertyModification> floatingObjectModifications = floatingObjectModificationBuilder;
- boolean noModification = (sampleMeasureObsModifications.isEmpty()
- && catchObsModifications.isEmpty()
+ boolean noModification = sampleMeasureModifications.isEmpty()
+ && catchModifications.isEmpty()
&& floatingObjectModifications.isEmpty()
- && newSchoolType == null);
+ && newSchoolType == null;
- ActivityConsolidateResult consolidateActivitySeineObsDataResult;
if (noModification) {
- consolidateActivitySeineObsDataResult = null;
- } else {
- consolidateActivitySeineObsDataResult = new ActivityConsolidateResult();
- consolidateActivitySeineObsDataResult.setActivityId(activitySeineId);
- consolidateActivitySeineObsDataResult.setActivityLabel(activitySeineLabel);
- if (newSchoolType != null) {
- consolidateActivitySeineObsDataResult.setSchoolTypeChanged(oldSchoolType, newSchoolType);
- }
- consolidateActivitySeineObsDataResult.setSampleMeasureModifications(sampleMeasureObsModifications);
- consolidateActivitySeineObsDataResult.setCatchModifications(catchObsModifications);
- consolidateActivitySeineObsDataResult.setFloatingObjectModifications(floatingObjectModifications);
- consolidateActivitySeineObsDataResult.setFloatingObjectModifications(floatingObjectModifications);
- consolidateActivitySeineObsDataResult.setLengthLengthParameterNotFound(getLengthLengthParameterNotFoundBuilder());
- consolidateActivitySeineObsDataResult.setLengthWeightParameterNotFound(getLengthWeightParameterNotFoundBuilder());
+ return Optional.empty();
+ }
+ ActivityConsolidateResult result = new ActivityConsolidateResult();
+ result.setActivityId(activityId);
+ result.setActivityLabel(activityLabel);
+ if (newSchoolType != null) {
+ result.setSchoolTypeChanged(oldSchoolType, newSchoolType);
}
- return Optional.ofNullable(consolidateActivitySeineObsDataResult);
+ result.setSampleMeasureModifications(sampleMeasureModifications);
+ result.setCatchModifications(catchModifications);
+ result.setFloatingObjectModifications(floatingObjectModifications);
+ result.setLengthLengthParameterNotFound(getLengthLengthParameterNotFoundBuilder());
+ result.setLengthWeightParameterNotFound(getLengthWeightParameterNotFoundBuilder());
+ return Optional.of(result);
}
public Set<String> getLengthWeightParameterNotFoundBuilder() {
@@ -111,90 +106,22 @@ public class ActivityConsolidateResultBuilder {
return lengthLengthParameterNotFoundBuilder;
}
- void flushDcpModification(FloatingObjectConsolidateResult result) {
- dcpModificationBuilder.addAll(result.getFloatingObjectModifications());
+ void flushFloatingObjectModification(FloatingObjectConsolidateResult result) {
+ floatingObjectModificationBuilder.addAll(result.getModifications());
}
- void flushSampleMeasureModification(SampleMeasure targetLength, String... propertyNamesModified) {
-
- Species species = targetLength.getSpecies();
- String speciesLabel = decorate(species);
+ void flushSampleMeasureModification(SampleMeasure sampleMeasure, String... propertyNamesModified) {
for (String modifiedProperty : propertyNamesModified) {
- if (modifiedProperty.equals(SampleMeasure.PROPERTY_LENGTH)) {
- SampleMeasureModification element = new SampleMeasureModification();
- element.setId(targetLength.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(SampleMeasure.PROPERTY_LENGTH);
- element.setNewValue(targetLength.getLength());
- sampleMeasureObsModificationBuilder.add(element);
- } else if (modifiedProperty.equals(SampleMeasure.PROPERTY_WEIGHT)) {
- SampleMeasureModification element = new SampleMeasureModification();
- element.setId(targetLength.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(SampleMeasure.PROPERTY_LENGTH);
- element.setNewValue(targetLength.getLength());
- sampleMeasureObsModificationBuilder.add(element);
- }
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(sampleMeasure, modifiedProperty);
+ sampleMeasureModificationBuilder.add(element);
}
}
void flushCatchModification(Catch aCatch, String... propertyNamesModified) {
-
- Species species = aCatch.getSpecies();
- String speciesLabel = decorate(species);
for (String modifiedProperty : propertyNamesModified) {
- switch (modifiedProperty) {
- case Catch.PROPERTY_MEAN_LENGTH: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_MEAN_LENGTH);
- element.setNewValue(aCatch.getMeanLength());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getMeanLengthComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- case Catch.PROPERTY_MEAN_WEIGHT: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_MEAN_WEIGHT);
- element.setNewValue(aCatch.getMeanWeight());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getMeanWeightComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- case Catch.PROPERTY_CATCH_WEIGHT: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_CATCH_WEIGHT);
- element.setNewValue(aCatch.getCatchWeight());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getCatchWeightComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- case Catch.PROPERTY_TOTAL_COUNT: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_TOTAL_COUNT);
- element.setNewValue(aCatch.getTotalCount());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getTotalCountComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- }
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(aCatch, modifiedProperty);
+ catchModificationBuilder.add(element);
}
-
}
ActivityConsolidateResultBuilder registerLengthWeightParameterNotFound(Species species, Ocean ocean, Sex sex, Date routeDate) {
@@ -228,6 +155,7 @@ public class ActivityConsolidateResultBuilder {
this.newSchoolType = newSchoolType;
return this;
}
+
//FIXME use decorator
private String decorate(Species species) {
StringBuilder builder = new StringBuilder();
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
=====================================
@@ -68,8 +68,8 @@ public class ConsolidateDataServiceFixtures extends GeneratedConsolidateDataServ
Optional<FloatingObjectConsolidateResult> optionalResult = engine.consolidate(request);
Assert.assertTrue(optionalResult.isPresent());
FloatingObjectConsolidateResult result = optionalResult.get();
- Assert.assertNotNull(result.getFloatingObjectModifications());
- Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectLogbook.count"), result.getFloatingObjectModifications().size());
+ Assert.assertNotNull(result.getModifications());
+ Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectLogbook.count"), result.getModifications().size());
}
{
String id = getProperty("consolidateFloatingObjectObservation.id");
@@ -84,8 +84,8 @@ public class ConsolidateDataServiceFixtures extends GeneratedConsolidateDataServ
Optional<FloatingObjectConsolidateResult> optionalResult = engine.consolidate(request);
Assert.assertTrue(optionalResult.isPresent());
FloatingObjectConsolidateResult result = optionalResult.get();
- Assert.assertNotNull(result.getFloatingObjectModifications());
- Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectObservation.count"), result.getFloatingObjectModifications().size());
+ Assert.assertNotNull(result.getModifications());
+ Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectObservation.count"), result.getModifications().size());
}
}
=====================================
toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModifications.java
=====================================
@@ -24,10 +24,10 @@ package fr.ird.observe.dto;
import io.ultreia.java4all.bean.JavaBean;
import io.ultreia.java4all.bean.monitor.BeanMonitor;
+import io.ultreia.java4all.util.json.JsonAware;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import java.io.Serializable;
import java.util.LinkedHashSet;
import java.util.Optional;
import java.util.Set;
@@ -38,17 +38,17 @@ import java.util.Set;
* @author Tony Chemit - dev(a)tchemit.fr
* @since 9.0.0
*/
-public class DtoPropertyModifications implements ObserveDto {
+public class DtoPropertyModifications implements JsonAware {
private static final Logger log = LogManager.getLogger(DtoPropertyModifications.class);
private final String id;
private final String label;
- private final Set<DtoPropertyModification> properties;
+ private final Set<JavaBeanPropertyModification> properties;
private final String lengthWeightParameterNotFound;
public static abstract class Builder<R extends DtoPropertyModifications> {
private final BeanMonitor monitor;
- private final Set<DtoPropertyModification> modifications = new LinkedHashSet<>();
+ private final Set<JavaBeanPropertyModification> modifications = new LinkedHashSet<>();
private String id;
private String label;
private String lengthWeightParameterNotFound;
@@ -57,7 +57,7 @@ public class DtoPropertyModifications implements ObserveDto {
monitor = new BeanMonitor(propertyNames);
}
- protected void watch(IdDto dto) {
+ protected void watch(JavaBean dto) {
modifications.clear();
id = label = lengthWeightParameterNotFound = null;
monitor.setBean(dto);
@@ -80,13 +80,13 @@ public class DtoPropertyModifications implements ObserveDto {
return Optional.of(result);
}
- protected abstract R createResult(String id, String label, Set<DtoPropertyModification> modifications, String lengthWeightParameterNotFound);
+ protected abstract R createResult(String id, String label, Set<JavaBeanPropertyModification> modifications, String lengthWeightParameterNotFound);
public void flushToResult(IdDto dto, String... propertyNamesModified) {
this.id = dto.getId();
this.label = dto.toString();
for (String modifiedProperty : propertyNamesModified) {
- DtoPropertyModification element = new DtoPropertyModification(dto, modifiedProperty);
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(dto, modifiedProperty);
modifications.add(element);
}
}
@@ -99,7 +99,7 @@ public class DtoPropertyModifications implements ObserveDto {
}
}
- public DtoPropertyModifications(String id, String label, Set<DtoPropertyModification> properties, String lengthWeightParameterNotFound) {
+ public DtoPropertyModifications(String id, String label, Set<JavaBeanPropertyModification> properties, String lengthWeightParameterNotFound) {
this.id = id;
this.label = label;
this.properties = properties;
@@ -114,7 +114,7 @@ public class DtoPropertyModifications implements ObserveDto {
return label;
}
- public Set<DtoPropertyModification> getProperties() {
+ public Set<JavaBeanPropertyModification> getProperties() {
return properties;
}
@@ -122,10 +122,7 @@ public class DtoPropertyModifications implements ObserveDto {
return lengthWeightParameterNotFound;
}
- public void flushToDto(JavaBean dto) {
- properties.forEach(modification -> {
- Serializable newValue = modification.getNewValue();
- dto.set(modification.getPropertyName(), newValue);
- });
+ public void flushToBean(JavaBean bean) {
+ properties.forEach(modification -> modification.flushToBean(bean));
}
}
=====================================
toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModification.java → toolkit/api/src/main/java/fr/ird/observe/dto/JavaBeanPropertyModification.java
=====================================
@@ -22,28 +22,35 @@ package fr.ird.observe.dto;
* #L%
*/
+import io.ultreia.java4all.bean.JavaBean;
+import io.ultreia.java4all.util.json.JsonAware;
+
import java.io.Serializable;
import java.util.Objects;
/**
- * Represents a modification on a property of a {@link IdDto}.
+ * To keep a javaBean property modification.
* <p>
- * Created on 30/08/2020.
+ * Created on 15/02/2023.
*
* @author Tony Chemit - dev(a)tchemit.fr
- * @since 8.1.0
+ * @since 9.0.26
*/
-public class DtoPropertyModification implements ObserveDto {
+public class JavaBeanPropertyModification implements JsonAware {
private final String id;
private final String propertyName;
private final Serializable newValue;
- public DtoPropertyModification(IdDto dto, String propertyName) {
+ public JavaBeanPropertyModification(IdDto dto, String propertyName) {
this(Objects.requireNonNull(dto).getId(), propertyName, dto.get(propertyName));
}
- public DtoPropertyModification(String id, String propertyName, Serializable newValue) {
+ public JavaBeanPropertyModification(JavaBean bean, String propertyName) {
+ this(bean.get(ToolkitId.PROPERTY_TOOLKIT_ID), propertyName, bean.get(propertyName));
+ }
+
+ public JavaBeanPropertyModification(String id, String propertyName, Serializable newValue) {
this.id = id;
this.propertyName = propertyName;
this.newValue = newValue;
@@ -61,4 +68,9 @@ public class DtoPropertyModification implements ObserveDto {
return newValue;
}
+ public void flushToBean(JavaBean bean) {
+ Serializable newValue = getNewValue();
+ bean.set(getPropertyName(), newValue);
+ }
}
+
=====================================
toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/DtoPropertyModificationAdapter.java → toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/JavaBeanPropertyModificationAdapter.java
=====================================
@@ -30,7 +30,7 @@ import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
-import fr.ird.observe.dto.DtoPropertyModification;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import io.ultreia.java4all.util.json.JsonAdapter;
import java.io.Serializable;
@@ -43,32 +43,36 @@ import java.lang.reflect.Type;
* @since 8.1.0
*/
@AutoService(JsonAdapter.class)
-public class DtoPropertyModificationAdapter implements JsonDeserializer<DtoPropertyModification>, JsonSerializer<DtoPropertyModification>, JsonAdapter {
+public class JavaBeanPropertyModificationAdapter implements JsonDeserializer<JavaBeanPropertyModification>, JsonSerializer<JavaBeanPropertyModification>, JsonAdapter {
+
+ public static final String ID = "id";
+ public static final String PROPERTY_NAME = "propertyName";
+ public static final String TYPE = "type";
+ public static final String NEW_VALUE = "newValue";
+
@Override
public Class<?> type() {
- return DtoPropertyModification.class;
+ return JavaBeanPropertyModification.class;
}
-
@Override
- public DtoPropertyModification deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
- JsonObject reportVariableJson = json.getAsJsonObject();
-
- String dcpId = context.deserialize(reportVariableJson.get("dcpId"), String.class);
- String propertyName = context.deserialize(reportVariableJson.get("propertyName"), String.class);
- Class<?> type = context.deserialize(reportVariableJson.get("type"), Class.class);
- Serializable newValue1 = context.deserialize(reportVariableJson.get("newValue"), type);
- return new DtoPropertyModification(dcpId, propertyName, newValue1);
+ public JavaBeanPropertyModification deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
+ JsonObject jsonObject = json.getAsJsonObject();
+ String dcpId = context.deserialize(jsonObject.get(ID), String.class);
+ String propertyName = context.deserialize(jsonObject.get(PROPERTY_NAME), String.class);
+ Class<?> type = context.deserialize(jsonObject.get(TYPE), Class.class);
+ Serializable newValue = context.deserialize(jsonObject.get(NEW_VALUE), type);
+ return new JavaBeanPropertyModification(dcpId, propertyName, newValue);
}
@Override
- public JsonElement serialize(DtoPropertyModification src, Type typeOfSrc, JsonSerializationContext context) {
+ public JsonElement serialize(JavaBeanPropertyModification src, Type typeOfSrc, JsonSerializationContext context) {
JsonObject result = new JsonObject();
- result.add("dcpId", context.serialize(src.getId()));
- result.add("propertyName", context.serialize(src.getPropertyName()));
+ result.add(ID, context.serialize(src.getId()));
+ result.add(PROPERTY_NAME, context.serialize(src.getPropertyName()));
Serializable newValue = src.getNewValue();
- result.add("type", context.serialize(newValue == null ? String.class : newValue.getClass()));
- result.add("newValue", context.serialize(newValue));
+ result.add(TYPE, context.serialize(newValue == null ? String.class : newValue.getClass()));
+ result.add(NEW_VALUE, context.serialize(newValue));
return result;
}
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/673cf35ecc523b9fc872f62da…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/673cf35ecc523b9fc872f62da…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Consolidate - Improve API (See #2628)
by Tony CHEMIT (@tchemit) 15 Feb '23
by Tony CHEMIT (@tchemit) 15 Feb '23
15 Feb '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
54f1e72c by Tony Chemit at 2023-02-15T15:05:28+01:00
Consolidate - Improve API (See #2628)
- - - - -
17 changed files:
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/DcpUIModelStates.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/localmarket/TripBatchUIModelStates.java
- core/api/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateEngine.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateResult.java
- − core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectResultConsolidateBuilder.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/localmarket/consolidate/BatchConsolidateResult.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/ActivityConsolidateResult.java
- − core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/CatchModification.java
- − core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/SampleMeasureModification.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateContext.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateResultBuilder.java
- core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
- toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModifications.java
- toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModification.java → toolkit/api/src/main/java/fr/ird/observe/dto/JavaBeanPropertyModification.java
- toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/DtoPropertyModificationAdapter.java → toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/JavaBeanPropertyModificationAdapter.java
Changes:
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/DcpUIModelStates.java
=====================================
@@ -100,8 +100,8 @@ public interface DcpUIModelStates<D extends DataDto & FloatingObjectAware, P ext
default void recomputeComputedValues() {
Optional<FloatingObjectConsolidateResult> result = consolidate(getConsolidateEngine());
result.ifPresent(r -> {
- log.info("Flush " + r.getFloatingObjectModifications().size() + " consolidate dcp changes...");
- r.flushToDto(getBean());
+ log.info("Flush " + r.getModifications().size() + " consolidate dcp changes...");
+ r.flushToBean(getBean());
fireComputedValuesChanged();
});
}
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/localmarket/TripBatchUIModelStates.java
=====================================
@@ -104,7 +104,7 @@ public class TripBatchUIModelStates extends GeneratedTripBatchUIModelStates {
BatchConsolidateResult result = psConsolidateDataService.consolidateLocalmarketBatch(request);
if (result != null) {
log.info("Flush consolidate batch changes...");
- result.flushToDto(getTableEditBean());
+ result.flushToBean(getTableEditBean());
String lengthWeightParameterNotFound = result.getLengthWeightParameterNotFound();
if (lengthWeightParameterNotFound != null) {
log.warn(lengthWeightParameterNotFound);
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java
=====================================
@@ -77,4 +77,7 @@ public interface ProtectedIdsPs {
String PS_LOGBOOK_SAMPLE_DEFAULT_SAMPLE_QUALITY_ID = "fr.ird.referential.ps.logbook.SampleQuality#1464000000000#01";
Set<String> PS_LOGBOOK_CATCH_SPECIES_FATES = Set.of("fr.ird.referential.ps.common.SpeciesFate#1239832683619#0.5722739932065866", "fr.ird.referential.ps.common.SpeciesFate#1501492537510#0.9210847837998154");
String PS_LOCAL_MARKET_SAMPLE_DEFAULT_SAMPLE_TYPE_ID = "fr.ird.referential.ps.common.SampleType#1464000000000#01";
+ String PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_WEIGHING = "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#01";
+ String PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_SINGLE_SPECIES_INDIVIDUAL = "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#02";
+ String PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_PACKAGING_NOT_WEIGHTED = "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#03";
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateEngine.java
=====================================
@@ -28,7 +28,6 @@ import fr.ird.observe.dto.data.ps.FloatingObjectAware;
import fr.ird.observe.dto.data.ps.FloatingObjectPartAware;
import fr.ird.observe.dto.data.ps.dcp.SimplifiedObjectTypeManager;
import fr.ird.observe.dto.data.ps.observation.FloatingObjectDto;
-import fr.ird.observe.dto.data.ps.observation.consolidate.FloatingObjectConsolidateRequest;
import io.ultreia.java4all.bean.monitor.BeanMonitor;
import java.util.Optional;
@@ -47,12 +46,12 @@ public class FloatingObjectConsolidateEngine {
private static class FloatingObjectConsolidateContext {
- final FloatingObjectResultConsolidateBuilder resultBuilder;
- final BeanMonitor dcpMonitor;
+ final FloatingObjectConsolidateResult.Builder resultBuilder;
+ final BeanMonitor monitor;
- FloatingObjectConsolidateContext(FloatingObjectResultConsolidateBuilder resultBuilder) {
- this.resultBuilder = resultBuilder;
- dcpMonitor = new BeanMonitor(
+ FloatingObjectConsolidateContext(FloatingObjectConsolidateResult.Builder builder) {
+ this.resultBuilder = builder;
+ this.monitor = new BeanMonitor(
FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE,
FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING,
FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE,
@@ -62,17 +61,15 @@ public class FloatingObjectConsolidateEngine {
);
}
-
- void watchDcp(DataDto dcp) {
- dcpMonitor.setBean(dcp);
+ void watch(DataDto floatingObject) {
+ monitor.setBean(floatingObject);
}
- void flushDcp() {
- if (dcpMonitor.wasModified()) {
- DataDto dcp = (DataDto) dcpMonitor.getBean();
- resultBuilder.flushDcpModification(dcp, dcpMonitor.getModifiedProperties());
+ void flush() {
+ if (monitor.wasModified()) {
+ resultBuilder.flush(monitor);
}
- dcpMonitor.setBean(null);
+ monitor.setBean(null);
}
}
@@ -80,7 +77,7 @@ public class FloatingObjectConsolidateEngine {
this.simplifiedObjectTypeManager = simplifiedObjectTypeManager;
}
- public Optional<FloatingObjectConsolidateResult> consolidate(FloatingObjectConsolidateRequest request) {
+ public Optional<FloatingObjectConsolidateResult> consolidate(fr.ird.observe.dto.data.ps.observation.consolidate.FloatingObjectConsolidateRequest request) {
return consolidate0(request);
}
@@ -91,36 +88,35 @@ public class FloatingObjectConsolidateEngine {
private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> Optional<FloatingObjectConsolidateResult> consolidate0(FloatingObjectAdapter<F, P> request) {
- FloatingObjectResultConsolidateBuilder builder = new FloatingObjectResultConsolidateBuilder();
+ FloatingObjectConsolidateResult.Builder builder = FloatingObjectConsolidateResult.builder();
FloatingObjectConsolidateContext context = new FloatingObjectConsolidateContext(builder);
- F dcp = request.getFloatingObject();
- context.watchDcp(dcp);
+ F floatingObject = request.getFloatingObject();
+ context.watch(floatingObject);
Set<P> whenArriving = request.getWhenArriving();
Set<P> whenLeaving = request.getWhenLeaving();
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE, request, whenArriving, this::computeDcpSimplifiedObjectType0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_SIMPLIFIED_OBJECT_TYPE, request, whenLeaving, this::computeDcpSimplifiedObjectType0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE, request, whenArriving, this::computeDcpSimplifiedObjectType0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_SIMPLIFIED_OBJECT_TYPE, request, whenLeaving, this::computeDcpSimplifiedObjectType0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING, request, whenArriving, this::computeDcpNonEntangling0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_NON_ENTANGLING, request, whenLeaving, this::computeDcpNonEntangling0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING, request, whenArriving, this::computeDcpNonEntangling0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_NON_ENTANGLING, request, whenLeaving, this::computeDcpNonEntangling0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE, request, whenArriving, this::computeDcpBiodegradable0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_BIODEGRADABLE, request, whenLeaving, this::computeDcpBiodegradable0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE, request, whenArriving, this::computeDcpBiodegradable0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_BIODEGRADABLE, request, whenLeaving, this::computeDcpBiodegradable0);
- context.flushDcp();
+ context.flush();
return builder.build();
-
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> void computeDcpValue(F dcp, String propertyName, FloatingObjectAdapter<F, P> adapter, Set<P> parts, BiFunction<FloatingObjectAdapter<F, P>, Set<P>, Object> valueComputer) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> void computeDcpValue(F dcp, String propertyName, FloatingObjectAdapter<F, P> adapter, Set<P> parts, BiFunction<FloatingObjectAdapter<F, P>, Set<P>, Object> valueComputer) {
Object newValue = valueComputer.apply(adapter, parts);
dcp.set(propertyName, newValue);
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> DcpComputedValue computeDcpBiodegradable0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> DcpComputedValue computeDcpBiodegradable0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
if (parts.isEmpty()) {
return null;
}
@@ -139,7 +135,7 @@ public class FloatingObjectConsolidateEngine {
return result;
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> String computeDcpSimplifiedObjectType0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> String computeDcpSimplifiedObjectType0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
if (parts.isEmpty()) {
return null;
}
@@ -147,7 +143,7 @@ public class FloatingObjectConsolidateEngine {
return simplifiedObjectTypeManager.getStandardCode(objectMaterialIds);
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> DcpComputedValue computeDcpNonEntangling0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> DcpComputedValue computeDcpNonEntangling0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
if (parts.isEmpty()) {
return null;
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateResult.java
=====================================
@@ -23,44 +23,64 @@ package fr.ird.observe.dto.data.ps.dcp.consolidate;
*/
-import fr.ird.observe.dto.DtoPropertyModification;
-import fr.ird.observe.dto.ObserveDto;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import fr.ird.observe.dto.data.DataDto;
+import io.ultreia.java4all.bean.JavaBean;
+import io.ultreia.java4all.bean.monitor.BeanMonitor;
+import io.ultreia.java4all.util.json.JsonAware;
-import java.io.Serializable;
+import java.util.LinkedHashSet;
+import java.util.Optional;
import java.util.Set;
/**
- * Pour retourner le résultat de la consolidation d'une activité de type Seine.
+ * Contains the result of a consolidation operation on a Floating Object..
* <p>
- * Un tel objet est créé uniquement si des modifications on été effectuée sur l'activité.
+ * UA such object is only created if there is some modification on a the floating object.
* <p>
* Created on 28/08/15.
*
* @author Tony Chemit - dev(a)tchemit.fr
*/
-public class FloatingObjectConsolidateResult implements Serializable, ObserveDto {
-
- private static final long serialVersionUID = 1L;
+public class FloatingObjectConsolidateResult implements JsonAware {
/**
* All modifications on floating object.
*/
- private final Set<DtoPropertyModification> floatingObjectModifications;
+ private final Set<JavaBeanPropertyModification> modifications;
- FloatingObjectConsolidateResult(Set<DtoPropertyModification> floatingObjectModifications) {
- this.floatingObjectModifications = floatingObjectModifications;
+ public static Builder builder() {
+ return new Builder();
}
- public Set<DtoPropertyModification> getFloatingObjectModifications() {
- return floatingObjectModifications;
- }
+ public static class Builder {
+
+ private final Set<JavaBeanPropertyModification> modifications = new LinkedHashSet<>();
- public void flushToDto(DataDto dto) {
- for (DtoPropertyModification floatingObjectModification : floatingObjectModifications) {
- Serializable newValue = floatingObjectModification.getNewValue();
- dto.set(floatingObjectModification.getPropertyName(), newValue);
+ public Optional<FloatingObjectConsolidateResult> build() {
+ boolean noModification = modifications.isEmpty();
+ return Optional.ofNullable(noModification ? null : new FloatingObjectConsolidateResult(modifications));
}
+
+ public void flush(BeanMonitor monitor) {
+ DataDto dcp = (DataDto) monitor.getBean();
+ for (String modifiedProperty : monitor.getModifiedProperties()) {
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(dcp, modifiedProperty);
+ modifications.add(element);
+ }
+ }
+ }
+
+ FloatingObjectConsolidateResult(Set<JavaBeanPropertyModification> modifications) {
+ this.modifications = modifications;
+ }
+
+ public Set<JavaBeanPropertyModification> getModifications() {
+ return modifications;
+ }
+
+ public void flushToBean(JavaBean dto) {
+ modifications.forEach(modification -> modification.flushToBean(dto));
}
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectResultConsolidateBuilder.java deleted
=====================================
@@ -1,52 +0,0 @@
-package fr.ird.observe.dto.data.ps.dcp.consolidate;
-
-/*-
- * #%L
- * ObServe Core :: API :: Dto
- * %%
- * Copyright (C) 2008 - 2023 IRD, Ultreia.io
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-
-import fr.ird.observe.dto.DtoPropertyModification;
-import fr.ird.observe.dto.data.DataDto;
-
-import java.util.LinkedHashSet;
-import java.util.Optional;
-import java.util.Set;
-
-/**
- * @author Tony Chemit - dev(a)tchemit.fr
- * @since 7.0
- */
-public class FloatingObjectResultConsolidateBuilder {
-
- private final Set<DtoPropertyModification> modifications = new LinkedHashSet<>();
-
- public Optional<FloatingObjectConsolidateResult> build() {
- boolean noModification = modifications.isEmpty();
- return Optional.ofNullable(noModification ? null : new FloatingObjectConsolidateResult(modifications));
- }
-
- void flushDcpModification(DataDto dcp, String... propertyNamesModified) {
- for (String modifiedProperty : propertyNamesModified) {
- DtoPropertyModification element = new DtoPropertyModification(dcp, modifiedProperty);
- modifications.add(element);
- }
- }
-}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/localmarket/consolidate/BatchConsolidateResult.java
=====================================
@@ -22,8 +22,9 @@ package fr.ird.observe.dto.data.ps.localmarket.consolidate;
* #L%
*/
-import fr.ird.observe.dto.DtoPropertyModification;
import fr.ird.observe.dto.DtoPropertyModifications;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
+import fr.ird.observe.dto.ProtectedIdsPs;
import fr.ird.observe.dto.data.ps.localmarket.BatchDto;
import fr.ird.observe.dto.data.ps.localmarket.BatchWeightComputedValueSource;
import fr.ird.observe.dto.referential.common.SpeciesReference;
@@ -65,7 +66,7 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
}
@Override
- protected BatchConsolidateResult createResult(String id, String label, Set<DtoPropertyModification> modifications, String lengthWeightParameterNotFound) {
+ protected BatchConsolidateResult createResult(String id, String label, Set<JavaBeanPropertyModification> modifications, String lengthWeightParameterNotFound) {
return new BatchConsolidateResult(id, label, modifications, lengthWeightParameterNotFound);
}
@@ -83,12 +84,12 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
BatchWeightTypeReference batchWeightType = dto.getPackaging().getBatchWeightType();
Integer count = dto.getCount();
switch (batchWeightType.getId()) {
- case "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#01":
+ case ProtectedIdsPs.PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_WEIGHING:
// pesée poids direct
// P = batch.weight
// donc rien à faire
break;
- case "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#02":
+ case ProtectedIdsPs.PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_SINGLE_SPECIES_INDIVIDUAL:
// espèce unité
// P = poids moyen de l'espèce * batch.count / 1000
// ocean = océan de débarquement de la marée = ps_common.trip.ocean
@@ -113,7 +114,7 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
});
}
break;
- case "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#03":
+ case ProtectedIdsPs.PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_PACKAGING_NOT_WEIGHTED:
// Paquet/Conditionnement non pesé
// P = batch.packaging.meanWeight * batch.count (ou null si pas de packaging.meanWeight)
if (count != null) {
@@ -132,7 +133,7 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
return new BatchConsolidateResultBuilder(rtpMeanWeightFinder);
}
- BatchConsolidateResult(String batchId, String batchLabel, Set<DtoPropertyModification> modifications, String lengthWeightParameterNotFound) {
+ BatchConsolidateResult(String batchId, String batchLabel, Set<JavaBeanPropertyModification> modifications, String lengthWeightParameterNotFound) {
super(batchId, batchLabel, modifications, lengthWeightParameterNotFound);
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/ActivityConsolidateResult.java
=====================================
@@ -23,7 +23,7 @@ package fr.ird.observe.dto.data.ps.observation.consolidate;
*/
-import fr.ird.observe.dto.DtoPropertyModification;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import fr.ird.observe.dto.ObserveDto;
import java.io.Serializable;
@@ -63,17 +63,17 @@ public class ActivityConsolidateResult implements Serializable, ObserveDto {
private String newSchoolType;
/**
- * L'ensemble des modifications sur les échantillons.
+ * All modification on samples.
*/
- private Set<SampleMeasureModification> sampleMeasureModifications;
+ private Set<JavaBeanPropertyModification> sampleMeasureModifications;
/**
- * L'ensemble des modifications sur les captures non cibles.
+ * All modification on catches.
*/
- private Set<CatchModification> catchModifications;
+ private Set<JavaBeanPropertyModification> catchModifications;
/**
- * L'ensemble des modifications sur les objets flottants.
+ * All modification on floating objects.
*/
- private Set<DtoPropertyModification> floatingObjectModifications;
+ private Set<JavaBeanPropertyModification> floatingObjectModifications;
private Set<String> lengthWeightParameterNotFound ;
private Set<String> lengthLengthParameterNotFound;
@@ -94,27 +94,27 @@ public class ActivityConsolidateResult implements Serializable, ObserveDto {
this.activityLabel = activityLabel;
}
- public Set<SampleMeasureModification> getSampleMeasureModifications() {
+ public Set<JavaBeanPropertyModification> getSampleMeasureModifications() {
return sampleMeasureModifications;
}
- public void setSampleMeasureModifications(Set<SampleMeasureModification> sampleMeasureModifications) {
+ public void setSampleMeasureModifications(Set<JavaBeanPropertyModification> sampleMeasureModifications) {
this.sampleMeasureModifications = sampleMeasureModifications;
}
- public Set<CatchModification> getCatchModifications() {
+ public Set<JavaBeanPropertyModification> getCatchModifications() {
return catchModifications;
}
- public void setCatchModifications(Set<CatchModification> catchModifications) {
+ public void setCatchModifications(Set<JavaBeanPropertyModification> catchModifications) {
this.catchModifications = catchModifications;
}
- public Set<DtoPropertyModification> getFloatingObjectModifications() {
+ public Set<JavaBeanPropertyModification> getFloatingObjectModifications() {
return floatingObjectModifications;
}
- public void setFloatingObjectModifications(Set<DtoPropertyModification> floatingObjectModifications) {
+ public void setFloatingObjectModifications(Set<JavaBeanPropertyModification> floatingObjectModifications) {
this.floatingObjectModifications = floatingObjectModifications;
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/CatchModification.java deleted
=====================================
@@ -1,71 +0,0 @@
-package fr.ird.observe.dto.data.ps.observation.consolidate;
-
-/*-
- * #%L
- * ObServe Core :: API :: Dto
- * %%
- * Copyright (C) 2008 - 2023 IRD, Ultreia.io
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import java.io.Serializable;
-
-/**
- * Created by tchemit on 04/08/17.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- */
-public class CatchModification implements Serializable {
-
- private static final long serialVersionUID = 1L;
- protected String speciesLabel;
- protected String propertyName;
- protected Number newValue;
- String catchId;
-
- public String getCatchCatchId() {
- return catchId;
- }
-
- public String getSpeciesLabel() {
- return speciesLabel;
- }
-
- public String getPropertyName() {
- return propertyName;
- }
-
- public Number getNewValue() {
- return newValue;
- }
-
- public void setCatchId(String catchId) {
- this.catchId = catchId;
- }
-
- public void setSpeciesLabel(String speciesLabel) {
- this.speciesLabel = speciesLabel;
- }
-
- public void setPropertyName(String propertyName) {
- this.propertyName = propertyName;
- }
-
- public void setNewValue(Number newValue) {
- this.newValue = newValue;
- }
-}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/SampleMeasureModification.java deleted
=====================================
@@ -1,71 +0,0 @@
-package fr.ird.observe.dto.data.ps.observation.consolidate;
-
-/*-
- * #%L
- * ObServe Core :: API :: Dto
- * %%
- * Copyright (C) 2008 - 2023 IRD, Ultreia.io
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import java.io.Serializable;
-
-/**
- * Created by tchemit on 04/08/17.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- */
-public class SampleMeasureModification implements Serializable {
-
- private static final long serialVersionUID = 1L;
- protected String speciesLabel;
- protected String propertyName;
- protected Float newValue;
- private String id;
-
- public String getId() {
- return id;
- }
-
- public String getSpeciesLabel() {
- return speciesLabel;
- }
-
- public String getPropertyName() {
- return propertyName;
- }
-
- public Float getNewValue() {
- return newValue;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public void setSpeciesLabel(String speciesLabel) {
- this.speciesLabel = speciesLabel;
- }
-
- public void setPropertyName(String propertyName) {
- this.propertyName = propertyName;
- }
-
- public void setNewValue(Float newValue) {
- this.newValue = newValue;
- }
-}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java
=====================================
@@ -162,7 +162,7 @@ public class TripConsolidateEngine {
// add to result
localmarketBatchResults.add(r);
// flush back to entity
- r.flushToDto(batch);
+ r.flushToBean(batch);
});
}
@@ -193,11 +193,11 @@ public class TripConsolidateEngine {
activityContext.daoSupplier = (ObserveTopiaDaoSupplier) persistenceContext;
activityContext.resultBuilder = resultBuilder;
activityContext.trip = trip;
- activityContext.routeObs = route;
- activityContext.activityObs = activity;
- activityContext.sampleMeasureObsMonitor = sampleMeasureMonitor;
- activityContext.sampleObsMonitor = sampleMonitor;
- activityContext.catchObsMonitor = catchMonitor;
+ activityContext.route = route;
+ activityContext.activity = activity;
+ activityContext.sampleMeasureMonitor = sampleMeasureMonitor;
+ activityContext.sampleMonitor = sampleMonitor;
+ activityContext.catchMonitor = catchMonitor;
activityContext.floatingObjectConsolidateEngine = floatingObjectConsolidateEngine;
activityContext.activityPrefix = activityPrefix;
try {
@@ -228,11 +228,11 @@ public class TripConsolidateEngine {
}
private void consolidateActivity(ActivityConsolidateContext activityContext) {
- Activity activity = activityContext.activityObs;
+ Activity activity = activityContext.activity;
log.debug(String.format("%s Start consolidate activity: %s", activityContext.activityPrefix, activity.getTopiaId()));
if (activity.isFloatingObjectNotEmpty()) {
- for (FloatingObject dcp : activity.getFloatingObject()) {
- updateDcp(dcp, activityContext);
+ for (FloatingObject floatingObject : activity.getFloatingObject()) {
+ updateFloatingObject(floatingObject, activityContext);
}
}
Set set = activity.getSet();
@@ -249,22 +249,17 @@ public class TripConsolidateEngine {
activityContext.setSchoolTypeChanged(oldSchoolType == null ? null : oldSchoolType.getTopiaId(), newSchoolTypeId);
}
if (set.isSampleNotEmpty()) {
- // des échantillons trouves
for (Sample sample : set.getSample()) {
if (sample.isSampleMeasureNotEmpty()) {
for (SampleMeasure sampleMeasure : sample.getSampleMeasure()) {
activityContext.watchSampleMeasure(sampleMeasure);
- updateLengthWeightAble(activityContext,
- sampleMeasure.getSpecies(),
- /* pas de sexe precise */
- sampleMeasure);
+ updateLengthWeightAble(activityContext, sampleMeasure.getSpecies(), sampleMeasure);
activityContext.flushSampleMeasure();
}
}
}
}
if (set.isCatchesNotEmpty()) {
- // des captures trouves
for (Catch aCatch : set.getCatches()) {
activityContext.watchCatch(aCatch);
updateCatch(activityContext, aCatch);
@@ -274,11 +269,11 @@ public class TripConsolidateEngine {
}
}
- private void updateDcp(FloatingObject dcp, ActivityConsolidateContext activityContext) {
+ private void updateFloatingObject(FloatingObject floatingObject, ActivityConsolidateContext activityContext) {
- if (dcp.getObjectOperation() == null) {
+ if (floatingObject.getObjectOperation() == null) {
log.warn("**********************");
- log.warn(String.format("Floating object %s has no object operation....", dcp.getTopiaId()));
+ log.warn(String.format("Floating object %s has no object operation....", floatingObject.getTopiaId()));
log.warn("**********************");
return;
}
@@ -286,22 +281,27 @@ public class TripConsolidateEngine {
ReferentialLocale referentialLocale = context.getReferentialLocale();
- FloatingObjectDto floatingObjectDto = FloatingObject.toDto(referentialLocale, dcp);
+ FloatingObjectDto floatingObjectDto = FloatingObject.toDto(referentialLocale, floatingObject);
- java.util.Set<FloatingObjectPartDto> floatingObjectPartSet = new LinkedHashSet<>(FloatingObjectPart.SPI.toDataDtoList(referentialLocale, dcp.getFloatingObjectPart()));
+ java.util.Set<FloatingObjectPartDto> floatingObjectPartSet = new LinkedHashSet<>(FloatingObjectPart.SPI.toDataDtoList(referentialLocale, floatingObject.getFloatingObjectPart()));
FloatingObjectConsolidateRequest request = new FloatingObjectConsolidateRequest(floatingObjectDto, floatingObjectPartSet);
Optional<FloatingObjectConsolidateResult> result = floatingObjectConsolidateEngine.consolidate(request);
- result.ifPresent(r -> activityContext.flushDcp(dcp, r));
+ result.ifPresent(r -> {
+ // flush to main result
+ activityContext.flushFloatingObject(r);
+ // flush back modifications detected to entity
+ r.flushToBean(floatingObject);
+ });
if (request.isNeedClean()) {
log.warn("**********************");
- log.warn(String.format("Floating object %s has some bad parts, this will be fixed here....", dcp.getTopiaId()));
+ log.warn(String.format("Floating object %s has some bad parts, this will be fixed here....", floatingObject.getTopiaId()));
log.warn("**********************");
// Need to clean dcp parts
- boolean notWhenArriving = !dcp.getObjectOperation().isWhenArriving();
- boolean notWhenLeaving = !dcp.getObjectOperation().isWhenLeaving();
- for (FloatingObjectPart floatingObjectPart : dcp.getFloatingObjectPart()) {
+ boolean notWhenArriving = !floatingObject.getObjectOperation().isWhenArriving();
+ boolean notWhenLeaving = !floatingObject.getObjectOperation().isWhenLeaving();
+ for (FloatingObjectPart floatingObjectPart : floatingObject.getFloatingObjectPart()) {
if (floatingObjectPart.getWhenArriving() != null && notWhenArriving) {
log.info(String.format("Set whenArriving to null for part: %s", floatingObjectPart.getTopiaId()));
floatingObjectPart.setWhenArriving(null);
@@ -333,7 +333,7 @@ public class TripConsolidateEngine {
// récupération des échantillon de cette espèce sur les calée
// on recherche sur le couple species/speciesFate (ou sur le couple species/null)
- Collection<SampleMeasure> sampleMeasures = getSampleMeasures(activityContext.getSetObs(), species, aCatch.getSpeciesFate());
+ Collection<SampleMeasure> sampleMeasures = getSampleMeasures(activityContext.getSet(), species, aCatch.getSpeciesFate());
if (aCatch.getCatchWeight() != null || aCatch.getTotalCount() != null) {
// -- Cas n°2 (pas de taille / poids moyen mais au moins un des deux taille / poids)
@@ -448,11 +448,11 @@ public class TripConsolidateEngine {
private void computeCatchMeanValues(Catch aCatch, LengthWeightParameter lengthWeightParameter) {
if (lengthWeightParameter != null) {
- if (aCatch.getMeanLength() == null) {
+ if (aCatch.getMeanLength() == null && lengthWeightParameter.getMeanLength() != null) {
aCatch.setMeanLength(lengthWeightParameter.getMeanLength());
aCatch.setMeanLengthComputedSource(CatchComputedValueSource.fromReferentiel);
}
- if (aCatch.getMeanWeight() == null) {
+ if (aCatch.getMeanWeight() == null && lengthWeightParameter.getMeanWeight() != null) {
aCatch.setMeanWeight(lengthWeightParameter.getMeanWeight());
aCatch.setMeanWeightComputedSource(CatchComputedValueSource.fromReferentiel);
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateContext.java
=====================================
@@ -23,11 +23,8 @@ package fr.ird.observe.entities.data.ps.observation;
*/
import fr.ird.observe.decoration.DecoratorService;
-import fr.ird.observe.dto.DtoPropertyModification;
-import fr.ird.observe.dto.data.ps.DcpComputedValue;
import fr.ird.observe.dto.data.ps.dcp.consolidate.FloatingObjectConsolidateEngine;
import fr.ird.observe.dto.data.ps.dcp.consolidate.FloatingObjectConsolidateResult;
-import fr.ird.observe.dto.data.ps.observation.FloatingObjectDto;
import fr.ird.observe.entities.ObserveTopiaDaoSupplier;
import fr.ird.observe.entities.data.ps.common.Trip;
import fr.ird.observe.entities.referential.LengthLengthParameterNotFoundException;
@@ -55,8 +52,8 @@ public class ActivityConsolidateContext {
public Locale locale;
public Trip trip;
- public fr.ird.observe.entities.data.ps.observation.Route routeObs;
- public fr.ird.observe.entities.data.ps.observation.Activity activityObs;
+ public fr.ird.observe.entities.data.ps.observation.Route route;
+ public fr.ird.observe.entities.data.ps.observation.Activity activity;
public ObserveTopiaDaoSupplier daoSupplier;
public boolean failIfLengthWeightParameterNotFound;
public boolean failIfLengthLengthParameterNotFound;
@@ -64,25 +61,25 @@ public class ActivityConsolidateContext {
public String activityPrefix;
public ActivityConsolidateResultBuilder resultBuilder;
public FloatingObjectConsolidateEngine floatingObjectConsolidateEngine;
- public BeanMonitor sampleObsMonitor;
- public BeanMonitor sampleMeasureObsMonitor;
- public BeanMonitor catchObsMonitor;
+ public BeanMonitor sampleMonitor;
+ public BeanMonitor sampleMeasureMonitor;
+ public BeanMonitor catchMonitor;
public Ocean getOcean() {
return trip.getOcean();
}
- public Date getRouteObsDate() {
- return routeObs.getDate();
+ public Date getRouteDate() {
+ return route.getDate();
}
- public fr.ird.observe.entities.data.ps.observation.Set getSetObs() {
- return activityObs.getSet();
+ public fr.ird.observe.entities.data.ps.observation.Set getSet() {
+ return activity.getSet();
}
public Optional<LengthWeightParameter> findLengthWeightParameter(Species species, Sex sex, SizeMeasureType sizeMeasureType) {
Ocean ocean = getOcean();
- Date routeDate = getRouteObsDate();
+ Date routeDate = getRouteDate();
try {
return Optional.ofNullable(LengthWeightParameters.findLengthWeightParameter(decoratorService, daoSupplier, species, sex, ocean, routeDate, sizeMeasureType));
} catch (LengthWeightParameterNotFoundException e) {
@@ -96,7 +93,7 @@ public class ActivityConsolidateContext {
public Optional<LengthLengthParameter> findLengthLengthParameter(Species species, Sex sex, SizeMeasureType inputSizeMeasureType, SizeMeasureType outputSizeMeasureType) {
Ocean ocean = getOcean();
- Date routeDate = getRouteObsDate();
+ Date routeDate = getRouteDate();
try {
return LengthLengthParameters.findLengthLengthParameter(decoratorService, daoSupplier, species, ocean, sex, routeDate, inputSizeMeasureType, outputSizeMeasureType);
} catch (LengthLengthParameterNotFoundException e) {
@@ -113,14 +110,12 @@ public class ActivityConsolidateContext {
}
public void watchSampleMeasure(SampleMeasure sampleMeasure) {
- sampleMeasureObsMonitor.setBean(sampleMeasure);
+ sampleMeasureMonitor.setBean(sampleMeasure);
if (sampleMeasure.isIsLengthComputed()) {
- // Reset de la valeur calculée
sampleMeasure.setLength(null);
sampleMeasure.setIsLengthComputed(false);
}
if (sampleMeasure.isIsWeightComputed()) {
- // Reset de la valeur calculée
sampleMeasure.setWeight(null);
sampleMeasure.setIsWeightComputed(false);
}
@@ -128,15 +123,15 @@ public class ActivityConsolidateContext {
public void flushSampleMeasure() {
- if (sampleMeasureObsMonitor.wasModified()) {
- SampleMeasure sampleMeasure = (SampleMeasure) sampleMeasureObsMonitor.getBean();
- resultBuilder.flushSampleMeasureModification(sampleMeasure, sampleMeasureObsMonitor.getModifiedProperties());
+ if (sampleMeasureMonitor.wasModified()) {
+ SampleMeasure sampleMeasure = (SampleMeasure) sampleMeasureMonitor.getBean();
+ resultBuilder.flushSampleMeasureModification(sampleMeasure, sampleMeasureMonitor.getModifiedProperties());
}
- sampleMeasureObsMonitor.setBean(null);
+ sampleMeasureMonitor.setBean(null);
}
public void watchCatch(Catch aCatch) {
- catchObsMonitor.setBean(aCatch);
+ catchMonitor.setBean(aCatch);
if (aCatch.isCatchWeightComputed()) {
aCatch.setCatchWeight(null);
aCatch.setCatchWeightComputedSource(null);
@@ -156,50 +151,15 @@ public class ActivityConsolidateContext {
}
public void flushCatch() {
- if (catchObsMonitor.wasModified()) {
- Catch aCatch = (Catch) catchObsMonitor.getBean();
- resultBuilder.flushCatchModification(aCatch, catchObsMonitor.getModifiedProperties());
+ if (catchMonitor.wasModified()) {
+ Catch aCatch = (Catch) catchMonitor.getBean();
+ resultBuilder.flushCatchModification(aCatch, catchMonitor.getModifiedProperties());
}
- catchObsMonitor.setBean(null);
+ catchMonitor.setBean(null);
}
- public void flushDcp(FloatingObject dcp, FloatingObjectConsolidateResult floatingObjectConsolidateResult) {
- resultBuilder.flushDcpModification(floatingObjectConsolidateResult);
- for (DtoPropertyModification floatingObjectModification : floatingObjectConsolidateResult.getFloatingObjectModifications()) {
- String modifiedProperty = floatingObjectModification.getPropertyName();
- switch (modifiedProperty) {
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE: {
-
- dcp.setComputedWhenArrivingBiodegradable((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING: {
-
- dcp.setComputedWhenArrivingNonEntangling((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE: {
-
- dcp.setComputedWhenArrivingSimplifiedObjectType((String) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_BIODEGRADABLE: {
-
- dcp.setComputedWhenLeavingBiodegradable((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_NON_ENTANGLING: {
-
- dcp.setComputedWhenLeavingNonEntangling((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_SIMPLIFIED_OBJECT_TYPE: {
-
- dcp.setComputedWhenLeavingSimplifiedObjectType((String) floatingObjectModification.getNewValue());
- break;
- }
- }
- }
+ public void flushFloatingObject(FloatingObjectConsolidateResult floatingObjectConsolidateResult) {
+ resultBuilder.flushFloatingObjectModification(floatingObjectConsolidateResult);
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateResultBuilder.java
=====================================
@@ -22,11 +22,9 @@ package fr.ird.observe.entities.data.ps.observation;
* #L%
*/
-import fr.ird.observe.dto.DtoPropertyModification;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import fr.ird.observe.dto.data.ps.dcp.consolidate.FloatingObjectConsolidateResult;
-import fr.ird.observe.dto.data.ps.observation.consolidate.CatchModification;
import fr.ird.observe.dto.data.ps.observation.consolidate.ActivityConsolidateResult;
-import fr.ird.observe.dto.data.ps.observation.consolidate.SampleMeasureModification;
import fr.ird.observe.dto.referential.I18nReferentialHelper;
import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.referential.common.Ocean;
@@ -58,49 +56,46 @@ public class ActivityConsolidateResultBuilder {
private final ReferentialLocale referenceLocale;
private final Set<String> lengthWeightParameterNotFoundBuilder = new LinkedHashSet<>();
private final Set<String> lengthLengthParameterNotFoundBuilder = new LinkedHashSet<>();
- private final Set<SampleMeasureModification> sampleMeasureObsModificationBuilder = new LinkedHashSet<>();
- private final Set<CatchModification> catchObsModificationBuilder = new LinkedHashSet<>();
- private final Set<DtoPropertyModification> dcpModificationBuilder = new LinkedHashSet<>();
- private final String activitySeineLabel;
- private final String activitySeineId;
+ private final Set<JavaBeanPropertyModification> sampleMeasureModificationBuilder = new LinkedHashSet<>();
+ private final Set<JavaBeanPropertyModification> catchModificationBuilder = new LinkedHashSet<>();
+ private final Set<JavaBeanPropertyModification> floatingObjectModificationBuilder = new LinkedHashSet<>();
+ private final String activityLabel;
+ private final String activityId;
private String oldSchoolType;
private String newSchoolType;
- public ActivityConsolidateResultBuilder(Locale locale, ReferentialLocale referenceLocale, String activitySeineId, String activitySeineLabel) {
+ public ActivityConsolidateResultBuilder(Locale locale, ReferentialLocale referenceLocale, String activityId, String activityLabel) {
this.locale = locale;
this.referenceLocale = referenceLocale;
- this.activitySeineId = activitySeineId;
- this.activitySeineLabel = activitySeineLabel;
+ this.activityId = activityId;
+ this.activityLabel = activityLabel;
}
public Optional<ActivityConsolidateResult> build() {
- Set<SampleMeasureModification> sampleMeasureObsModifications = sampleMeasureObsModificationBuilder;
- Set<CatchModification> catchObsModifications = catchObsModificationBuilder;
- Set<DtoPropertyModification> floatingObjectModifications = dcpModificationBuilder;
+ Set<JavaBeanPropertyModification> sampleMeasureModifications = sampleMeasureModificationBuilder;
+ Set<JavaBeanPropertyModification> catchModifications = catchModificationBuilder;
+ Set<JavaBeanPropertyModification> floatingObjectModifications = floatingObjectModificationBuilder;
- boolean noModification = (sampleMeasureObsModifications.isEmpty()
- && catchObsModifications.isEmpty()
+ boolean noModification = sampleMeasureModifications.isEmpty()
+ && catchModifications.isEmpty()
&& floatingObjectModifications.isEmpty()
- && newSchoolType == null);
+ && newSchoolType == null;
- ActivityConsolidateResult consolidateActivitySeineObsDataResult;
if (noModification) {
- consolidateActivitySeineObsDataResult = null;
- } else {
- consolidateActivitySeineObsDataResult = new ActivityConsolidateResult();
- consolidateActivitySeineObsDataResult.setActivityId(activitySeineId);
- consolidateActivitySeineObsDataResult.setActivityLabel(activitySeineLabel);
- if (newSchoolType != null) {
- consolidateActivitySeineObsDataResult.setSchoolTypeChanged(oldSchoolType, newSchoolType);
- }
- consolidateActivitySeineObsDataResult.setSampleMeasureModifications(sampleMeasureObsModifications);
- consolidateActivitySeineObsDataResult.setCatchModifications(catchObsModifications);
- consolidateActivitySeineObsDataResult.setFloatingObjectModifications(floatingObjectModifications);
- consolidateActivitySeineObsDataResult.setFloatingObjectModifications(floatingObjectModifications);
- consolidateActivitySeineObsDataResult.setLengthLengthParameterNotFound(getLengthLengthParameterNotFoundBuilder());
- consolidateActivitySeineObsDataResult.setLengthWeightParameterNotFound(getLengthWeightParameterNotFoundBuilder());
+ return Optional.empty();
+ }
+ ActivityConsolidateResult result = new ActivityConsolidateResult();
+ result.setActivityId(activityId);
+ result.setActivityLabel(activityLabel);
+ if (newSchoolType != null) {
+ result.setSchoolTypeChanged(oldSchoolType, newSchoolType);
}
- return Optional.ofNullable(consolidateActivitySeineObsDataResult);
+ result.setSampleMeasureModifications(sampleMeasureModifications);
+ result.setCatchModifications(catchModifications);
+ result.setFloatingObjectModifications(floatingObjectModifications);
+ result.setLengthLengthParameterNotFound(getLengthLengthParameterNotFoundBuilder());
+ result.setLengthWeightParameterNotFound(getLengthWeightParameterNotFoundBuilder());
+ return Optional.of(result);
}
public Set<String> getLengthWeightParameterNotFoundBuilder() {
@@ -111,90 +106,22 @@ public class ActivityConsolidateResultBuilder {
return lengthLengthParameterNotFoundBuilder;
}
- void flushDcpModification(FloatingObjectConsolidateResult result) {
- dcpModificationBuilder.addAll(result.getFloatingObjectModifications());
+ void flushFloatingObjectModification(FloatingObjectConsolidateResult result) {
+ floatingObjectModificationBuilder.addAll(result.getModifications());
}
- void flushSampleMeasureModification(SampleMeasure targetLength, String... propertyNamesModified) {
-
- Species species = targetLength.getSpecies();
- String speciesLabel = decorate(species);
+ void flushSampleMeasureModification(SampleMeasure sampleMeasure, String... propertyNamesModified) {
for (String modifiedProperty : propertyNamesModified) {
- if (modifiedProperty.equals(SampleMeasure.PROPERTY_LENGTH)) {
- SampleMeasureModification element = new SampleMeasureModification();
- element.setId(targetLength.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(SampleMeasure.PROPERTY_LENGTH);
- element.setNewValue(targetLength.getLength());
- sampleMeasureObsModificationBuilder.add(element);
- } else if (modifiedProperty.equals(SampleMeasure.PROPERTY_WEIGHT)) {
- SampleMeasureModification element = new SampleMeasureModification();
- element.setId(targetLength.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(SampleMeasure.PROPERTY_LENGTH);
- element.setNewValue(targetLength.getLength());
- sampleMeasureObsModificationBuilder.add(element);
- }
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(sampleMeasure, modifiedProperty);
+ sampleMeasureModificationBuilder.add(element);
}
}
void flushCatchModification(Catch aCatch, String... propertyNamesModified) {
-
- Species species = aCatch.getSpecies();
- String speciesLabel = decorate(species);
for (String modifiedProperty : propertyNamesModified) {
- switch (modifiedProperty) {
- case Catch.PROPERTY_MEAN_LENGTH: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_MEAN_LENGTH);
- element.setNewValue(aCatch.getMeanLength());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getMeanLengthComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- case Catch.PROPERTY_MEAN_WEIGHT: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_MEAN_WEIGHT);
- element.setNewValue(aCatch.getMeanWeight());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getMeanWeightComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- case Catch.PROPERTY_CATCH_WEIGHT: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_CATCH_WEIGHT);
- element.setNewValue(aCatch.getCatchWeight());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getCatchWeightComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- case Catch.PROPERTY_TOTAL_COUNT: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_TOTAL_COUNT);
- element.setNewValue(aCatch.getTotalCount());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getTotalCountComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- }
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(aCatch, modifiedProperty);
+ catchModificationBuilder.add(element);
}
-
}
ActivityConsolidateResultBuilder registerLengthWeightParameterNotFound(Species species, Ocean ocean, Sex sex, Date routeDate) {
@@ -228,6 +155,7 @@ public class ActivityConsolidateResultBuilder {
this.newSchoolType = newSchoolType;
return this;
}
+
//FIXME use decorator
private String decorate(Species species) {
StringBuilder builder = new StringBuilder();
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
=====================================
@@ -68,8 +68,8 @@ public class ConsolidateDataServiceFixtures extends GeneratedConsolidateDataServ
Optional<FloatingObjectConsolidateResult> optionalResult = engine.consolidate(request);
Assert.assertTrue(optionalResult.isPresent());
FloatingObjectConsolidateResult result = optionalResult.get();
- Assert.assertNotNull(result.getFloatingObjectModifications());
- Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectLogbook.count"), result.getFloatingObjectModifications().size());
+ Assert.assertNotNull(result.getModifications());
+ Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectLogbook.count"), result.getModifications().size());
}
{
String id = getProperty("consolidateFloatingObjectObservation.id");
@@ -84,8 +84,8 @@ public class ConsolidateDataServiceFixtures extends GeneratedConsolidateDataServ
Optional<FloatingObjectConsolidateResult> optionalResult = engine.consolidate(request);
Assert.assertTrue(optionalResult.isPresent());
FloatingObjectConsolidateResult result = optionalResult.get();
- Assert.assertNotNull(result.getFloatingObjectModifications());
- Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectObservation.count"), result.getFloatingObjectModifications().size());
+ Assert.assertNotNull(result.getModifications());
+ Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectObservation.count"), result.getModifications().size());
}
}
=====================================
toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModifications.java
=====================================
@@ -24,10 +24,10 @@ package fr.ird.observe.dto;
import io.ultreia.java4all.bean.JavaBean;
import io.ultreia.java4all.bean.monitor.BeanMonitor;
+import io.ultreia.java4all.util.json.JsonAware;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import java.io.Serializable;
import java.util.LinkedHashSet;
import java.util.Optional;
import java.util.Set;
@@ -38,17 +38,17 @@ import java.util.Set;
* @author Tony Chemit - dev(a)tchemit.fr
* @since 9.0.0
*/
-public class DtoPropertyModifications implements ObserveDto {
+public class DtoPropertyModifications implements JsonAware {
private static final Logger log = LogManager.getLogger(DtoPropertyModifications.class);
private final String id;
private final String label;
- private final Set<DtoPropertyModification> properties;
+ private final Set<JavaBeanPropertyModification> properties;
private final String lengthWeightParameterNotFound;
public static abstract class Builder<R extends DtoPropertyModifications> {
private final BeanMonitor monitor;
- private final Set<DtoPropertyModification> modifications = new LinkedHashSet<>();
+ private final Set<JavaBeanPropertyModification> modifications = new LinkedHashSet<>();
private String id;
private String label;
private String lengthWeightParameterNotFound;
@@ -57,7 +57,7 @@ public class DtoPropertyModifications implements ObserveDto {
monitor = new BeanMonitor(propertyNames);
}
- protected void watch(IdDto dto) {
+ protected void watch(JavaBean dto) {
modifications.clear();
id = label = lengthWeightParameterNotFound = null;
monitor.setBean(dto);
@@ -80,13 +80,13 @@ public class DtoPropertyModifications implements ObserveDto {
return Optional.of(result);
}
- protected abstract R createResult(String id, String label, Set<DtoPropertyModification> modifications, String lengthWeightParameterNotFound);
+ protected abstract R createResult(String id, String label, Set<JavaBeanPropertyModification> modifications, String lengthWeightParameterNotFound);
public void flushToResult(IdDto dto, String... propertyNamesModified) {
this.id = dto.getId();
this.label = dto.toString();
for (String modifiedProperty : propertyNamesModified) {
- DtoPropertyModification element = new DtoPropertyModification(dto, modifiedProperty);
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(dto, modifiedProperty);
modifications.add(element);
}
}
@@ -99,7 +99,7 @@ public class DtoPropertyModifications implements ObserveDto {
}
}
- public DtoPropertyModifications(String id, String label, Set<DtoPropertyModification> properties, String lengthWeightParameterNotFound) {
+ public DtoPropertyModifications(String id, String label, Set<JavaBeanPropertyModification> properties, String lengthWeightParameterNotFound) {
this.id = id;
this.label = label;
this.properties = properties;
@@ -114,7 +114,7 @@ public class DtoPropertyModifications implements ObserveDto {
return label;
}
- public Set<DtoPropertyModification> getProperties() {
+ public Set<JavaBeanPropertyModification> getProperties() {
return properties;
}
@@ -122,10 +122,7 @@ public class DtoPropertyModifications implements ObserveDto {
return lengthWeightParameterNotFound;
}
- public void flushToDto(JavaBean dto) {
- properties.forEach(modification -> {
- Serializable newValue = modification.getNewValue();
- dto.set(modification.getPropertyName(), newValue);
- });
+ public void flushToBean(JavaBean bean) {
+ properties.forEach(modification -> modification.flushToBean(bean));
}
}
=====================================
toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModification.java → toolkit/api/src/main/java/fr/ird/observe/dto/JavaBeanPropertyModification.java
=====================================
@@ -22,28 +22,35 @@ package fr.ird.observe.dto;
* #L%
*/
+import io.ultreia.java4all.bean.JavaBean;
+import io.ultreia.java4all.util.json.JsonAware;
+
import java.io.Serializable;
import java.util.Objects;
/**
- * Represents a modification on a property of a {@link IdDto}.
+ * To keep a javaBean property modification.
* <p>
- * Created on 30/08/2020.
+ * Created on 15/02/2023.
*
* @author Tony Chemit - dev(a)tchemit.fr
- * @since 8.1.0
+ * @since 9.0.26
*/
-public class DtoPropertyModification implements ObserveDto {
+public class JavaBeanPropertyModification implements JsonAware {
private final String id;
private final String propertyName;
private final Serializable newValue;
- public DtoPropertyModification(IdDto dto, String propertyName) {
+ public JavaBeanPropertyModification(IdDto dto, String propertyName) {
this(Objects.requireNonNull(dto).getId(), propertyName, dto.get(propertyName));
}
- public DtoPropertyModification(String id, String propertyName, Serializable newValue) {
+ public JavaBeanPropertyModification(JavaBean bean, String propertyName) {
+ this(bean.get(ToolkitId.PROPERTY_TOOLKIT_ID), propertyName, bean.get(propertyName));
+ }
+
+ public JavaBeanPropertyModification(String id, String propertyName, Serializable newValue) {
this.id = id;
this.propertyName = propertyName;
this.newValue = newValue;
@@ -61,4 +68,9 @@ public class DtoPropertyModification implements ObserveDto {
return newValue;
}
+ public void flushToBean(JavaBean bean) {
+ Serializable newValue = getNewValue();
+ bean.set(getPropertyName(), newValue);
+ }
}
+
=====================================
toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/DtoPropertyModificationAdapter.java → toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/JavaBeanPropertyModificationAdapter.java
=====================================
@@ -30,7 +30,7 @@ import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
-import fr.ird.observe.dto.DtoPropertyModification;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import io.ultreia.java4all.util.json.JsonAdapter;
import java.io.Serializable;
@@ -43,32 +43,36 @@ import java.lang.reflect.Type;
* @since 8.1.0
*/
@AutoService(JsonAdapter.class)
-public class DtoPropertyModificationAdapter implements JsonDeserializer<DtoPropertyModification>, JsonSerializer<DtoPropertyModification>, JsonAdapter {
+public class JavaBeanPropertyModificationAdapter implements JsonDeserializer<JavaBeanPropertyModification>, JsonSerializer<JavaBeanPropertyModification>, JsonAdapter {
+
+ public static final String ID = "id";
+ public static final String PROPERTY_NAME = "propertyName";
+ public static final String TYPE = "type";
+ public static final String NEW_VALUE = "newValue";
+
@Override
public Class<?> type() {
- return DtoPropertyModification.class;
+ return JavaBeanPropertyModification.class;
}
-
@Override
- public DtoPropertyModification deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
- JsonObject reportVariableJson = json.getAsJsonObject();
-
- String dcpId = context.deserialize(reportVariableJson.get("dcpId"), String.class);
- String propertyName = context.deserialize(reportVariableJson.get("propertyName"), String.class);
- Class<?> type = context.deserialize(reportVariableJson.get("type"), Class.class);
- Serializable newValue1 = context.deserialize(reportVariableJson.get("newValue"), type);
- return new DtoPropertyModification(dcpId, propertyName, newValue1);
+ public JavaBeanPropertyModification deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
+ JsonObject jsonObject = json.getAsJsonObject();
+ String dcpId = context.deserialize(jsonObject.get(ID), String.class);
+ String propertyName = context.deserialize(jsonObject.get(PROPERTY_NAME), String.class);
+ Class<?> type = context.deserialize(jsonObject.get(TYPE), Class.class);
+ Serializable newValue = context.deserialize(jsonObject.get(NEW_VALUE), type);
+ return new JavaBeanPropertyModification(dcpId, propertyName, newValue);
}
@Override
- public JsonElement serialize(DtoPropertyModification src, Type typeOfSrc, JsonSerializationContext context) {
+ public JsonElement serialize(JavaBeanPropertyModification src, Type typeOfSrc, JsonSerializationContext context) {
JsonObject result = new JsonObject();
- result.add("dcpId", context.serialize(src.getId()));
- result.add("propertyName", context.serialize(src.getPropertyName()));
+ result.add(ID, context.serialize(src.getId()));
+ result.add(PROPERTY_NAME, context.serialize(src.getPropertyName()));
Serializable newValue = src.getNewValue();
- result.add("type", context.serialize(newValue == null ? String.class : newValue.getClass()));
- result.add("newValue", context.serialize(newValue));
+ result.add(TYPE, context.serialize(newValue == null ? String.class : newValue.getClass()));
+ result.add(NEW_VALUE, context.serialize(newValue));
return result;
}
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/54f1e72c0fd2119e315b74577…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/54f1e72c0fd2119e315b74577…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] Consolidate - Improve API (See #2628)
by Tony CHEMIT (@tchemit) 15 Feb '23
by Tony CHEMIT (@tchemit) 15 Feb '23
15 Feb '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
46e0163d by Tony Chemit at 2023-02-15T15:05:42+01:00
Consolidate - Improve API (See #2628)
- - - - -
17 changed files:
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/DcpUIModelStates.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/localmarket/TripBatchUIModelStates.java
- core/api/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateEngine.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateResult.java
- − core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectResultConsolidateBuilder.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/localmarket/consolidate/BatchConsolidateResult.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/ActivityConsolidateResult.java
- − core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/CatchModification.java
- − core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/SampleMeasureModification.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateContext.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateResultBuilder.java
- core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
- toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModifications.java
- toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModification.java → toolkit/api/src/main/java/fr/ird/observe/dto/JavaBeanPropertyModification.java
- toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/DtoPropertyModificationAdapter.java → toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/JavaBeanPropertyModificationAdapter.java
Changes:
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/DcpUIModelStates.java
=====================================
@@ -100,8 +100,8 @@ public interface DcpUIModelStates<D extends DataDto & FloatingObjectAware, P ext
default void recomputeComputedValues() {
Optional<FloatingObjectConsolidateResult> result = consolidate(getConsolidateEngine());
result.ifPresent(r -> {
- log.info("Flush " + r.getFloatingObjectModifications().size() + " consolidate dcp changes...");
- r.flushToDto(getBean());
+ log.info("Flush " + r.getModifications().size() + " consolidate dcp changes...");
+ r.flushToBean(getBean());
fireComputedValuesChanged();
});
}
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/localmarket/TripBatchUIModelStates.java
=====================================
@@ -103,7 +103,7 @@ public class TripBatchUIModelStates extends GeneratedTripBatchUIModelStates {
BatchConsolidateResult result = psConsolidateDataService.consolidateLocalmarketBatch(request);
if (result != null) {
log.info("Flush consolidate batch changes...");
- result.flushToDto(getTableEditBean());
+ result.flushToBean(getTableEditBean());
String lengthWeightParameterNotFound = result.getLengthWeightParameterNotFound();
if (lengthWeightParameterNotFound != null) {
log.warn(lengthWeightParameterNotFound);
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java
=====================================
@@ -77,4 +77,7 @@ public interface ProtectedIdsPs {
String PS_LOGBOOK_SAMPLE_DEFAULT_SAMPLE_QUALITY_ID = "fr.ird.referential.ps.logbook.SampleQuality#1464000000000#01";
Set<String> PS_LOGBOOK_CATCH_SPECIES_FATES = Set.of("fr.ird.referential.ps.common.SpeciesFate#1239832683619#0.5722739932065866", "fr.ird.referential.ps.common.SpeciesFate#1501492537510#0.9210847837998154");
String PS_LOCAL_MARKET_SAMPLE_DEFAULT_SAMPLE_TYPE_ID = "fr.ird.referential.ps.common.SampleType#1464000000000#01";
+ String PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_WEIGHING = "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#01";
+ String PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_SINGLE_SPECIES_INDIVIDUAL = "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#02";
+ String PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_PACKAGING_NOT_WEIGHTED = "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#03";
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateEngine.java
=====================================
@@ -28,7 +28,6 @@ import fr.ird.observe.dto.data.ps.FloatingObjectAware;
import fr.ird.observe.dto.data.ps.FloatingObjectPartAware;
import fr.ird.observe.dto.data.ps.dcp.SimplifiedObjectTypeManager;
import fr.ird.observe.dto.data.ps.observation.FloatingObjectDto;
-import fr.ird.observe.dto.data.ps.observation.consolidate.FloatingObjectConsolidateRequest;
import io.ultreia.java4all.bean.monitor.BeanMonitor;
import java.util.Optional;
@@ -47,12 +46,12 @@ public class FloatingObjectConsolidateEngine {
private static class FloatingObjectConsolidateContext {
- final FloatingObjectResultConsolidateBuilder resultBuilder;
- final BeanMonitor dcpMonitor;
+ final FloatingObjectConsolidateResult.Builder resultBuilder;
+ final BeanMonitor monitor;
- FloatingObjectConsolidateContext(FloatingObjectResultConsolidateBuilder resultBuilder) {
- this.resultBuilder = resultBuilder;
- dcpMonitor = new BeanMonitor(
+ FloatingObjectConsolidateContext(FloatingObjectConsolidateResult.Builder builder) {
+ this.resultBuilder = builder;
+ this.monitor = new BeanMonitor(
FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE,
FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING,
FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE,
@@ -62,17 +61,15 @@ public class FloatingObjectConsolidateEngine {
);
}
-
- void watchDcp(DataDto dcp) {
- dcpMonitor.setBean(dcp);
+ void watch(DataDto floatingObject) {
+ monitor.setBean(floatingObject);
}
- void flushDcp() {
- if (dcpMonitor.wasModified()) {
- DataDto dcp = (DataDto) dcpMonitor.getBean();
- resultBuilder.flushDcpModification(dcp, dcpMonitor.getModifiedProperties());
+ void flush() {
+ if (monitor.wasModified()) {
+ resultBuilder.flush(monitor);
}
- dcpMonitor.setBean(null);
+ monitor.setBean(null);
}
}
@@ -80,7 +77,7 @@ public class FloatingObjectConsolidateEngine {
this.simplifiedObjectTypeManager = simplifiedObjectTypeManager;
}
- public Optional<FloatingObjectConsolidateResult> consolidate(FloatingObjectConsolidateRequest request) {
+ public Optional<FloatingObjectConsolidateResult> consolidate(fr.ird.observe.dto.data.ps.observation.consolidate.FloatingObjectConsolidateRequest request) {
return consolidate0(request);
}
@@ -91,36 +88,35 @@ public class FloatingObjectConsolidateEngine {
private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> Optional<FloatingObjectConsolidateResult> consolidate0(FloatingObjectAdapter<F, P> request) {
- FloatingObjectResultConsolidateBuilder builder = new FloatingObjectResultConsolidateBuilder();
+ FloatingObjectConsolidateResult.Builder builder = FloatingObjectConsolidateResult.builder();
FloatingObjectConsolidateContext context = new FloatingObjectConsolidateContext(builder);
- F dcp = request.getFloatingObject();
- context.watchDcp(dcp);
+ F floatingObject = request.getFloatingObject();
+ context.watch(floatingObject);
Set<P> whenArriving = request.getWhenArriving();
Set<P> whenLeaving = request.getWhenLeaving();
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE, request, whenArriving, this::computeDcpSimplifiedObjectType0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_SIMPLIFIED_OBJECT_TYPE, request, whenLeaving, this::computeDcpSimplifiedObjectType0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE, request, whenArriving, this::computeDcpSimplifiedObjectType0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_SIMPLIFIED_OBJECT_TYPE, request, whenLeaving, this::computeDcpSimplifiedObjectType0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING, request, whenArriving, this::computeDcpNonEntangling0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_NON_ENTANGLING, request, whenLeaving, this::computeDcpNonEntangling0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING, request, whenArriving, this::computeDcpNonEntangling0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_NON_ENTANGLING, request, whenLeaving, this::computeDcpNonEntangling0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE, request, whenArriving, this::computeDcpBiodegradable0);
- computeDcpValue(dcp, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_BIODEGRADABLE, request, whenLeaving, this::computeDcpBiodegradable0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE, request, whenArriving, this::computeDcpBiodegradable0);
+ computeDcpValue(floatingObject, FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_BIODEGRADABLE, request, whenLeaving, this::computeDcpBiodegradable0);
- context.flushDcp();
+ context.flush();
return builder.build();
-
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> void computeDcpValue(F dcp, String propertyName, FloatingObjectAdapter<F, P> adapter, Set<P> parts, BiFunction<FloatingObjectAdapter<F, P>, Set<P>, Object> valueComputer) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> void computeDcpValue(F dcp, String propertyName, FloatingObjectAdapter<F, P> adapter, Set<P> parts, BiFunction<FloatingObjectAdapter<F, P>, Set<P>, Object> valueComputer) {
Object newValue = valueComputer.apply(adapter, parts);
dcp.set(propertyName, newValue);
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> DcpComputedValue computeDcpBiodegradable0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> DcpComputedValue computeDcpBiodegradable0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
if (parts.isEmpty()) {
return null;
}
@@ -139,7 +135,7 @@ public class FloatingObjectConsolidateEngine {
return result;
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> String computeDcpSimplifiedObjectType0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> String computeDcpSimplifiedObjectType0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
if (parts.isEmpty()) {
return null;
}
@@ -147,7 +143,7 @@ public class FloatingObjectConsolidateEngine {
return simplifiedObjectTypeManager.getStandardCode(objectMaterialIds);
}
- private <F extends DataDto&FloatingObjectAware, P extends DataDto&FloatingObjectPartAware> DcpComputedValue computeDcpNonEntangling0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
+ private <F extends DataDto & FloatingObjectAware, P extends DataDto & FloatingObjectPartAware> DcpComputedValue computeDcpNonEntangling0(FloatingObjectAdapter<F, P> adapter, Set<P> parts) {
if (parts.isEmpty()) {
return null;
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectConsolidateResult.java
=====================================
@@ -23,44 +23,64 @@ package fr.ird.observe.dto.data.ps.dcp.consolidate;
*/
-import fr.ird.observe.dto.DtoPropertyModification;
-import fr.ird.observe.dto.ObserveDto;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import fr.ird.observe.dto.data.DataDto;
+import io.ultreia.java4all.bean.JavaBean;
+import io.ultreia.java4all.bean.monitor.BeanMonitor;
+import io.ultreia.java4all.util.json.JsonAware;
-import java.io.Serializable;
+import java.util.LinkedHashSet;
+import java.util.Optional;
import java.util.Set;
/**
- * Pour retourner le résultat de la consolidation d'une activité de type Seine.
+ * Contains the result of a consolidation operation on a Floating Object..
* <p>
- * Un tel objet est créé uniquement si des modifications on été effectuée sur l'activité.
+ * UA such object is only created if there is some modification on a the floating object.
* <p>
* Created on 28/08/15.
*
* @author Tony Chemit - dev(a)tchemit.fr
*/
-public class FloatingObjectConsolidateResult implements Serializable, ObserveDto {
-
- private static final long serialVersionUID = 1L;
+public class FloatingObjectConsolidateResult implements JsonAware {
/**
* All modifications on floating object.
*/
- private final Set<DtoPropertyModification> floatingObjectModifications;
+ private final Set<JavaBeanPropertyModification> modifications;
- FloatingObjectConsolidateResult(Set<DtoPropertyModification> floatingObjectModifications) {
- this.floatingObjectModifications = floatingObjectModifications;
+ public static Builder builder() {
+ return new Builder();
}
- public Set<DtoPropertyModification> getFloatingObjectModifications() {
- return floatingObjectModifications;
- }
+ public static class Builder {
+
+ private final Set<JavaBeanPropertyModification> modifications = new LinkedHashSet<>();
- public void flushToDto(DataDto dto) {
- for (DtoPropertyModification floatingObjectModification : floatingObjectModifications) {
- Serializable newValue = floatingObjectModification.getNewValue();
- dto.set(floatingObjectModification.getPropertyName(), newValue);
+ public Optional<FloatingObjectConsolidateResult> build() {
+ boolean noModification = modifications.isEmpty();
+ return Optional.ofNullable(noModification ? null : new FloatingObjectConsolidateResult(modifications));
}
+
+ public void flush(BeanMonitor monitor) {
+ DataDto dcp = (DataDto) monitor.getBean();
+ for (String modifiedProperty : monitor.getModifiedProperties()) {
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(dcp, modifiedProperty);
+ modifications.add(element);
+ }
+ }
+ }
+
+ FloatingObjectConsolidateResult(Set<JavaBeanPropertyModification> modifications) {
+ this.modifications = modifications;
+ }
+
+ public Set<JavaBeanPropertyModification> getModifications() {
+ return modifications;
+ }
+
+ public void flushToBean(JavaBean dto) {
+ modifications.forEach(modification -> modification.flushToBean(dto));
}
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/dcp/consolidate/FloatingObjectResultConsolidateBuilder.java deleted
=====================================
@@ -1,52 +0,0 @@
-package fr.ird.observe.dto.data.ps.dcp.consolidate;
-
-/*-
- * #%L
- * ObServe Core :: API :: Dto
- * %%
- * Copyright (C) 2008 - 2023 IRD, Ultreia.io
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-
-import fr.ird.observe.dto.DtoPropertyModification;
-import fr.ird.observe.dto.data.DataDto;
-
-import java.util.LinkedHashSet;
-import java.util.Optional;
-import java.util.Set;
-
-/**
- * @author Tony Chemit - dev(a)tchemit.fr
- * @since 7.0
- */
-public class FloatingObjectResultConsolidateBuilder {
-
- private final Set<DtoPropertyModification> modifications = new LinkedHashSet<>();
-
- public Optional<FloatingObjectConsolidateResult> build() {
- boolean noModification = modifications.isEmpty();
- return Optional.ofNullable(noModification ? null : new FloatingObjectConsolidateResult(modifications));
- }
-
- void flushDcpModification(DataDto dcp, String... propertyNamesModified) {
- for (String modifiedProperty : propertyNamesModified) {
- DtoPropertyModification element = new DtoPropertyModification(dcp, modifiedProperty);
- modifications.add(element);
- }
- }
-}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/localmarket/consolidate/BatchConsolidateResult.java
=====================================
@@ -22,8 +22,9 @@ package fr.ird.observe.dto.data.ps.localmarket.consolidate;
* #L%
*/
-import fr.ird.observe.dto.DtoPropertyModification;
import fr.ird.observe.dto.DtoPropertyModifications;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
+import fr.ird.observe.dto.ProtectedIdsPs;
import fr.ird.observe.dto.data.ps.localmarket.BatchDto;
import fr.ird.observe.dto.data.ps.localmarket.BatchWeightComputedValueSource;
import fr.ird.observe.dto.referential.common.SpeciesReference;
@@ -65,7 +66,7 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
}
@Override
- protected BatchConsolidateResult createResult(String id, String label, Set<DtoPropertyModification> modifications, String lengthWeightParameterNotFound) {
+ protected BatchConsolidateResult createResult(String id, String label, Set<JavaBeanPropertyModification> modifications, String lengthWeightParameterNotFound) {
return new BatchConsolidateResult(id, label, modifications, lengthWeightParameterNotFound);
}
@@ -83,12 +84,12 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
BatchWeightTypeReference batchWeightType = dto.getPackaging().getBatchWeightType();
Integer count = dto.getCount();
switch (batchWeightType.getId()) {
- case "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#01":
+ case ProtectedIdsPs.PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_WEIGHING:
// pesée poids direct
// P = batch.weight
// donc rien à faire
break;
- case "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#02":
+ case ProtectedIdsPs.PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_SINGLE_SPECIES_INDIVIDUAL:
// espèce unité
// P = poids moyen de l'espèce * batch.count / 1000
// ocean = océan de débarquement de la marée = ps_common.trip.ocean
@@ -113,7 +114,7 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
});
}
break;
- case "fr.ird.referential.ps.localmarket.BatchWeightType#1464000000000#03":
+ case ProtectedIdsPs.PS_LOCAL_MARKET_BATCH_WEIGHT_TYPE_PACKAGING_NOT_WEIGHTED:
// Paquet/Conditionnement non pesé
// P = batch.packaging.meanWeight * batch.count (ou null si pas de packaging.meanWeight)
if (count != null) {
@@ -132,7 +133,7 @@ public class BatchConsolidateResult extends DtoPropertyModifications {
return new BatchConsolidateResultBuilder(rtpMeanWeightFinder);
}
- BatchConsolidateResult(String batchId, String batchLabel, Set<DtoPropertyModification> modifications, String lengthWeightParameterNotFound) {
+ BatchConsolidateResult(String batchId, String batchLabel, Set<JavaBeanPropertyModification> modifications, String lengthWeightParameterNotFound) {
super(batchId, batchLabel, modifications, lengthWeightParameterNotFound);
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/ActivityConsolidateResult.java
=====================================
@@ -23,7 +23,7 @@ package fr.ird.observe.dto.data.ps.observation.consolidate;
*/
-import fr.ird.observe.dto.DtoPropertyModification;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import fr.ird.observe.dto.ObserveDto;
import java.io.Serializable;
@@ -63,17 +63,17 @@ public class ActivityConsolidateResult implements Serializable, ObserveDto {
private String newSchoolType;
/**
- * L'ensemble des modifications sur les échantillons.
+ * All modification on samples.
*/
- private Set<SampleMeasureModification> sampleMeasureModifications;
+ private Set<JavaBeanPropertyModification> sampleMeasureModifications;
/**
- * L'ensemble des modifications sur les captures non cibles.
+ * All modification on catches.
*/
- private Set<CatchModification> catchModifications;
+ private Set<JavaBeanPropertyModification> catchModifications;
/**
- * L'ensemble des modifications sur les objets flottants.
+ * All modification on floating objects.
*/
- private Set<DtoPropertyModification> floatingObjectModifications;
+ private Set<JavaBeanPropertyModification> floatingObjectModifications;
private Set<String> lengthWeightParameterNotFound ;
private Set<String> lengthLengthParameterNotFound;
@@ -94,27 +94,27 @@ public class ActivityConsolidateResult implements Serializable, ObserveDto {
this.activityLabel = activityLabel;
}
- public Set<SampleMeasureModification> getSampleMeasureModifications() {
+ public Set<JavaBeanPropertyModification> getSampleMeasureModifications() {
return sampleMeasureModifications;
}
- public void setSampleMeasureModifications(Set<SampleMeasureModification> sampleMeasureModifications) {
+ public void setSampleMeasureModifications(Set<JavaBeanPropertyModification> sampleMeasureModifications) {
this.sampleMeasureModifications = sampleMeasureModifications;
}
- public Set<CatchModification> getCatchModifications() {
+ public Set<JavaBeanPropertyModification> getCatchModifications() {
return catchModifications;
}
- public void setCatchModifications(Set<CatchModification> catchModifications) {
+ public void setCatchModifications(Set<JavaBeanPropertyModification> catchModifications) {
this.catchModifications = catchModifications;
}
- public Set<DtoPropertyModification> getFloatingObjectModifications() {
+ public Set<JavaBeanPropertyModification> getFloatingObjectModifications() {
return floatingObjectModifications;
}
- public void setFloatingObjectModifications(Set<DtoPropertyModification> floatingObjectModifications) {
+ public void setFloatingObjectModifications(Set<JavaBeanPropertyModification> floatingObjectModifications) {
this.floatingObjectModifications = floatingObjectModifications;
}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/CatchModification.java deleted
=====================================
@@ -1,71 +0,0 @@
-package fr.ird.observe.dto.data.ps.observation.consolidate;
-
-/*-
- * #%L
- * ObServe Core :: API :: Dto
- * %%
- * Copyright (C) 2008 - 2023 IRD, Ultreia.io
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import java.io.Serializable;
-
-/**
- * Created by tchemit on 04/08/17.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- */
-public class CatchModification implements Serializable {
-
- private static final long serialVersionUID = 1L;
- protected String speciesLabel;
- protected String propertyName;
- protected Number newValue;
- String catchId;
-
- public String getCatchCatchId() {
- return catchId;
- }
-
- public String getSpeciesLabel() {
- return speciesLabel;
- }
-
- public String getPropertyName() {
- return propertyName;
- }
-
- public Number getNewValue() {
- return newValue;
- }
-
- public void setCatchId(String catchId) {
- this.catchId = catchId;
- }
-
- public void setSpeciesLabel(String speciesLabel) {
- this.speciesLabel = speciesLabel;
- }
-
- public void setPropertyName(String propertyName) {
- this.propertyName = propertyName;
- }
-
- public void setNewValue(Number newValue) {
- this.newValue = newValue;
- }
-}
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/observation/consolidate/SampleMeasureModification.java deleted
=====================================
@@ -1,71 +0,0 @@
-package fr.ird.observe.dto.data.ps.observation.consolidate;
-
-/*-
- * #%L
- * ObServe Core :: API :: Dto
- * %%
- * Copyright (C) 2008 - 2023 IRD, Ultreia.io
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import java.io.Serializable;
-
-/**
- * Created by tchemit on 04/08/17.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- */
-public class SampleMeasureModification implements Serializable {
-
- private static final long serialVersionUID = 1L;
- protected String speciesLabel;
- protected String propertyName;
- protected Float newValue;
- private String id;
-
- public String getId() {
- return id;
- }
-
- public String getSpeciesLabel() {
- return speciesLabel;
- }
-
- public String getPropertyName() {
- return propertyName;
- }
-
- public Float getNewValue() {
- return newValue;
- }
-
- public void setId(String id) {
- this.id = id;
- }
-
- public void setSpeciesLabel(String speciesLabel) {
- this.speciesLabel = speciesLabel;
- }
-
- public void setPropertyName(String propertyName) {
- this.propertyName = propertyName;
- }
-
- public void setNewValue(Float newValue) {
- this.newValue = newValue;
- }
-}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java
=====================================
@@ -162,7 +162,7 @@ public class TripConsolidateEngine {
// add to result
localmarketBatchResults.add(r);
// flush back to entity
- r.flushToDto(batch);
+ r.flushToBean(batch);
});
}
@@ -193,11 +193,11 @@ public class TripConsolidateEngine {
activityContext.daoSupplier = (ObserveTopiaDaoSupplier) persistenceContext;
activityContext.resultBuilder = resultBuilder;
activityContext.trip = trip;
- activityContext.routeObs = route;
- activityContext.activityObs = activity;
- activityContext.sampleMeasureObsMonitor = sampleMeasureMonitor;
- activityContext.sampleObsMonitor = sampleMonitor;
- activityContext.catchObsMonitor = catchMonitor;
+ activityContext.route = route;
+ activityContext.activity = activity;
+ activityContext.sampleMeasureMonitor = sampleMeasureMonitor;
+ activityContext.sampleMonitor = sampleMonitor;
+ activityContext.catchMonitor = catchMonitor;
activityContext.floatingObjectConsolidateEngine = floatingObjectConsolidateEngine;
activityContext.activityPrefix = activityPrefix;
try {
@@ -228,11 +228,11 @@ public class TripConsolidateEngine {
}
private void consolidateActivity(ActivityConsolidateContext activityContext) {
- Activity activity = activityContext.activityObs;
+ Activity activity = activityContext.activity;
log.debug(String.format("%s Start consolidate activity: %s", activityContext.activityPrefix, activity.getTopiaId()));
if (activity.isFloatingObjectNotEmpty()) {
- for (FloatingObject dcp : activity.getFloatingObject()) {
- updateDcp(dcp, activityContext);
+ for (FloatingObject floatingObject : activity.getFloatingObject()) {
+ updateFloatingObject(floatingObject, activityContext);
}
}
Set set = activity.getSet();
@@ -249,22 +249,17 @@ public class TripConsolidateEngine {
activityContext.setSchoolTypeChanged(oldSchoolType == null ? null : oldSchoolType.getTopiaId(), newSchoolTypeId);
}
if (set.isSampleNotEmpty()) {
- // des échantillons trouves
for (Sample sample : set.getSample()) {
if (sample.isSampleMeasureNotEmpty()) {
for (SampleMeasure sampleMeasure : sample.getSampleMeasure()) {
activityContext.watchSampleMeasure(sampleMeasure);
- updateLengthWeightAble(activityContext,
- sampleMeasure.getSpecies(),
- /* pas de sexe precise */
- sampleMeasure);
+ updateLengthWeightAble(activityContext, sampleMeasure.getSpecies(), sampleMeasure);
activityContext.flushSampleMeasure();
}
}
}
}
if (set.isCatchesNotEmpty()) {
- // des captures trouves
for (Catch aCatch : set.getCatches()) {
activityContext.watchCatch(aCatch);
updateCatch(activityContext, aCatch);
@@ -274,11 +269,11 @@ public class TripConsolidateEngine {
}
}
- private void updateDcp(FloatingObject dcp, ActivityConsolidateContext activityContext) {
+ private void updateFloatingObject(FloatingObject floatingObject, ActivityConsolidateContext activityContext) {
- if (dcp.getObjectOperation() == null) {
+ if (floatingObject.getObjectOperation() == null) {
log.warn("**********************");
- log.warn(String.format("Floating object %s has no object operation....", dcp.getTopiaId()));
+ log.warn(String.format("Floating object %s has no object operation....", floatingObject.getTopiaId()));
log.warn("**********************");
return;
}
@@ -286,22 +281,27 @@ public class TripConsolidateEngine {
ReferentialLocale referentialLocale = context.getReferentialLocale();
- FloatingObjectDto floatingObjectDto = FloatingObject.toDto(referentialLocale, dcp);
+ FloatingObjectDto floatingObjectDto = FloatingObject.toDto(referentialLocale, floatingObject);
- java.util.Set<FloatingObjectPartDto> floatingObjectPartSet = new LinkedHashSet<>(FloatingObjectPart.SPI.toDataDtoList(referentialLocale, dcp.getFloatingObjectPart()));
+ java.util.Set<FloatingObjectPartDto> floatingObjectPartSet = new LinkedHashSet<>(FloatingObjectPart.SPI.toDataDtoList(referentialLocale, floatingObject.getFloatingObjectPart()));
FloatingObjectConsolidateRequest request = new FloatingObjectConsolidateRequest(floatingObjectDto, floatingObjectPartSet);
Optional<FloatingObjectConsolidateResult> result = floatingObjectConsolidateEngine.consolidate(request);
- result.ifPresent(r -> activityContext.flushDcp(dcp, r));
+ result.ifPresent(r -> {
+ // flush to main result
+ activityContext.flushFloatingObject(r);
+ // flush back modifications detected to entity
+ r.flushToBean(floatingObject);
+ });
if (request.isNeedClean()) {
log.warn("**********************");
- log.warn(String.format("Floating object %s has some bad parts, this will be fixed here....", dcp.getTopiaId()));
+ log.warn(String.format("Floating object %s has some bad parts, this will be fixed here....", floatingObject.getTopiaId()));
log.warn("**********************");
// Need to clean dcp parts
- boolean notWhenArriving = !dcp.getObjectOperation().isWhenArriving();
- boolean notWhenLeaving = !dcp.getObjectOperation().isWhenLeaving();
- for (FloatingObjectPart floatingObjectPart : dcp.getFloatingObjectPart()) {
+ boolean notWhenArriving = !floatingObject.getObjectOperation().isWhenArriving();
+ boolean notWhenLeaving = !floatingObject.getObjectOperation().isWhenLeaving();
+ for (FloatingObjectPart floatingObjectPart : floatingObject.getFloatingObjectPart()) {
if (floatingObjectPart.getWhenArriving() != null && notWhenArriving) {
log.info(String.format("Set whenArriving to null for part: %s", floatingObjectPart.getTopiaId()));
floatingObjectPart.setWhenArriving(null);
@@ -333,7 +333,7 @@ public class TripConsolidateEngine {
// récupération des échantillon de cette espèce sur les calée
// on recherche sur le couple species/speciesFate (ou sur le couple species/null)
- Collection<SampleMeasure> sampleMeasures = getSampleMeasures(activityContext.getSetObs(), species, aCatch.getSpeciesFate());
+ Collection<SampleMeasure> sampleMeasures = getSampleMeasures(activityContext.getSet(), species, aCatch.getSpeciesFate());
if (aCatch.getCatchWeight() != null || aCatch.getTotalCount() != null) {
// -- Cas n°2 (pas de taille / poids moyen mais au moins un des deux taille / poids)
@@ -448,11 +448,11 @@ public class TripConsolidateEngine {
private void computeCatchMeanValues(Catch aCatch, LengthWeightParameter lengthWeightParameter) {
if (lengthWeightParameter != null) {
- if (aCatch.getMeanLength() == null) {
+ if (aCatch.getMeanLength() == null && lengthWeightParameter.getMeanLength() != null) {
aCatch.setMeanLength(lengthWeightParameter.getMeanLength());
aCatch.setMeanLengthComputedSource(CatchComputedValueSource.fromReferentiel);
}
- if (aCatch.getMeanWeight() == null) {
+ if (aCatch.getMeanWeight() == null && lengthWeightParameter.getMeanWeight() != null) {
aCatch.setMeanWeight(lengthWeightParameter.getMeanWeight());
aCatch.setMeanWeightComputedSource(CatchComputedValueSource.fromReferentiel);
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateContext.java
=====================================
@@ -23,11 +23,8 @@ package fr.ird.observe.entities.data.ps.observation;
*/
import fr.ird.observe.decoration.DecoratorService;
-import fr.ird.observe.dto.DtoPropertyModification;
-import fr.ird.observe.dto.data.ps.DcpComputedValue;
import fr.ird.observe.dto.data.ps.dcp.consolidate.FloatingObjectConsolidateEngine;
import fr.ird.observe.dto.data.ps.dcp.consolidate.FloatingObjectConsolidateResult;
-import fr.ird.observe.dto.data.ps.observation.FloatingObjectDto;
import fr.ird.observe.entities.ObserveTopiaDaoSupplier;
import fr.ird.observe.entities.data.ps.common.Trip;
import fr.ird.observe.entities.referential.LengthLengthParameterNotFoundException;
@@ -55,8 +52,8 @@ public class ActivityConsolidateContext {
public Locale locale;
public Trip trip;
- public fr.ird.observe.entities.data.ps.observation.Route routeObs;
- public fr.ird.observe.entities.data.ps.observation.Activity activityObs;
+ public fr.ird.observe.entities.data.ps.observation.Route route;
+ public fr.ird.observe.entities.data.ps.observation.Activity activity;
public ObserveTopiaDaoSupplier daoSupplier;
public boolean failIfLengthWeightParameterNotFound;
public boolean failIfLengthLengthParameterNotFound;
@@ -64,25 +61,25 @@ public class ActivityConsolidateContext {
public String activityPrefix;
public ActivityConsolidateResultBuilder resultBuilder;
public FloatingObjectConsolidateEngine floatingObjectConsolidateEngine;
- public BeanMonitor sampleObsMonitor;
- public BeanMonitor sampleMeasureObsMonitor;
- public BeanMonitor catchObsMonitor;
+ public BeanMonitor sampleMonitor;
+ public BeanMonitor sampleMeasureMonitor;
+ public BeanMonitor catchMonitor;
public Ocean getOcean() {
return trip.getOcean();
}
- public Date getRouteObsDate() {
- return routeObs.getDate();
+ public Date getRouteDate() {
+ return route.getDate();
}
- public fr.ird.observe.entities.data.ps.observation.Set getSetObs() {
- return activityObs.getSet();
+ public fr.ird.observe.entities.data.ps.observation.Set getSet() {
+ return activity.getSet();
}
public Optional<LengthWeightParameter> findLengthWeightParameter(Species species, Sex sex, SizeMeasureType sizeMeasureType) {
Ocean ocean = getOcean();
- Date routeDate = getRouteObsDate();
+ Date routeDate = getRouteDate();
try {
return Optional.ofNullable(LengthWeightParameters.findLengthWeightParameter(decoratorService, daoSupplier, species, sex, ocean, routeDate, sizeMeasureType));
} catch (LengthWeightParameterNotFoundException e) {
@@ -96,7 +93,7 @@ public class ActivityConsolidateContext {
public Optional<LengthLengthParameter> findLengthLengthParameter(Species species, Sex sex, SizeMeasureType inputSizeMeasureType, SizeMeasureType outputSizeMeasureType) {
Ocean ocean = getOcean();
- Date routeDate = getRouteObsDate();
+ Date routeDate = getRouteDate();
try {
return LengthLengthParameters.findLengthLengthParameter(decoratorService, daoSupplier, species, ocean, sex, routeDate, inputSizeMeasureType, outputSizeMeasureType);
} catch (LengthLengthParameterNotFoundException e) {
@@ -113,14 +110,12 @@ public class ActivityConsolidateContext {
}
public void watchSampleMeasure(SampleMeasure sampleMeasure) {
- sampleMeasureObsMonitor.setBean(sampleMeasure);
+ sampleMeasureMonitor.setBean(sampleMeasure);
if (sampleMeasure.isIsLengthComputed()) {
- // Reset de la valeur calculée
sampleMeasure.setLength(null);
sampleMeasure.setIsLengthComputed(false);
}
if (sampleMeasure.isIsWeightComputed()) {
- // Reset de la valeur calculée
sampleMeasure.setWeight(null);
sampleMeasure.setIsWeightComputed(false);
}
@@ -128,15 +123,15 @@ public class ActivityConsolidateContext {
public void flushSampleMeasure() {
- if (sampleMeasureObsMonitor.wasModified()) {
- SampleMeasure sampleMeasure = (SampleMeasure) sampleMeasureObsMonitor.getBean();
- resultBuilder.flushSampleMeasureModification(sampleMeasure, sampleMeasureObsMonitor.getModifiedProperties());
+ if (sampleMeasureMonitor.wasModified()) {
+ SampleMeasure sampleMeasure = (SampleMeasure) sampleMeasureMonitor.getBean();
+ resultBuilder.flushSampleMeasureModification(sampleMeasure, sampleMeasureMonitor.getModifiedProperties());
}
- sampleMeasureObsMonitor.setBean(null);
+ sampleMeasureMonitor.setBean(null);
}
public void watchCatch(Catch aCatch) {
- catchObsMonitor.setBean(aCatch);
+ catchMonitor.setBean(aCatch);
if (aCatch.isCatchWeightComputed()) {
aCatch.setCatchWeight(null);
aCatch.setCatchWeightComputedSource(null);
@@ -156,50 +151,15 @@ public class ActivityConsolidateContext {
}
public void flushCatch() {
- if (catchObsMonitor.wasModified()) {
- Catch aCatch = (Catch) catchObsMonitor.getBean();
- resultBuilder.flushCatchModification(aCatch, catchObsMonitor.getModifiedProperties());
+ if (catchMonitor.wasModified()) {
+ Catch aCatch = (Catch) catchMonitor.getBean();
+ resultBuilder.flushCatchModification(aCatch, catchMonitor.getModifiedProperties());
}
- catchObsMonitor.setBean(null);
+ catchMonitor.setBean(null);
}
- public void flushDcp(FloatingObject dcp, FloatingObjectConsolidateResult floatingObjectConsolidateResult) {
- resultBuilder.flushDcpModification(floatingObjectConsolidateResult);
- for (DtoPropertyModification floatingObjectModification : floatingObjectConsolidateResult.getFloatingObjectModifications()) {
- String modifiedProperty = floatingObjectModification.getPropertyName();
- switch (modifiedProperty) {
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_BIODEGRADABLE: {
-
- dcp.setComputedWhenArrivingBiodegradable((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_NON_ENTANGLING: {
-
- dcp.setComputedWhenArrivingNonEntangling((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_ARRIVING_SIMPLIFIED_OBJECT_TYPE: {
-
- dcp.setComputedWhenArrivingSimplifiedObjectType((String) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_BIODEGRADABLE: {
-
- dcp.setComputedWhenLeavingBiodegradable((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_NON_ENTANGLING: {
-
- dcp.setComputedWhenLeavingNonEntangling((DcpComputedValue) floatingObjectModification.getNewValue());
- break;
- }
- case FloatingObjectDto.PROPERTY_COMPUTED_WHEN_LEAVING_SIMPLIFIED_OBJECT_TYPE: {
-
- dcp.setComputedWhenLeavingSimplifiedObjectType((String) floatingObjectModification.getNewValue());
- break;
- }
- }
- }
+ public void flushFloatingObject(FloatingObjectConsolidateResult floatingObjectConsolidateResult) {
+ resultBuilder.flushFloatingObjectModification(floatingObjectConsolidateResult);
}
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivityConsolidateResultBuilder.java
=====================================
@@ -22,11 +22,9 @@ package fr.ird.observe.entities.data.ps.observation;
* #L%
*/
-import fr.ird.observe.dto.DtoPropertyModification;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import fr.ird.observe.dto.data.ps.dcp.consolidate.FloatingObjectConsolidateResult;
-import fr.ird.observe.dto.data.ps.observation.consolidate.CatchModification;
import fr.ird.observe.dto.data.ps.observation.consolidate.ActivityConsolidateResult;
-import fr.ird.observe.dto.data.ps.observation.consolidate.SampleMeasureModification;
import fr.ird.observe.dto.referential.I18nReferentialHelper;
import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.referential.common.Ocean;
@@ -58,49 +56,46 @@ public class ActivityConsolidateResultBuilder {
private final ReferentialLocale referenceLocale;
private final Set<String> lengthWeightParameterNotFoundBuilder = new LinkedHashSet<>();
private final Set<String> lengthLengthParameterNotFoundBuilder = new LinkedHashSet<>();
- private final Set<SampleMeasureModification> sampleMeasureObsModificationBuilder = new LinkedHashSet<>();
- private final Set<CatchModification> catchObsModificationBuilder = new LinkedHashSet<>();
- private final Set<DtoPropertyModification> dcpModificationBuilder = new LinkedHashSet<>();
- private final String activitySeineLabel;
- private final String activitySeineId;
+ private final Set<JavaBeanPropertyModification> sampleMeasureModificationBuilder = new LinkedHashSet<>();
+ private final Set<JavaBeanPropertyModification> catchModificationBuilder = new LinkedHashSet<>();
+ private final Set<JavaBeanPropertyModification> floatingObjectModificationBuilder = new LinkedHashSet<>();
+ private final String activityLabel;
+ private final String activityId;
private String oldSchoolType;
private String newSchoolType;
- public ActivityConsolidateResultBuilder(Locale locale, ReferentialLocale referenceLocale, String activitySeineId, String activitySeineLabel) {
+ public ActivityConsolidateResultBuilder(Locale locale, ReferentialLocale referenceLocale, String activityId, String activityLabel) {
this.locale = locale;
this.referenceLocale = referenceLocale;
- this.activitySeineId = activitySeineId;
- this.activitySeineLabel = activitySeineLabel;
+ this.activityId = activityId;
+ this.activityLabel = activityLabel;
}
public Optional<ActivityConsolidateResult> build() {
- Set<SampleMeasureModification> sampleMeasureObsModifications = sampleMeasureObsModificationBuilder;
- Set<CatchModification> catchObsModifications = catchObsModificationBuilder;
- Set<DtoPropertyModification> floatingObjectModifications = dcpModificationBuilder;
+ Set<JavaBeanPropertyModification> sampleMeasureModifications = sampleMeasureModificationBuilder;
+ Set<JavaBeanPropertyModification> catchModifications = catchModificationBuilder;
+ Set<JavaBeanPropertyModification> floatingObjectModifications = floatingObjectModificationBuilder;
- boolean noModification = (sampleMeasureObsModifications.isEmpty()
- && catchObsModifications.isEmpty()
+ boolean noModification = sampleMeasureModifications.isEmpty()
+ && catchModifications.isEmpty()
&& floatingObjectModifications.isEmpty()
- && newSchoolType == null);
+ && newSchoolType == null;
- ActivityConsolidateResult consolidateActivitySeineObsDataResult;
if (noModification) {
- consolidateActivitySeineObsDataResult = null;
- } else {
- consolidateActivitySeineObsDataResult = new ActivityConsolidateResult();
- consolidateActivitySeineObsDataResult.setActivityId(activitySeineId);
- consolidateActivitySeineObsDataResult.setActivityLabel(activitySeineLabel);
- if (newSchoolType != null) {
- consolidateActivitySeineObsDataResult.setSchoolTypeChanged(oldSchoolType, newSchoolType);
- }
- consolidateActivitySeineObsDataResult.setSampleMeasureModifications(sampleMeasureObsModifications);
- consolidateActivitySeineObsDataResult.setCatchModifications(catchObsModifications);
- consolidateActivitySeineObsDataResult.setFloatingObjectModifications(floatingObjectModifications);
- consolidateActivitySeineObsDataResult.setFloatingObjectModifications(floatingObjectModifications);
- consolidateActivitySeineObsDataResult.setLengthLengthParameterNotFound(getLengthLengthParameterNotFoundBuilder());
- consolidateActivitySeineObsDataResult.setLengthWeightParameterNotFound(getLengthWeightParameterNotFoundBuilder());
+ return Optional.empty();
+ }
+ ActivityConsolidateResult result = new ActivityConsolidateResult();
+ result.setActivityId(activityId);
+ result.setActivityLabel(activityLabel);
+ if (newSchoolType != null) {
+ result.setSchoolTypeChanged(oldSchoolType, newSchoolType);
}
- return Optional.ofNullable(consolidateActivitySeineObsDataResult);
+ result.setSampleMeasureModifications(sampleMeasureModifications);
+ result.setCatchModifications(catchModifications);
+ result.setFloatingObjectModifications(floatingObjectModifications);
+ result.setLengthLengthParameterNotFound(getLengthLengthParameterNotFoundBuilder());
+ result.setLengthWeightParameterNotFound(getLengthWeightParameterNotFoundBuilder());
+ return Optional.of(result);
}
public Set<String> getLengthWeightParameterNotFoundBuilder() {
@@ -111,90 +106,22 @@ public class ActivityConsolidateResultBuilder {
return lengthLengthParameterNotFoundBuilder;
}
- void flushDcpModification(FloatingObjectConsolidateResult result) {
- dcpModificationBuilder.addAll(result.getFloatingObjectModifications());
+ void flushFloatingObjectModification(FloatingObjectConsolidateResult result) {
+ floatingObjectModificationBuilder.addAll(result.getModifications());
}
- void flushSampleMeasureModification(SampleMeasure targetLength, String... propertyNamesModified) {
-
- Species species = targetLength.getSpecies();
- String speciesLabel = decorate(species);
+ void flushSampleMeasureModification(SampleMeasure sampleMeasure, String... propertyNamesModified) {
for (String modifiedProperty : propertyNamesModified) {
- if (modifiedProperty.equals(SampleMeasure.PROPERTY_LENGTH)) {
- SampleMeasureModification element = new SampleMeasureModification();
- element.setId(targetLength.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(SampleMeasure.PROPERTY_LENGTH);
- element.setNewValue(targetLength.getLength());
- sampleMeasureObsModificationBuilder.add(element);
- } else if (modifiedProperty.equals(SampleMeasure.PROPERTY_WEIGHT)) {
- SampleMeasureModification element = new SampleMeasureModification();
- element.setId(targetLength.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(SampleMeasure.PROPERTY_LENGTH);
- element.setNewValue(targetLength.getLength());
- sampleMeasureObsModificationBuilder.add(element);
- }
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(sampleMeasure, modifiedProperty);
+ sampleMeasureModificationBuilder.add(element);
}
}
void flushCatchModification(Catch aCatch, String... propertyNamesModified) {
-
- Species species = aCatch.getSpecies();
- String speciesLabel = decorate(species);
for (String modifiedProperty : propertyNamesModified) {
- switch (modifiedProperty) {
- case Catch.PROPERTY_MEAN_LENGTH: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_MEAN_LENGTH);
- element.setNewValue(aCatch.getMeanLength());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getMeanLengthComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- case Catch.PROPERTY_MEAN_WEIGHT: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_MEAN_WEIGHT);
- element.setNewValue(aCatch.getMeanWeight());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getMeanWeightComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- case Catch.PROPERTY_CATCH_WEIGHT: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_CATCH_WEIGHT);
- element.setNewValue(aCatch.getCatchWeight());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getCatchWeightComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- case Catch.PROPERTY_TOTAL_COUNT: {
-
- CatchModification element = new CatchModification();
- element.setCatchId(aCatch.getTopiaId());
- element.setSpeciesLabel(speciesLabel);
- element.setPropertyName(Catch.PROPERTY_TOTAL_COUNT);
- element.setNewValue(aCatch.getTotalCount());
-// element.computeValueSource = I18nEnumUtil.getLabel(locale, aCatches.getTotalCountComputedSource());
- catchObsModificationBuilder.add(element);
-
- break;
- }
- }
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(aCatch, modifiedProperty);
+ catchModificationBuilder.add(element);
}
-
}
ActivityConsolidateResultBuilder registerLengthWeightParameterNotFound(Species species, Ocean ocean, Sex sex, Date routeDate) {
@@ -228,6 +155,7 @@ public class ActivityConsolidateResultBuilder {
this.newSchoolType = newSchoolType;
return this;
}
+
//FIXME use decorator
private String decorate(Species species) {
StringBuilder builder = new StringBuilder();
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/data/ps/ConsolidateDataServiceFixtures.java
=====================================
@@ -68,8 +68,8 @@ public class ConsolidateDataServiceFixtures extends GeneratedConsolidateDataServ
Optional<FloatingObjectConsolidateResult> optionalResult = engine.consolidate(request);
Assert.assertTrue(optionalResult.isPresent());
FloatingObjectConsolidateResult result = optionalResult.get();
- Assert.assertNotNull(result.getFloatingObjectModifications());
- Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectLogbook.count"), result.getFloatingObjectModifications().size());
+ Assert.assertNotNull(result.getModifications());
+ Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectLogbook.count"), result.getModifications().size());
}
{
String id = getProperty("consolidateFloatingObjectObservation.id");
@@ -84,8 +84,8 @@ public class ConsolidateDataServiceFixtures extends GeneratedConsolidateDataServ
Optional<FloatingObjectConsolidateResult> optionalResult = engine.consolidate(request);
Assert.assertTrue(optionalResult.isPresent());
FloatingObjectConsolidateResult result = optionalResult.get();
- Assert.assertNotNull(result.getFloatingObjectModifications());
- Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectObservation.count"), result.getFloatingObjectModifications().size());
+ Assert.assertNotNull(result.getModifications());
+ Assert.assertEquals(getIntegerProperty("consolidateFloatingObjectObservation.count"), result.getModifications().size());
}
}
=====================================
toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModifications.java
=====================================
@@ -24,10 +24,10 @@ package fr.ird.observe.dto;
import io.ultreia.java4all.bean.JavaBean;
import io.ultreia.java4all.bean.monitor.BeanMonitor;
+import io.ultreia.java4all.util.json.JsonAware;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import java.io.Serializable;
import java.util.LinkedHashSet;
import java.util.Optional;
import java.util.Set;
@@ -38,17 +38,17 @@ import java.util.Set;
* @author Tony Chemit - dev(a)tchemit.fr
* @since 9.0.0
*/
-public class DtoPropertyModifications implements ObserveDto {
+public class DtoPropertyModifications implements JsonAware {
private static final Logger log = LogManager.getLogger(DtoPropertyModifications.class);
private final String id;
private final String label;
- private final Set<DtoPropertyModification> properties;
+ private final Set<JavaBeanPropertyModification> properties;
private final String lengthWeightParameterNotFound;
public static abstract class Builder<R extends DtoPropertyModifications> {
private final BeanMonitor monitor;
- private final Set<DtoPropertyModification> modifications = new LinkedHashSet<>();
+ private final Set<JavaBeanPropertyModification> modifications = new LinkedHashSet<>();
private String id;
private String label;
private String lengthWeightParameterNotFound;
@@ -57,7 +57,7 @@ public class DtoPropertyModifications implements ObserveDto {
monitor = new BeanMonitor(propertyNames);
}
- protected void watch(IdDto dto) {
+ protected void watch(JavaBean dto) {
modifications.clear();
id = label = lengthWeightParameterNotFound = null;
monitor.setBean(dto);
@@ -80,13 +80,13 @@ public class DtoPropertyModifications implements ObserveDto {
return Optional.of(result);
}
- protected abstract R createResult(String id, String label, Set<DtoPropertyModification> modifications, String lengthWeightParameterNotFound);
+ protected abstract R createResult(String id, String label, Set<JavaBeanPropertyModification> modifications, String lengthWeightParameterNotFound);
public void flushToResult(IdDto dto, String... propertyNamesModified) {
this.id = dto.getId();
this.label = dto.toString();
for (String modifiedProperty : propertyNamesModified) {
- DtoPropertyModification element = new DtoPropertyModification(dto, modifiedProperty);
+ JavaBeanPropertyModification element = new JavaBeanPropertyModification(dto, modifiedProperty);
modifications.add(element);
}
}
@@ -99,7 +99,7 @@ public class DtoPropertyModifications implements ObserveDto {
}
}
- public DtoPropertyModifications(String id, String label, Set<DtoPropertyModification> properties, String lengthWeightParameterNotFound) {
+ public DtoPropertyModifications(String id, String label, Set<JavaBeanPropertyModification> properties, String lengthWeightParameterNotFound) {
this.id = id;
this.label = label;
this.properties = properties;
@@ -114,7 +114,7 @@ public class DtoPropertyModifications implements ObserveDto {
return label;
}
- public Set<DtoPropertyModification> getProperties() {
+ public Set<JavaBeanPropertyModification> getProperties() {
return properties;
}
@@ -122,10 +122,7 @@ public class DtoPropertyModifications implements ObserveDto {
return lengthWeightParameterNotFound;
}
- public void flushToDto(JavaBean dto) {
- properties.forEach(modification -> {
- Serializable newValue = modification.getNewValue();
- dto.set(modification.getPropertyName(), newValue);
- });
+ public void flushToBean(JavaBean bean) {
+ properties.forEach(modification -> modification.flushToBean(bean));
}
}
=====================================
toolkit/api/src/main/java/fr/ird/observe/dto/DtoPropertyModification.java → toolkit/api/src/main/java/fr/ird/observe/dto/JavaBeanPropertyModification.java
=====================================
@@ -22,28 +22,35 @@ package fr.ird.observe.dto;
* #L%
*/
+import io.ultreia.java4all.bean.JavaBean;
+import io.ultreia.java4all.util.json.JsonAware;
+
import java.io.Serializable;
import java.util.Objects;
/**
- * Represents a modification on a property of a {@link IdDto}.
+ * To keep a javaBean property modification.
* <p>
- * Created on 30/08/2020.
+ * Created on 15/02/2023.
*
* @author Tony Chemit - dev(a)tchemit.fr
- * @since 8.1.0
+ * @since 9.0.26
*/
-public class DtoPropertyModification implements ObserveDto {
+public class JavaBeanPropertyModification implements JsonAware {
private final String id;
private final String propertyName;
private final Serializable newValue;
- public DtoPropertyModification(IdDto dto, String propertyName) {
+ public JavaBeanPropertyModification(IdDto dto, String propertyName) {
this(Objects.requireNonNull(dto).getId(), propertyName, dto.get(propertyName));
}
- public DtoPropertyModification(String id, String propertyName, Serializable newValue) {
+ public JavaBeanPropertyModification(JavaBean bean, String propertyName) {
+ this(bean.get(ToolkitId.PROPERTY_TOOLKIT_ID), propertyName, bean.get(propertyName));
+ }
+
+ public JavaBeanPropertyModification(String id, String propertyName, Serializable newValue) {
this.id = id;
this.propertyName = propertyName;
this.newValue = newValue;
@@ -61,4 +68,9 @@ public class DtoPropertyModification implements ObserveDto {
return newValue;
}
+ public void flushToBean(JavaBean bean) {
+ Serializable newValue = getNewValue();
+ bean.set(getPropertyName(), newValue);
+ }
}
+
=====================================
toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/DtoPropertyModificationAdapter.java → toolkit/api/src/main/java/fr/ird/observe/spi/json/toolkit/JavaBeanPropertyModificationAdapter.java
=====================================
@@ -30,7 +30,7 @@ import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
-import fr.ird.observe.dto.DtoPropertyModification;
+import fr.ird.observe.dto.JavaBeanPropertyModification;
import io.ultreia.java4all.util.json.JsonAdapter;
import java.io.Serializable;
@@ -43,32 +43,36 @@ import java.lang.reflect.Type;
* @since 8.1.0
*/
@AutoService(JsonAdapter.class)
-public class DtoPropertyModificationAdapter implements JsonDeserializer<DtoPropertyModification>, JsonSerializer<DtoPropertyModification>, JsonAdapter {
+public class JavaBeanPropertyModificationAdapter implements JsonDeserializer<JavaBeanPropertyModification>, JsonSerializer<JavaBeanPropertyModification>, JsonAdapter {
+
+ public static final String ID = "id";
+ public static final String PROPERTY_NAME = "propertyName";
+ public static final String TYPE = "type";
+ public static final String NEW_VALUE = "newValue";
+
@Override
public Class<?> type() {
- return DtoPropertyModification.class;
+ return JavaBeanPropertyModification.class;
}
-
@Override
- public DtoPropertyModification deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
- JsonObject reportVariableJson = json.getAsJsonObject();
-
- String dcpId = context.deserialize(reportVariableJson.get("dcpId"), String.class);
- String propertyName = context.deserialize(reportVariableJson.get("propertyName"), String.class);
- Class<?> type = context.deserialize(reportVariableJson.get("type"), Class.class);
- Serializable newValue1 = context.deserialize(reportVariableJson.get("newValue"), type);
- return new DtoPropertyModification(dcpId, propertyName, newValue1);
+ public JavaBeanPropertyModification deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
+ JsonObject jsonObject = json.getAsJsonObject();
+ String dcpId = context.deserialize(jsonObject.get(ID), String.class);
+ String propertyName = context.deserialize(jsonObject.get(PROPERTY_NAME), String.class);
+ Class<?> type = context.deserialize(jsonObject.get(TYPE), Class.class);
+ Serializable newValue = context.deserialize(jsonObject.get(NEW_VALUE), type);
+ return new JavaBeanPropertyModification(dcpId, propertyName, newValue);
}
@Override
- public JsonElement serialize(DtoPropertyModification src, Type typeOfSrc, JsonSerializationContext context) {
+ public JsonElement serialize(JavaBeanPropertyModification src, Type typeOfSrc, JsonSerializationContext context) {
JsonObject result = new JsonObject();
- result.add("dcpId", context.serialize(src.getId()));
- result.add("propertyName", context.serialize(src.getPropertyName()));
+ result.add(ID, context.serialize(src.getId()));
+ result.add(PROPERTY_NAME, context.serialize(src.getPropertyName()));
Serializable newValue = src.getNewValue();
- result.add("type", context.serialize(newValue == null ? String.class : newValue.getClass()));
- result.add("newValue", context.serialize(newValue));
+ result.add(TYPE, context.serialize(newValue == null ? String.class : newValue.getClass()));
+ result.add(NEW_VALUE, context.serialize(newValue));
return result;
}
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/46e0163d062c9d04e71e3b6af…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/46e0163d062c9d04e71e3b6af…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 2 commits: Migration - Sur les captures, suppression de la méthode de mesure de poids si...
by Tony CHEMIT (@tchemit) 15 Feb '23
by Tony CHEMIT (@tchemit) 15 Feb '23
15 Feb '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
4567a4c5 by Tony Chemit at 2023-02-15T10:54:06+01:00
Migration - Sur les captures, suppression de la méthode de mesure de poids si le poids n'est pas déclaré, ou qu'il est calculé dans l'action de consolidation - See #2628
- - - - -
9669eafb by Tony Chemit at 2023-02-15T10:54:55+01:00
Consolidate - Sur les captures, suppression de la méthode de mesure de poids si le poids n'est pas déclaré, ou qu'il est calculé dans l'action de consolidation - See #2628
- - - - -
3 changed files:
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java
- core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_1.java
- + core/persistence/migration/src/main/resources/db/migration/v9/9.1/08_fix_ps_observation_catch_weightMeasureMethod-common.sql
Changes:
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java
=====================================
@@ -126,13 +126,14 @@ public class TripConsolidateEngine {
SampleMeasure.PROPERTY_WEIGHT,
SampleMeasure.PROPERTY_IS_WEIGHT_COMPUTED);
- BeanMonitor nonTargetCatchMonitor = new BeanMonitor(
+ BeanMonitor catchMonitor = new BeanMonitor(
Catch.PROPERTY_MEAN_LENGTH,
Catch.PROPERTY_MEAN_LENGTH_COMPUTED_SOURCE,
Catch.PROPERTY_MEAN_WEIGHT,
Catch.PROPERTY_MEAN_WEIGHT_COMPUTED_SOURCE,
Catch.PROPERTY_CATCH_WEIGHT,
Catch.PROPERTY_CATCH_WEIGHT_COMPUTED_SOURCE,
+ Catch.PROPERTY_WEIGHT_MEASURE_METHOD,
Catch.PROPERTY_TOTAL_COUNT,
Catch.PROPERTY_TOTAL_COUNT_COMPUTED_SOURCE);
@@ -196,7 +197,7 @@ public class TripConsolidateEngine {
activityContext.activityObs = activity;
activityContext.sampleMeasureObsMonitor = sampleMeasureMonitor;
activityContext.sampleObsMonitor = sampleMonitor;
- activityContext.catchObsMonitor = nonTargetCatchMonitor;
+ activityContext.catchObsMonitor = catchMonitor;
activityContext.floatingObjectConsolidateEngine = floatingObjectConsolidateEngine;
activityContext.activityPrefix = activityPrefix;
try {
@@ -267,6 +268,7 @@ public class TripConsolidateEngine {
for (Catch aCatch : set.getCatches()) {
activityContext.watchCatch(aCatch);
updateCatch(activityContext, aCatch);
+ updateCatchWeightMeasureMethod(aCatch);
activityContext.flushCatch();
}
}
@@ -355,6 +357,14 @@ public class TripConsolidateEngine {
computeCatchMeanValues(aCatch, lengthWeightParameter);
}
+ private void updateCatchWeightMeasureMethod(Catch aCatch) {
+ if (aCatch.getWeightMeasureMethod() != null && (aCatch.getCatchWeight() == null || aCatch.getCatchWeightComputedSource() != null)) {
+ // remove measure method when no catchWeight or catchWeight is computed
+ // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2628
+ aCatch.setWeightMeasureMethod(null);
+ }
+ }
+
private void updateCatchByLengthWeightRelation(Catch aCatch,
LengthWeightParameter lengthWeightParameter) {
// calcul via le paramétrage taille - poids
=====================================
core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_1.java
=====================================
@@ -92,8 +92,8 @@ public class DataSourceMigrationForVersion_9_1 extends ByMajorMigrationVersionRe
public DataSourceMigrationForVersion_9_1() {
super(Version.valueOf("9.1"), true);
- ByMajorMigrationVersionResource.createResourceScriptVariables(this, "2022-09-14", "2022-09-14 00:00:00.000000");
- idFactory = new TopiaIdFactoryForBulkSupport(LocalDateTime.of(2022, 9, 14, 0, 0).toInstant(ZoneOffset.UTC).toEpochMilli());
+ ByMajorMigrationVersionResource.createResourceScriptVariables(this, "2023-02-14", "2023-02-14 00:00:00.000000");
+ idFactory = new TopiaIdFactoryForBulkSupport(LocalDateTime.of(2023, 2, 14, 0, 0).toInstant(ZoneOffset.UTC).toEpochMilli());
}
static class WellPlanStructure {
@@ -294,6 +294,9 @@ public class DataSourceMigrationForVersion_9_1 extends ByMajorMigrationVersionRe
// See fr.ird.observe.persistence.test.request.DeleteReferentialRequestTest
executor.addScript("07-tck", "fill-table-ps_localmarket_buyer");
}
+
+ executor.addScript("08", "fix_ps_observation_catch_weightMeasureMethod");
+
}
@Override
=====================================
core/persistence/migration/src/main/resources/db/migration/v9/9.1/08_fix_ps_observation_catch_weightMeasureMethod-common.sql
=====================================
@@ -0,0 +1,23 @@
+---
+-- #%L
+-- ObServe Core :: Persistence :: Migration
+-- %%
+-- Copyright (C) 2008 - 2023 IRD, Ultreia.io
+-- %%
+-- This program is free software: you can redistribute it and/or modify
+-- it under the terms of the GNU General Public License as
+-- published by the Free Software Foundation, either version 3 of the
+-- License, or (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public
+-- License along with this program. If not, see
+-- <http://www.gnu.org/licenses/gpl-3.0.html>.
+-- #L%
+---
+UPDATE ps_observation.Catch SET weightMeasureMethod = NULL, lastUpdateDate = ${CURRENT_TIMESTAMP}, topiaVersion = topiaVersion + 1 WHERE weightMeasureMethod IS NOT NULL AND (catchWeight IS NULL OR catchWeightComputedSource IS NOT NULL);
+UPDATE common.LastUpdateDate SET lastUpdateDate = ${CURRENT_TIMESTAMP} WHERE type ='fr.ird.observe.entities.data.ps.observation.Catch';
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/6bafd72708af93dd53fe8e32…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/6bafd72708af93dd53fe8e32…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] Consolidate - Sur les captures, suppression de la méthode de mesure de poids...
by Tony CHEMIT (@tchemit) 15 Feb '23
by Tony CHEMIT (@tchemit) 15 Feb '23
15 Feb '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
a49d2063 by Tony Chemit at 2023-02-15T10:55:07+01:00
Consolidate - Sur les captures, suppression de la méthode de mesure de poids si le poids n'est pas déclaré, ou qu'il est calculé dans l'action de consolidation - See #2628
- - - - -
1 changed file:
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java
Changes:
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripConsolidateEngine.java
=====================================
@@ -126,13 +126,14 @@ public class TripConsolidateEngine {
SampleMeasure.PROPERTY_WEIGHT,
SampleMeasure.PROPERTY_IS_WEIGHT_COMPUTED);
- BeanMonitor nonTargetCatchMonitor = new BeanMonitor(
+ BeanMonitor catchMonitor = new BeanMonitor(
Catch.PROPERTY_MEAN_LENGTH,
Catch.PROPERTY_MEAN_LENGTH_COMPUTED_SOURCE,
Catch.PROPERTY_MEAN_WEIGHT,
Catch.PROPERTY_MEAN_WEIGHT_COMPUTED_SOURCE,
Catch.PROPERTY_CATCH_WEIGHT,
Catch.PROPERTY_CATCH_WEIGHT_COMPUTED_SOURCE,
+ Catch.PROPERTY_WEIGHT_MEASURE_METHOD,
Catch.PROPERTY_TOTAL_COUNT,
Catch.PROPERTY_TOTAL_COUNT_COMPUTED_SOURCE);
@@ -196,7 +197,7 @@ public class TripConsolidateEngine {
activityContext.activityObs = activity;
activityContext.sampleMeasureObsMonitor = sampleMeasureMonitor;
activityContext.sampleObsMonitor = sampleMonitor;
- activityContext.catchObsMonitor = nonTargetCatchMonitor;
+ activityContext.catchObsMonitor = catchMonitor;
activityContext.floatingObjectConsolidateEngine = floatingObjectConsolidateEngine;
activityContext.activityPrefix = activityPrefix;
try {
@@ -267,6 +268,7 @@ public class TripConsolidateEngine {
for (Catch aCatch : set.getCatches()) {
activityContext.watchCatch(aCatch);
updateCatch(activityContext, aCatch);
+ updateCatchWeightMeasureMethod(aCatch);
activityContext.flushCatch();
}
}
@@ -355,6 +357,14 @@ public class TripConsolidateEngine {
computeCatchMeanValues(aCatch, lengthWeightParameter);
}
+ private void updateCatchWeightMeasureMethod(Catch aCatch) {
+ if (aCatch.getWeightMeasureMethod() != null && (aCatch.getCatchWeight() == null || aCatch.getCatchWeightComputedSource() != null)) {
+ // remove measure method when no catchWeight or catchWeight is computed
+ // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2628
+ aCatch.setWeightMeasureMethod(null);
+ }
+ }
+
private void updateCatchByLengthWeightRelation(Catch aCatch,
LengthWeightParameter lengthWeightParameter) {
// calcul via le paramétrage taille - poids
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/a49d206396a8db7de7b0be5e2…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/a49d206396a8db7de7b0be5e2…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 2 commits: Update Public API Documentation
by Tony CHEMIT (@tchemit) 14 Feb '23
by Tony CHEMIT (@tchemit) 14 Feb '23
14 Feb '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
5fde2969 by Tony Chemit at 2023-02-14T12:37:38+01:00
Update Public API Documentation
- - - - -
6bafd727 by Tony Chemit at 2023-02-14T12:39:58+01:00
Update changelog for v.9.1.0-RC-1 [skip CI]
- - - - -
30 changed files:
- CHANGELOG.md
- server/runner/src/main/webResources/doc/api/public/data/ll/common/GearUseFeatures/validation-create-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/common/GearUseFeatures/validation-create.json
- server/runner/src/main/webResources/doc/api/public/data/ll/common/GearUseFeatures/validation-update-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/common/GearUseFeatures/validation-update.json
- server/runner/src/main/webResources/doc/api/public/data/ll/common/GearUseFeaturesMeasurement/validation-create-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/common/GearUseFeaturesMeasurement/validation-create.json
- server/runner/src/main/webResources/doc/api/public/data/ll/common/GearUseFeaturesMeasurement/validation-update-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/common/GearUseFeaturesMeasurement/validation-update.json
- server/runner/src/main/webResources/doc/api/public/data/ll/landing/Landing/validation-create-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/landing/Landing/validation-create.json
- server/runner/src/main/webResources/doc/api/public/data/ll/landing/Landing/validation-update-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/landing/Landing/validation-update.json
- server/runner/src/main/webResources/doc/api/public/data/ll/landing/LandingPart/validation-create-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/landing/LandingPart/validation-create.json
- server/runner/src/main/webResources/doc/api/public/data/ll/landing/LandingPart/validation-update-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/landing/LandingPart/validation-update.json
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/Activity/validation-create-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/Activity/validation-create.json
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/Activity/validation-update-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/Activity/validation-update.json
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/ActivitySample/validation-create-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/ActivitySample/validation-create.json
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/ActivitySample/validation-update-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/ActivitySample/validation-update.json
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/BaitsComposition/validation-create-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/BaitsComposition/validation-create.json
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/BaitsComposition/validation-update-error.xml
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/BaitsComposition/validation-update.json
- server/runner/src/main/webResources/doc/api/public/data/ll/logbook/BranchlinesComposition/validation-create-error.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/96cc8c8b588734e22a37c28c…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/96cc8c8b588734e22a37c28c…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][pages] Site checkin for project ObServe (version 9.0.25)
by Tony CHEMIT (@tchemit) 14 Feb '23
by Tony CHEMIT (@tchemit) 14 Feb '23
14 Feb '23
Tony CHEMIT pushed to branch pages at ultreiaio / ird-observe
Commits:
33a30bbc by Tony Chemit at 2023-02-14T12:24:31+01:00
Site checkin for project ObServe (version 9.0.25)
- - - - -
8 changed files:
- + 9.0.25/CHANGELOG.html
- + 9.0.25/architecture-logicielle.html
- + 9.0.25/avdth/common.html
- + 9.0.25/avdth/index.html
- + 9.0.25/avdth/landing.html
- + 9.0.25/avdth/local_market.html
- + 9.0.25/avdth/logbook.html
- + 9.0.25/avdth/referential.html
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/33a30bbc6c374f6041bab659c…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/33a30bbc6c374f6041bab659c…
You're receiving this email because of your account on gitlab.com.
1
0
14 Feb '23
Tony CHEMIT deleted branch release/9.0.25 at ultreiaio / ird-observe
--
You're receiving this email because of your account on gitlab.com.
1
0
Tony CHEMIT pushed new tag v9.0.25 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/tree/v9.0.25
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][master-9.0.x] 27 commits: [jgitflow-maven-plugin]updating poms for 9.0.25-SNAPSHOT development[skip ci]
by Tony CHEMIT (@tchemit) 14 Feb '23
by Tony CHEMIT (@tchemit) 14 Feb '23
14 Feb '23
Tony CHEMIT pushed to branch master-9.0.x at ultreiaio / ird-observe
Commits:
169c174d by Tony Chemit at 2023-01-25T14:59:03+01:00
[jgitflow-maven-plugin]updating poms for 9.0.25-SNAPSHOT development[skip ci]
- - - - -
327d6223 by Tony Chemit at 2023-01-25T17:13:01+01:00
[jgitflow-maven-plugin]updating develop poms to master versions to avoid merge conflicts[skip ci]
- - - - -
b75a45ee by Tony Chemit at 2023-01-25T17:13:02+01:00
[jgitflow-maven-plugin]merging 'master-9.0.x' into 'develop-9.0.x'
- - - - -
48b2683b by Tony Chemit at 2023-01-25T17:13:04+01:00
[jgitflow-maven-plugin]Updating develop poms back to pre merge state[skip ci]
- - - - -
70762198 by Tony Chemit at 2023-02-05T09:41:21+01:00
PS-LocalMarket-Batch (use in form only ids for available packaging ids)
- - - - -
60b14612 by Tony Chemit at 2023-02-06T16:32:07+01:00
Update hibernate
- - - - -
0679edc1 by Tony Chemit at 2023-02-06T16:32:10+01:00
Update pom
- - - - -
1491d237 by Tony Chemit at 2023-02-07T11:57:37+01:00
Amélioration de l'éditeur des matériaux de DCP - Closes #2623
- - - - -
996ddb15 by Tony Chemit at 2023-02-07T11:58:43+01:00
Floating object - improve TypeTransmittingBuoyOperation code
- - - - -
de629db7 by Tony Chemit at 2023-02-12T13:35:42+01:00
Avdth - add fallback for Destination that does not exist in version 9.0.x
- - - - -
364e76a5 by Tony Chemit at 2023-02-12T13:35:46+01:00
update pom
Retirer observe.exe qui ne fonctionne pas et induit les utilisateurs en erreur - Closes #2616
- - - - -
395e074c by Tony Chemit at 2023-02-12T13:57:23+01:00
I18n - use common label for FloatingObjectPart.whenXXX properties
- - - - -
59915b16 by Tony Chemit at 2023-02-12T13:57:36+01:00
Api Dto - Introduce NoValidationDto for model classes that does not required any validation (mainly XXXStub classes), as a side effect they are not in the business project either
- - - - -
5b75fdc5 by Tony Chemit at 2023-02-12T13:57:36+01:00
Templates - Let's add notBlank tag-values on any String attributes in dto model at extract tag-values phase
- - - - -
42148260 by Tony Chemit at 2023-02-12T13:57:36+01:00
Api Dto - Improve dto autoTrim method (use now inheritance), and manage referential special attribute code
- - - - -
9fd6af25 by Tony Chemit at 2023-02-12T13:57:36+01:00
Model - Update notBlank tag-value (now generated by model)
- - - - -
f3cf64a9 by Tony Chemit at 2023-02-12T13:57:36+01:00
Validation - Update validators (for notBlank tag-value fields)
- - - - -
31e6a3d9 by Tony Chemit at 2023-02-12T13:57:36+01:00
Referential UI - do autoTrim on getBeanToSave method
- - - - -
9f8ae853 by Tony Chemit at 2023-02-12T14:33:23+01:00
Merge branch 'feature/issue_2622' into develop-9.0.x
[UI REFERENTIELS] Envisager un auto-trim droite et gauche sur les champs alphanumériques
- Closes #2622
- - - - -
b324e41e by Tony Chemit at 2023-02-13T16:32:55+01:00
Champ manquant sur un formulaire échantillons - Closes #2625
- - - - -
984da686 by Tony Chemit at 2023-02-14T10:08:49+01:00
Dto autoTrim - review some missing autoTrim (mainly on comment)
- - - - -
36df89ec by Tony Chemit at 2023-02-14T11:12:55+01:00
Sur le formulaire Captures, le champs méthode de mesure de poids doit être accessible uniquement si le poids est renseigné et non calculé - Closes #2627
- - - - -
3c802b7a by Tony Chemit at 2023-02-14T11:17:12+01:00
Update changelog for v.9.0.25 [skip CI]
- - - - -
683477d3 by Tony Chemit at 2023-02-14T11:18:24+01:00
[jgitflow-maven-plugin]updating poms for 9.0.26-SNAPSHOT development[skip ci]
- - - - -
186ac132 by Tony Chemit at 2023-02-14T11:29:42+01:00
Update Public API Documentation
- - - - -
02d32461 by Tony Chemit at 2023-02-14T11:31:35+01:00
[jgitflow-maven-plugin]updating poms for branch'release/9.0.25' with non-snapshot versions[skip ci]
- - - - -
9cb52f4e by Tony Chemit at 2023-02-14T12:16:31+01:00
[jgitflow-maven-plugin]merging 'release/9.0.25' into 'master-9.0.x'
- - - - -
30 changed files:
- CHANGELOG.md
- client/configuration/pom.xml
- client/core/pom.xml
- client/datasource/actions/pom.xml
- client/datasource/editor/api-test/pom.xml
- client/datasource/editor/api/pom.xml
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/table/ContentTableUIModelStates.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/referential/ContentReferentialUIModelStates.java
- client/datasource/editor/common/pom.xml
- client/datasource/editor/ll/pom.xml
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetDetailCompositionUIModelStates.java
- client/datasource/editor/pom.xml
- client/datasource/editor/ps/pom.xml
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/DcpUIAdapter.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/FloatingObjectPartsTreeNode.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/localmarket/SampleUIModelStates.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/localmarket/SurveyUIModelStates.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/localmarket/TripBatchUIModelStates.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/FloatingObjectUI.jaxx
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/FloatingObjectUIModelStates.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/SampleUIModelStates.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/FloatingObjectUI.jaxx
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/FloatingObjectUIModelStates.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/SampleUI.jaxx
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/SampleUI.jcss
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/SetCatchUI.jcss
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/SetCatchUITableModel.java
- client/datasource/editor/spi/pom.xml
- client/datasource/pom.xml
- client/pom.xml
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b6fbade3d3984c296b840e45…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/b6fbade3d3984c296b840e45…
You're receiving this email because of your account on gitlab.com.
1
0