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-9.0.x] 7 commits: Toolkit API - Use new JavaBeanMonitor API and review modifications API
by Tony CHEMIT (@tchemit) 24 Feb '23
by Tony CHEMIT (@tchemit) 24 Feb '23
24 Feb '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
6c50725a by Tony Chemit at 2023-02-24T15:43:42+01:00
Toolkit API - Use new JavaBeanMonitor API and review modifications API
- - - - -
bd47ef4b by Tony Chemit at 2023-02-24T15:51:18+01:00
Introduce core-api-dto-consolidation maven module
- - - - -
f22b19e3 by Tony Chemit at 2023-02-24T15:51:18+01:00
Log - add package fr.ird.observe.consolidation to info level (since it contains all logs of consolidation action and we want to show them in logs)
- - - - -
8c291406 by Tony Chemit at 2023-02-24T15:51:18+01:00
I18n - add missing label (for computed fields on consolidate action we are now showing in log and action messages)
- - - - -
7fc92d04 by Tony Chemit at 2023-02-24T15:51:18+01:00
Introduce core-persistence-consolidation maven Module and rethink consolidate API
- - - - -
199297ad by Tony Chemit at 2023-02-24T15:51:18+01:00
Consolidate action - add all action results in message
- - - - -
17b40e5f by Tony Chemit at 2023-02-24T16:10:12+01:00
Merge branch 'feature/issue_2630' into develop-9.0.x
Revue du code de l'action de consolidation et amélioration de la sortie de l'action
- Closes #2630
- - - - -
30 changed files:
- client/configuration/pom.xml
- client/configuration/src/main/filtered-resources/observe-log4j2.xml
- client/configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java
- client/datasource/actions/pom.xml
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
- client/datasource/editor/ps/pom.xml
- 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
- 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/observation/FloatingObjectUIModelStates.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- + core/api/dto-consolidation/.mvn/add-auto-service
- + core/api/dto-consolidation/.mvn/pom.gitflow.develop
- + core/api/dto-consolidation/.mvn/pom.gitflow.master
- + core/api/dto-consolidation/.mvn/pom.organizationId
- + core/api/dto-consolidation/.mvn/pom.projectId
- + core/api/dto-consolidation/.mvn/pom.stageId
- + core/api/dto-consolidation/LICENSE.txt
- + core/api/dto-consolidation/README.md
- + core/api/dto-consolidation/pom.xml
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/AtomicConsolidateAction.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/LengthWeightComputableAware.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/ConsolidateContext.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/common/consolidate/TripConsolidateRequest.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateRequest.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/common/consolidate/TripConsolidateResult.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/common/TripConsolidateResult.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeBiodegradableAction.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeNonEntanglingAction.java
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/data/ps/dcp/ComputeSimplifiedObjectTypeAction.java
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/3588b20bfe412dd0784fd30a…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/3588b20bfe412dd0784fd30a…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] 7 commits: Problème lors de la connexion à des bases distantes (la version du modèle de...
by Tony CHEMIT (@tchemit) 24 Feb '23
by Tony CHEMIT (@tchemit) 24 Feb '23
24 Feb '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
ffb9e77e by Tony Chemit at 2023-02-24T15:29:46+01:00
Problème lors de la connexion à des bases distantes (la version du modèle de la première base testée est conservée ensuite comme version de modèle requis) - Closes #2632
- - - - -
0c9d8538 by Tony Chemit at 2023-02-24T15:29:46+01:00
Supprimer de la génération des Dto de méthodes non utilisées (pour les propriétés à multiplicité n) - Closes #2633
- - - - -
b5d3c613 by Tony Chemit at 2023-02-24T15:29:46+01:00
Revue de la précision lors des calcul de RTP et RTT - Closes #2629
- - - - -
228c98be by Tony Chemit at 2023-02-24T15:29:46+01:00
update pom
can use now latest site plugin
set java-bean in eugene maven plugin dependencies
remove guava no more needed by java-bean
- - - - -
10873a90 by Tony Chemit at 2023-02-24T15:29:46+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
- - - - -
551a229c by Tony Chemit at 2023-02-24T15:29:47+01:00
Use new JavaBeanMonitor API
- - - - -
3588b20b by Tony Chemit at 2023-02-24T15:29:47+01:00
Ajouter des options dans la configuration du client pour configurer l'action de consolidation - Closes #2631
- - - - -
30 changed files:
- client/configuration/src/main/config/Client.ini
- client/configuration/src/main/i18n/getters/config.getter
- client/core/src/main/java/fr/ird/observe/client/datasource/config/form/ConfigurationModel.java
- client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java
- client/datasource/actions/src/main/i18n/getters/jaxx.getter
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jaxx
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jcss
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateUIHandler.java
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/ConsolidateConfigUIActionSupport.java
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/SelectConsolidationConfigFlag.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/config/TreeConfigUIModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetDetailCompositionUIModelStates.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/basket/BasketTableModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/section/SectionTableModel.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- client/runner/src/test/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/SetDetailCompositionValidatorServiceTest.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ll/observation/LonglinePositionContainerAware.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/FloatingObjectAware.java
- core/persistence/java/pom.xml
- 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/referential/common/LengthLengthParameterImpl.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/referential/common/LengthWeightParameterImpl.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/referential/common/LengthWeightParameters.java
- core/services/local/src/test/java/fr/ird/observe/services/local/service/referential/UnidirectionalResultIssue2208Test.java
- core/services/test/src/main/java/fr/ird/observe/services/service/data/ContainerServiceFixtures.java
- model/src/main/models/Observe/dto/attribute/ordered.properties
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/7615e7257a6831cccf702594…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/7615e7257a6831cccf702594…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Add more i18n keys for consolidate logs
by Tony CHEMIT (@tchemit) 24 Feb '23
by Tony CHEMIT (@tchemit) 24 Feb '23
24 Feb '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
64cbc51d by Tony Chemit at 2023-02-24T01:48:43+01:00
Add more i18n keys for consolidate logs
- - - - -
5 changed files:
- core/api/dto-decoration/src/main/i18n/getters/labels.getter
- core/services/i18n/src/main/i18n/translations/services_en_GB.properties
- core/services/i18n/src/main/i18n/translations/services_es_ES.properties
- core/services/i18n/src/main/i18n/translations/services_fr_FR.properties
- model/src/main/models/Observe/dto/class/i18nLabels.properties
Changes:
=====================================
core/api/dto-decoration/src/main/i18n/getters/labels.getter
=====================================
@@ -1180,6 +1180,8 @@ observe.data.ps.observation.SampleMeasure.action.save
observe.data.ps.observation.SampleMeasure.action.save.tip
observe.data.ps.observation.SampleMeasure.count
observe.data.ps.observation.SampleMeasure.count.short
+observe.data.ps.observation.SampleMeasure.isLengthComputed
+observe.data.ps.observation.SampleMeasure.isWeightComputed
observe.data.ps.observation.SampleMeasure.length
observe.data.ps.observation.SampleMeasure.length.short
observe.data.ps.observation.SampleMeasure.lengthCountWeight
=====================================
core/services/i18n/src/main/i18n/translations/services_en_GB.properties
=====================================
@@ -1409,6 +1409,8 @@ observe.data.ps.observation.SampleMeasure.action.save=Insert this sample measure
observe.data.ps.observation.SampleMeasure.action.save.tip=Insert this sample measure
observe.data.ps.observation.SampleMeasure.count=Count
observe.data.ps.observation.SampleMeasure.count.short=Count
+observe.data.ps.observation.SampleMeasure.isLengthComputed=Is length computed?
+observe.data.ps.observation.SampleMeasure.isWeightComputed=Is weight computed?
observe.data.ps.observation.SampleMeasure.length=Length
observe.data.ps.observation.SampleMeasure.length.short=Length
observe.data.ps.observation.SampleMeasure.length.validation.required=Weight or size must be filled.
=====================================
core/services/i18n/src/main/i18n/translations/services_es_ES.properties
=====================================
@@ -1409,6 +1409,8 @@ observe.data.ps.observation.SampleMeasure.action.save=Insertar este muestreo
observe.data.ps.observation.SampleMeasure.action.save.tip=Insertar muestreo de fauna asociada
observe.data.ps.observation.SampleMeasure.count=Grupo de tallas
observe.data.ps.observation.SampleMeasure.count.short=Grupo de tallas
+observe.data.ps.observation.SampleMeasure.isLengthComputed=Is length computed? \#TODO
+observe.data.ps.observation.SampleMeasure.isWeightComputed=Is weight computed? \#TODO
observe.data.ps.observation.SampleMeasure.length=Talla
observe.data.ps.observation.SampleMeasure.length.short=Talla
observe.data.ps.observation.SampleMeasure.length.validation.required=TODO
=====================================
core/services/i18n/src/main/i18n/translations/services_fr_FR.properties
=====================================
@@ -1409,6 +1409,8 @@ observe.data.ps.observation.SampleMeasure.action.save=Insérer cet échantillon
observe.data.ps.observation.SampleMeasure.action.save.tip=Insérer cet échantillon
observe.data.ps.observation.SampleMeasure.count=Effectif
observe.data.ps.observation.SampleMeasure.count.short=Effectif
+observe.data.ps.observation.SampleMeasure.isLengthComputed=La taille est-elle calculée ?
+observe.data.ps.observation.SampleMeasure.isWeightComputed=Le poids est-il calculé ?
observe.data.ps.observation.SampleMeasure.length=Longueur
observe.data.ps.observation.SampleMeasure.length.short=Longueur
observe.data.ps.observation.SampleMeasure.length.validation.required=Au moins une des valeurs (taille / poids) doit être renseignée.
=====================================
model/src/main/models/Observe/dto/class/i18nLabels.properties
=====================================
@@ -93,7 +93,7 @@ data.ps.observation.ObjectObservedSpecies=count,species,speciesStatus
data.ps.observation.ObjectSchoolEstimate=species,totalWeight,weightMeasureMethod
data.ps.observation.Route=activity,comment,date,endLogValue,startLogValue,choice.create.fin.veille.activity,choice.not.create.fin.veille.activity.and.continue,message.need.fin.veille.activity,action.move.all,action.move.all.choose.parent.message,action.move.all.choose.parent.title
data.ps.observation.Sample=species,sampleMeasure,speciesFate,length.computed.tip,length.observed.tip,message.cantAdd,weight.computed.tip,weight.observed.tip
-data.ps.observation.SampleMeasure=comment,count,length,sizeMeasureMethod,picturesReferences,sex,sizeMeasureType,species,speciesFate,tagNumber,weight,weightMeasureMethod,weightMeasureType,type,lengthCountWeight,picturesReferencesTagNumber
+data.ps.observation.SampleMeasure=comment,count,length,sizeMeasureMethod,picturesReferences,sex,sizeMeasureType,species,speciesFate,tagNumber,weight,weightMeasureMethod,weightMeasureType,type,lengthCountWeight,picturesReferencesTagNumber,isWeightComputed,isLengthComputed
data.ps.observation.SchoolEstimate=meanWeight,species,totalWeight,weightMeasureMethod
data.ps.observation.Set=currentDirection,currentMeasureDepth,currentSpeed,endDate,endTime,endTimeStamp,haulingEndTimeStamp,haulingStartTimeStamp,maxGearDepth,reasonForNullSet,schoolMeanDepth,schoolThickness,schoolTopDepth,schoolType,startTime,supportVesselName,generalTab,measurementsTab,message.information.schoolType,schoolType.not.fill,sonarUsedAvantSet
data.ps.observation.SpeciesFateDiscardMode=label,nullValue,falseValue,trueValue
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/64cbc51dbb3d308e00c051ac4…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/64cbc51dbb3d308e00c051ac4…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] Add more i18n keys for consolidate logs
by Tony CHEMIT (@tchemit) 24 Feb '23
by Tony CHEMIT (@tchemit) 24 Feb '23
24 Feb '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
7615e725 by Tony Chemit at 2023-02-24T01:50:20+01:00
Add more i18n keys for consolidate logs
- - - - -
5 changed files:
- core/api/dto-decoration/src/main/i18n/getters/labels.getter
- core/services/i18n/src/main/i18n/translations/services_en_GB.properties
- core/services/i18n/src/main/i18n/translations/services_es_ES.properties
- core/services/i18n/src/main/i18n/translations/services_fr_FR.properties
- model/src/main/models/Observe/dto/class/i18nLabels.properties
Changes:
=====================================
core/api/dto-decoration/src/main/i18n/getters/labels.getter
=====================================
@@ -1142,6 +1142,8 @@ observe.data.ps.observation.SampleMeasure.action.save
observe.data.ps.observation.SampleMeasure.action.save.tip
observe.data.ps.observation.SampleMeasure.count
observe.data.ps.observation.SampleMeasure.count.short
+observe.data.ps.observation.SampleMeasure.isLengthComputed
+observe.data.ps.observation.SampleMeasure.isWeightComputed
observe.data.ps.observation.SampleMeasure.length
observe.data.ps.observation.SampleMeasure.length.short
observe.data.ps.observation.SampleMeasure.lengthCountWeight
=====================================
core/services/i18n/src/main/i18n/translations/services_en_GB.properties
=====================================
@@ -1364,6 +1364,8 @@ observe.data.ps.observation.SampleMeasure.action.save=Insert this sample measure
observe.data.ps.observation.SampleMeasure.action.save.tip=Insert this sample measure
observe.data.ps.observation.SampleMeasure.count=Count
observe.data.ps.observation.SampleMeasure.count.short=Count
+observe.data.ps.observation.SampleMeasure.isLengthComputed=Is length computed?
+observe.data.ps.observation.SampleMeasure.isWeightComputed=Is weight computed?
observe.data.ps.observation.SampleMeasure.length=Length
observe.data.ps.observation.SampleMeasure.length.short=Length
observe.data.ps.observation.SampleMeasure.length.validation.required=Weight or size must be filled.
=====================================
core/services/i18n/src/main/i18n/translations/services_es_ES.properties
=====================================
@@ -1364,6 +1364,8 @@ observe.data.ps.observation.SampleMeasure.action.save=Insertar este muestreo
observe.data.ps.observation.SampleMeasure.action.save.tip=Insertar muestreo de fauna asociada
observe.data.ps.observation.SampleMeasure.count=Grupo de tallas
observe.data.ps.observation.SampleMeasure.count.short=Grupo de tallas
+observe.data.ps.observation.SampleMeasure.isLengthComputed=Is length computed? \#TODO
+observe.data.ps.observation.SampleMeasure.isWeightComputed=Is weight computed? \#TODO
observe.data.ps.observation.SampleMeasure.length=Talla
observe.data.ps.observation.SampleMeasure.length.short=Talla
observe.data.ps.observation.SampleMeasure.length.validation.required=TODO
=====================================
core/services/i18n/src/main/i18n/translations/services_fr_FR.properties
=====================================
@@ -1364,6 +1364,8 @@ observe.data.ps.observation.SampleMeasure.action.save=Insérer cet échantillon
observe.data.ps.observation.SampleMeasure.action.save.tip=Insérer cet échantillon
observe.data.ps.observation.SampleMeasure.count=Effectif
observe.data.ps.observation.SampleMeasure.count.short=Effectif
+observe.data.ps.observation.SampleMeasure.isLengthComputed=La taille est-elle calculée ?
+observe.data.ps.observation.SampleMeasure.isWeightComputed=Le poids est-il calculé ?
observe.data.ps.observation.SampleMeasure.length=Longueur
observe.data.ps.observation.SampleMeasure.length.short=Longueur
observe.data.ps.observation.SampleMeasure.length.validation.required=Au moins une des valeurs (taille / poids) doit être renseignée.
=====================================
model/src/main/models/Observe/dto/class/i18nLabels.properties
=====================================
@@ -91,7 +91,7 @@ data.ps.observation.ObjectObservedSpecies=count,species,speciesStatus
data.ps.observation.ObjectSchoolEstimate=species,totalWeight,weightMeasureMethod
data.ps.observation.Route=activity,comment,date,endLogValue,startLogValue,choice.create.fin.veille.activity,choice.not.create.fin.veille.activity.and.continue,message.need.fin.veille.activity,action.move.all,action.move.all.choose.parent.message,action.move.all.choose.parent.title
data.ps.observation.Sample=species,sampleMeasure,speciesFate,length.computed.tip,length.observed.tip,message.cantAdd,weight.computed.tip,weight.observed.tip
-data.ps.observation.SampleMeasure=comment,count,length,lengthMeasureMethod,picturesReferences,sex,sizeMeasureType,species,speciesFate,tagNumber,weight,weightMeasureMethod,weightMeasureType,type,lengthCountWeight,picturesReferencesTagNumber
+data.ps.observation.SampleMeasure=comment,count,length,lengthMeasureMethod,picturesReferences,sex,sizeMeasureType,species,speciesFate,tagNumber,weight,weightMeasureMethod,weightMeasureType,type,lengthCountWeight,picturesReferencesTagNumber,isWeightComputed,isLengthComputed
data.ps.observation.SchoolEstimate=meanWeight,species,totalWeight,weightMeasureMethod
data.ps.observation.Set=currentDirection,currentMeasureDepth,currentSpeed,endDate,endTime,endTimeStamp,haulingEndTimeStamp,haulingStartTimeStamp,maxGearDepth,reasonForNullSet,schoolMeanDepth,schoolThickness,schoolTopDepth,schoolType,startTime,supportVesselName,generalTab,measurementsTab,message.information.schoolType,schoolType.not.fill,sonarUsedAvantSet
data.ps.observation.SpeciesFateDiscardMode=label,nullValue,falseValue,trueValue
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/7615e7257a6831cccf7025942…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/7615e7257a6831cccf7025942…
You're receiving this email because of your account on gitlab.com.
1
0
24 Feb '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
17378ffb by Tony Chemit at 2023-02-23T23:46:49+01:00
clean pom
update pom
set java-bean in eugene maven plugin dependencies
remove guava no more needed by java-bean
- - - - -
10403e6e by Tony Chemit at 2023-02-23T23:46:54+01:00
Template Dto - Do not generate extra methods for multiple properties
- - - - -
c76af3de by Tony Chemit at 2023-02-23T23:48:09+01:00
Dto - FloatingObject.transmittingBuoy is a list
- - - - -
85ee5943 by Tony Chemit at 2023-02-23T23:48:13+01:00
Dto - move FloatingObjectAdapter to a better package
- - - - -
7e4598bb by Tony Chemit at 2023-02-23T23:52:39+01:00
Persistence - introduce core-persistence-consolidation maven module and refactor consolidation code
Dto - introduce core-api-dto-consolidation maven module and refactor consolidation code
Use new JavaBeanMonitor API
Closes #2630
- - - - -
af7ac805 by Tony Chemit at 2023-02-23T23:52:51+01:00
Use new JavaBeanMonitor API
- - - - -
f92ee3d0 by Tony Chemit at 2023-02-23T23:53:51+01:00
can use now latest site plugin
- - - - -
2eab0cce by Tony Chemit at 2023-02-23T23:53:55+01:00
update pom
- - - - -
7d3c872e by Tony Chemit at 2023-02-23T23:53:59+01:00
Revue de la précision lors des calcul de RTP et RTT - Closes #2629
- - - - -
e224505d by Tony Chemit at 2023-02-24T01:29:49+01:00
Ajouter des options dans la configuration du client pour configurer l'action de consolidation - Closes #2631
- - - - -
30 changed files:
- client/configuration/pom.xml
- client/configuration/src/main/config/Client.ini
- client/configuration/src/main/filtered-resources/observe-log4j2.xml
- client/configuration/src/main/i18n/getters/config.getter
- client/configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java
- client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java
- client/datasource/actions/pom.xml
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/i18n/getters/jaxx.getter
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jaxx
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jcss
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateUIHandler.java
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/ConsolidateConfigUIActionSupport.java
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/SelectConsolidationConfigFlag.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/config/TreeConfigUIModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetDetailCompositionUIModelStates.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/basket/BasketTableModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/section/SectionTableModel.java
- client/datasource/editor/ps/pom.xml
- 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
- 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/observation/FloatingObjectUIModelStates.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- client/runner/src/test/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/SetDetailCompositionValidatorServiceTest.java
- + core/api/dto-consolidation/.mvn/add-auto-service
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/f902854f25ba93792e7d80de…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/f902854f25ba93792e7d80de…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] Ajouter des options dans la configuration du client pour configurer l'action...
by Tony CHEMIT (@tchemit) 24 Feb '23
by Tony CHEMIT (@tchemit) 24 Feb '23
24 Feb '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
b5cd2d6d by Tony Chemit at 2023-02-24T01:30:04+01:00
Ajouter des options dans la configuration du client pour configurer l'action de consolidation - Closes #2631
- - - - -
15 changed files:
- client/configuration/src/main/config/Client.ini
- client/configuration/src/main/i18n/getters/config.getter
- client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java
- client/datasource/actions/src/main/i18n/getters/jaxx.getter
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jaxx
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jcss
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateUIHandler.java
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/ConsolidateConfigUIActionSupport.java
- + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/SelectConsolidationConfigFlag.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- core/persistence/java/src/main/java/fr/ird/observe/entities/referential/common/LengthWeightParameters.java
Changes:
=====================================
client/configuration/src/main/config/Client.ini
=====================================
@@ -462,6 +462,18 @@ key = instance.validation.useDisabledReferential
type = Boolean
defaultValue = false
+[option consolidationFailIfLengthWeightParameterNotFound]
+description = observe.config.consolidation.failIfLengthWeightParameterNotFound
+key = instance.consolidation.failIfLengthWeightParameterNotFound
+type = Boolean
+defaultValue = false
+
+[option consolidationFailIfLengthLengthParameterNotFound]
+description = observe.config.consolidation.failIfLengthLengthParameterNotFound
+key = instance.consolidation.failIfLengthLengthParameterNotFound
+type = Boolean
+defaultValue = false
+
[option sizeMeasureTypeSeineObservationTargetSampleId]
description = observe.config.sizeMeasureType.seine.observation.targetSample
key = referential.sizeMeasureType.seine.observation.targetSample
=====================================
client/configuration/src/main/i18n/getters/config.getter
=====================================
@@ -19,6 +19,8 @@ observe.config.client.backupFiles.timeout.description
observe.config.client.feedbackFiles.timeout.description
observe.config.client.logFiles.timeout.description
observe.config.client.temporaryFiles.timeout.description
+observe.config.consolidation.failIfLengthLengthParameterNotFound
+observe.config.consolidation.failIfLengthWeightParameterNotFound
observe.config.coordinate.format
observe.config.db.locale
observe.config.dcpPresetsDirectory.description
=====================================
client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java
=====================================
@@ -271,6 +271,8 @@ public class ClientConfigUI extends JXTitledPanel implements WithClientUIContext
helper.addOption(ClientConfigOption.VALIDATION_SPEED_MAX_VALUE);
helper.addOption(ClientConfigOption.VALIDATION_LENGTH_WEIGHT_ENABLE);
helper.addOption(ClientConfigOption.VALIDATION_USE_DISABLED_REFERENTIAL);
+ helper.addOption(ClientConfigOption.CONSOLIDATION_FAIL_IF_LENGTH_WEIGHT_PARAMETER_NOT_FOUND);
+ helper.addOption(ClientConfigOption.CONSOLIDATION_FAIL_IF_LENGTH_LENGTH_PARAMETER_NOT_FOUND);
}
=====================================
client/datasource/actions/src/main/i18n/getters/jaxx.getter
=====================================
@@ -2,6 +2,8 @@ observe.Common.directory
observe.Common.file
observe.Common.global.progression.description
observe.Common.step.description
+observe.config.consolidation.failIfLengthLengthParameterNotFound
+observe.config.consolidation.failIfLengthWeightParameterNotFound
observe.config.ui.seineBycatchObservedSystem.description
observe.config.validation.lengthWeightEnable
observe.config.validation.speedEnable
@@ -12,6 +14,7 @@ observe.info.validation.credentials
observe.ui.action.show.properties
observe.ui.action.show.properties.tip
observe.ui.choice.cancel.tip
+observe.ui.datasource.editor.actions.consolidate.config
observe.ui.datasource.editor.actions.operation.configuration
observe.ui.datasource.editor.actions.operations
observe.ui.datasource.editor.actions.report.auto.copy.to.clipboard
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jaxx
=====================================
@@ -0,0 +1,102 @@
+<!--
+ #%L
+ ObServe Client :: DataSource :: Actions
+ %%
+ 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%
+ -->
+<JPanel id="consolidateConfig" layout="{new BorderLayout()}">
+
+ <import>
+ fr.ird.observe.client.datasource.actions.AdminUIModel
+ fr.ird.observe.client.datasource.actions.consolidate.actions.SelectConsolidationConfigFlag
+
+ org.nuiton.jaxx.widgets.number.NumberEditor
+
+ java.io.File
+
+ javax.swing.JComboBox
+
+ static io.ultreia.java4all.i18n.I18n.t
+ static fr.ird.observe.client.util.UIHelper.getStringValue
+ </import>
+
+ <ConsolidateUIHandler id='handler' initializer='getContextValue(ConsolidateUIHandler.class)'/>
+ <AdminUIModel id='model' initializer='getContextValue(AdminUIModel.class)'/>
+ <ConsolidateModel id='consolidateModel' initializer='model.getConsolidateModel()'/>
+
+ <script><![CDATA[
+public void destroy() {
+ model = null;
+ consolidateModel = null;
+}
+]]>
+ </script>
+
+ <JPanel constraints='BorderLayout.NORTH' layout='{new BorderLayout()}'>
+ <Table id="consolidateDataConfig" constraints='BorderLayout.NORTH'>
+
+ <row>
+ <cell anchor="west">
+ <JLabel id='consolidationFailIfLengthWeightParameterNotFoundLabel' styleClass="skipI18n"/>
+ </cell>
+ <cell weightx='1' fill="horizontal">
+ <JCheckBox id='consolidationFailIfLengthWeightParameterNotFound' styleClass="skipI18n"/>
+ </cell>
+ </row>
+ <row>
+ <cell anchor="west">
+ <JLabel id='consolidationFailIfLengthLengthParameterNotFoundLabel' styleClass="skipI18n"/>
+ </cell>
+ <cell weightx='1' fill="horizontal">
+ <JCheckBox id='consolidationFailIfLengthLengthParameterNotFound' styleClass="skipI18n"/>
+ </cell>
+ </row>
+ </Table>
+ <!--Table id='consolidationReportConfig' fill='both' constraints='BorderLayout.CENTER'>
+ <row>
+ <cell>
+ <JLabel id="consolidationReportDirectoryLabel"/>
+ </cell>
+ <cell weightx='1' fill="horizontal">
+ <JTextField id='consolidationReportDirectoryText'
+ onKeyReleased='getHandler().changeConsolidationReportDirectory(this, new File(((JTextField)event.getSource()).getText()))'/>
+ </cell>
+ <cell anchor="east">
+ <JButton id="chooseConsolidationReportFileAction"/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel id="consolidationReportFileLabel"/>
+ </cell>
+ <cell weightx='1' fill="horizontal" columns="2">
+ <JTextField
+ id='consolidationReportFilenameText'
+ onKeyReleased='getHandler().changeConsolidationReportFilename(this, ((JTextField)event.getSource()).getText())'/>
+ </cell>
+ </row>
+ </Table-->
+
+ </JPanel>
+<!-- <Table constraints='BorderLayout.SOUTH' weightx='1' weighty='1'>-->
+<!-- <row>-->
+<!-- <cell>-->
+<!-- <JLabel/>-->
+<!-- </cell>-->
+<!-- </row>-->
+<!-- </Table>-->
+
+</JPanel>
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jcss
=====================================
@@ -0,0 +1,62 @@
+/*
+ * #%L
+ * ObServe Client :: DataSource :: Actions
+ * %%
+ * 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%
+ */
+
+#consolidateDataConfig {
+ border:{new TitledBorder(t("observe.ui.datasource.editor.actions.consolidate.config") + " ")};
+}
+
+#consolidationFailIfLengthWeightParameterNotFoundLabel {
+ text:"observe.config.consolidation.failIfLengthWeightParameterNotFound";
+}
+
+#consolidationFailIfLengthWeightParameterNotFound {
+ selected:{consolidateModel.isConsolidationFailIfLengthWeightParameterNotFound()};
+}
+
+#consolidationFailIfLengthLengthParameterNotFoundLabel {
+ text:"observe.config.consolidation.failIfLengthLengthParameterNotFound";
+}
+
+#consolidationFailIfLengthLengthParameterNotFound {
+ selected:{consolidateModel.isConsolidationFailIfLengthLengthParameterNotFound()};
+}
+
+
+#consolidationReportConfig {
+ border:{new TitledBorder(t("observe.ui.datasource.editor.actions.consolidate.config.report") + " ")};
+}
+
+#consolidationReportDirectoryLabel {
+ text:"observe.Common.directory";
+}
+
+#consolidationReportDirectoryText {
+ text:{consolidateModel.getReportFile().getParent()};
+}
+
+#consolidationReportFileLabel {
+ text:"observe.Common.file";
+}
+
+#consolidationReportFilenameText {
+ text:{consolidateModel.getReportFile().getName()};
+}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java
=====================================
@@ -51,6 +51,9 @@ public class ConsolidateModel extends AdminActionModel {
*/
private final Set<String> alreadyDoneTripIds;
+ private boolean consolidationFailIfLengthWeightParameterNotFound;
+ private boolean consolidationFailIfLengthLengthParameterNotFound;
+
public ConsolidateModel() {
super(AdminStep.CONSOLIDATE);
this.alreadyDoneTripIds = new TreeSet<>();
@@ -81,6 +84,9 @@ public class ConsolidateModel extends AdminActionModel {
sourceModel.setRequiredReadOnReferential(true);
sourceModel.setRequiredReadOnData(true);
sourceModel.setRequiredWriteOnData(true);
+
+ setConsolidationFailIfLengthWeightParameterNotFound(getClientConfig().isConsolidationFailIfLengthWeightParameterNotFound());
+ setConsolidationFailIfLengthLengthParameterNotFound(getClientConfig().isConsolidationFailIfLengthLengthParameterNotFound());
}
@Override
@@ -95,4 +101,24 @@ public class ConsolidateModel extends AdminActionModel {
public void setTripProcessed(String tripId) {
alreadyDoneTripIds.add(tripId);
}
+
+ public boolean isConsolidationFailIfLengthWeightParameterNotFound() {
+ return consolidationFailIfLengthWeightParameterNotFound;
+ }
+
+ public void setConsolidationFailIfLengthWeightParameterNotFound(boolean consolidationFailIfLengthWeightParameterNotFound) {
+ boolean oldValue = this.consolidationFailIfLengthWeightParameterNotFound;
+ this.consolidationFailIfLengthWeightParameterNotFound = consolidationFailIfLengthWeightParameterNotFound;
+ firePropertyChange("consolidationFailIfLengthWeightParameterNotFound", oldValue, consolidationFailIfLengthWeightParameterNotFound);
+ }
+
+ public boolean isConsolidationFailIfLengthLengthParameterNotFound() {
+ return consolidationFailIfLengthLengthParameterNotFound;
+ }
+
+ public void setConsolidationFailIfLengthLengthParameterNotFound(boolean consolidationFailIfLengthLengthParameterNotFound) {
+ boolean oldValue = this.consolidationFailIfLengthLengthParameterNotFound;
+ this.consolidationFailIfLengthLengthParameterNotFound = consolidationFailIfLengthLengthParameterNotFound;
+ firePropertyChange("consolidationFailIfLengthLengthParameterNotFound", oldValue, consolidationFailIfLengthLengthParameterNotFound);
+ }
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateUIHandler.java
=====================================
@@ -23,6 +23,8 @@ package fr.ird.observe.client.datasource.actions.consolidate;
import fr.ird.observe.client.datasource.actions.AdminTabUIHandler;
import fr.ird.observe.client.datasource.actions.config.ConfigUI;
+import fr.ird.observe.client.datasource.actions.consolidate.actions.SelectConsolidationConfigFlag;
+import fr.ird.observe.client.util.UIHelper;
import org.nuiton.jaxx.runtime.spi.UIHandler;
import static io.ultreia.java4all.i18n.I18n.t;
@@ -43,6 +45,9 @@ public class ConsolidateUIHandler extends AdminTabUIHandler<ConsolidateUI> imple
protected void initConfig(ConfigUI configUI) {
super.initConfig(configUI);
configUI.getLeftSourceConfig().getSourceInfoLabel().setText(t("observe.ui.action.config.left.datasource.required.write.data"));
+ ConsolidateConfigUI extraConfig = new ConsolidateConfigUI(UIHelper.initialContext(configUI, this));
+ SelectConsolidationConfigFlag.init(extraConfig, extraConfig.getConsolidationFailIfLengthWeightParameterNotFound(), new SelectConsolidationConfigFlag("consolidationFailIfLengthWeightParameterNotFound", ConsolidateModel::isConsolidationFailIfLengthWeightParameterNotFound, ConsolidateModel::setConsolidationFailIfLengthWeightParameterNotFound, 5));
+ SelectConsolidationConfigFlag.init(extraConfig, extraConfig.getConsolidationFailIfLengthLengthParameterNotFound(), new SelectConsolidationConfigFlag("consolidationFailIfLengthLengthParameterNotFound", ConsolidateModel::isConsolidationFailIfLengthLengthParameterNotFound, ConsolidateModel::setConsolidationFailIfLengthLengthParameterNotFound, 6));
+ configUI.getExtraConfig().add(extraConfig);
}
-
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/ConsolidateConfigUIActionSupport.java
=====================================
@@ -0,0 +1,45 @@
+package fr.ird.observe.client.datasource.actions.consolidate.actions;
+
+/*-
+ * #%L
+ * ObServe Client :: DataSource :: Actions
+ * %%
+ * 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.client.datasource.actions.consolidate.ConsolidateConfigUI;
+import org.nuiton.jaxx.runtime.swing.action.JComponentActionSupport;
+
+import javax.swing.KeyStroke;
+
+/**
+ * Created on 24/02/2023.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.26
+ */
+public abstract class ConsolidateConfigUIActionSupport extends JComponentActionSupport<ConsolidateConfigUI> {
+
+ public ConsolidateConfigUIActionSupport(String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey) {
+ super(label, shortDescription, actionIcon, acceleratorKey);
+ }
+
+ public ConsolidateConfigUIActionSupport(String actionCommandKey, String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey) {
+ super(actionCommandKey, label, shortDescription, actionIcon, acceleratorKey);
+ }
+}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/SelectConsolidationConfigFlag.java
=====================================
@@ -0,0 +1,58 @@
+package fr.ird.observe.client.datasource.actions.consolidate.actions;
+
+/*-
+ * #%L
+ * ObServe Client :: DataSource :: Actions
+ * %%
+ * 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.client.datasource.actions.consolidate.ConsolidateModel;
+import fr.ird.observe.client.datasource.actions.consolidate.ConsolidateConfigUI;
+import fr.ird.observe.client.util.ObserveKeyStrokesSupport;
+
+import java.awt.event.ActionEvent;
+import java.util.function.BiConsumer;
+import java.util.function.Function;
+
+/**
+ * Created on 24/02/2023.
+ *
+ * @author Tony Chemit - dev(a)tchemit.fr
+ * @since 9.0.26
+ */
+public class SelectConsolidationConfigFlag extends ConsolidateConfigUIActionSupport {
+
+ private final Function<ConsolidateModel, Boolean> getter;
+ private final BiConsumer<ConsolidateModel, Boolean> setter;
+
+ public SelectConsolidationConfigFlag(String propertyName, Function<ConsolidateModel, Boolean> getter, BiConsumer<ConsolidateModel, Boolean> setter, int strokeIndex) {
+ super(SelectConsolidationConfigFlag.class.getName() + propertyName, "", null, null, ObserveKeyStrokesSupport.getFunctionKeyStroke(strokeIndex));
+ this.getter = getter;
+ this.setter = setter;
+ }
+
+ @Override
+ protected void doActionPerformed(ActionEvent e, ConsolidateConfigUI ui) {
+ ConsolidateModel validateModel = ui.getModel().getConsolidateModel();
+ boolean oldValue = getter.apply(validateModel);
+ setter.accept(validateModel, !oldValue);
+ }
+
+}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
=====================================
@@ -124,10 +124,8 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
}
TripConsolidateRequest request = new TripConsolidateRequest();
request.setTripId(tripId);
- //FIXME Add option in configuration
- request.setFailIfLengthWeightParameterNotFound(false);
- //FIXME Add option in configuration
- request.setFailIfLengthLengthParameterNotFound(false);
+ request.setFailIfLengthWeightParameterNotFound(stepModel.isConsolidationFailIfLengthWeightParameterNotFound());
+ request.setFailIfLengthLengthParameterNotFound(stepModel.isConsolidationFailIfLengthLengthParameterNotFound());
TripConsolidateResult result = consolidateDataService.consolidateTrip(simplifiedObjectTypeSpecializedRules, request);
if (result != null) {
=====================================
client/runner/src/main/i18n/translations/client-runner_en_GB.properties
=====================================
@@ -36,6 +36,8 @@ observe.config.client.backupFiles.timeout.description=Backup files delete (in ho
observe.config.client.feedbackFiles.timeout.description=Feedback files delete (in hours)
observe.config.client.logFiles.timeout.description=Log files delete (in hours)
observe.config.client.temporaryFiles.timeout.description=Temporary files delete (in hours)
+observe.config.consolidation.failIfLengthLengthParameterNotFound=In consolidate action, raise an error if a lengthLengthParameter is not found, otherwise add an warning in action
+observe.config.consolidation.failIfLengthWeightParameterNotFound=In consolidate action, raise an error if a lengthWeightParameter is not found, otherwise add an warning in action
observe.config.coordinate.format=Position format (DMD, DD, DMS)
observe.config.db.locale=Language of data source (fr_FR, en_GB or es_ES)
observe.config.dcpPresetsDirectory.description=Dcp presets directory
@@ -486,6 +488,7 @@ observe.ui.datasource.backup.done=[%s] Auto backup done (in %s)
observe.ui.datasource.backup.start=[%s] Start auto backup
observe.ui.datasource.editor.actions.activity.pairing=Activities pairing
observe.ui.datasource.editor.actions.consolidate=Consolidate data
+observe.ui.datasource.editor.actions.consolidate.config=Consolidate data configuration
observe.ui.datasource.editor.actions.consolidate.description=Consolidate observed data
observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Computed data for activity [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Some warnings were found for activity [%s] %s
=====================================
client/runner/src/main/i18n/translations/client-runner_es_ES.properties
=====================================
@@ -36,6 +36,8 @@ observe.config.client.backupFiles.timeout.description=Backup files delete (in ho
observe.config.client.feedbackFiles.timeout.description=Feedback files delete (in hours) \#TODO
observe.config.client.logFiles.timeout.description=Log files delete (in hours) \#TODO
observe.config.client.temporaryFiles.timeout.description=Temporary files delete (in hours) \#TODO
+observe.config.consolidation.failIfLengthLengthParameterNotFound=In consolidate action, raise an error if a lengthLengthParameter is not found, otherwise add an warning in action \#TODO
+observe.config.consolidation.failIfLengthWeightParameterNotFound=In consolidate action, raise an error if a lengthWeightParameter is not found, otherwise add an warning in action \#TODO
observe.config.coordinate.format=Formato de posición (DMD, DD, DMS)
observe.config.db.locale=Idioma del referencial (fr_FR, en_GB o es_ES)
observe.config.dcpPresetsDirectory.description=Dcp presets directory \#TODO
@@ -486,6 +488,7 @@ observe.ui.datasource.backup.done=[%s] Copia de seguridad automática realizada
observe.ui.datasource.backup.start=[%s] Inicio de copia de seguridad automática
observe.ui.datasource.editor.actions.activity.pairing=Activities pairing \#TODO
observe.ui.datasource.editor.actions.consolidate=Calcular los datos
+observe.ui.datasource.editor.actions.consolidate.config=Consolidate data configuration
observe.ui.datasource.editor.actions.consolidate.description=Calcular los datos que no fueron observados
observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Datos calculados para la actividad [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Some warnings were found for activity [%s] %s
=====================================
client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
=====================================
@@ -36,6 +36,8 @@ observe.config.client.backupFiles.timeout.description=Nettoyage des fichiers de
observe.config.client.feedbackFiles.timeout.description=Nettoyage des fichiers de retour d'expérience (en heures)
observe.config.client.logFiles.timeout.description=Nettoyage des fichiers de log (en heures)
observe.config.client.temporaryFiles.timeout.description=Nettoyage des fichiers temporaires (en heures)
+observe.config.consolidation.failIfLengthLengthParameterNotFound=Dans l'action de consolidation, déclencher une erreur si une relation taille-taille n'est pas trouvée, sinon consigner cela en avertissement de l'action
+observe.config.consolidation.failIfLengthWeightParameterNotFound=Dans l'action de consolidation, déclencher une erreur si une relation taille-poids n'est pas trouvée, sinon consigner cela en avertissement de l'action
observe.config.coordinate.format=Format des positions (DMD, DD, DMS)
observe.config.db.locale=La langue du référentiel (fr_FR, en_GB ou es_ES)
observe.config.dcpPresetsDirectory.description=Répertoire des pré-configurations de DCP
@@ -486,6 +488,7 @@ observe.ui.datasource.backup.done=[%s] Fin de la sauvegarde automatique (en %s)
observe.ui.datasource.backup.start=[%s] Début de la sauvegarde automatique
observe.ui.datasource.editor.actions.activity.pairing=Appairement des activités
observe.ui.datasource.editor.actions.consolidate=Calculer les données
+observe.ui.datasource.editor.actions.consolidate.config=Configuration de la consolidation
observe.ui.datasource.editor.actions.consolidate.description=Calculer les données non observées
observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Données calculées pour l'activité [%s] %s
observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Des avertissements ont été détectés pour l'activité [%s] %s
=====================================
core/persistence/java/src/main/java/fr/ird/observe/entities/referential/common/LengthWeightParameters.java
=====================================
@@ -81,6 +81,11 @@ public class LengthWeightParameters {
// }
if (list == null || list.isEmpty()) {
+ decoratorService.installDecorator(Species.class, species);
+ decoratorService.installDecorator(Ocean.class, ocean);
+ if (sex!=null) {
+ decoratorService.installDecorator(Sex.class, sex);
+ }
throw new LengthWeightParameterNotFoundException(species, ocean, sex, date);
}
@@ -102,7 +107,9 @@ public class LengthWeightParameters {
if (list.size() > 1) {
decoratorService.installDecorator(Species.class, species);
decoratorService.installDecorator(Ocean.class, ocean);
- decoratorService.installDecorator(Sex.class, sex);
+ if (sex!=null) {
+ decoratorService.installDecorator(Sex.class, sex);
+ }
decoratorService.installDecorator(LengthWeightParameter.class, list.stream());
throw new DuplicateLengthWeightParameterException(species, ocean, sex, date, list);
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/b5cd2d6d1d443b7f97746b60e…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/b5cd2d6d1d443b7f97746b60e…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] 9 commits: clean pom
by Tony CHEMIT (@tchemit) 23 Feb '23
by Tony CHEMIT (@tchemit) 23 Feb '23
23 Feb '23
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
654487d9 by Tony Chemit at 2023-02-22T09:27:01+01:00
clean pom
update pom
set java-bean in eugene maven plugin dependencies
remove guava no more needed by java-bean
- - - - -
e8858186 by Tony Chemit at 2023-02-22T09:27:01+01:00
Template Dto - Do not generate extra methods for multiple properties
- - - - -
fbca742f by Tony Chemit at 2023-02-22T09:27:01+01:00
Dto - FloatingObject.transmittingBuoy is a list
- - - - -
a9bb4206 by Tony Chemit at 2023-02-22T09:27:01+01:00
Dto - move FloatingObjectAdapter to a better package
- - - - -
cdaa2071 by Tony Chemit at 2023-02-23T23:45:44+01:00
Persistence - introduce core-persistence-consolidation maven module and refactor consolidation code
Dto - introduce core-api-dto-consolidation maven module and refactor consolidation code
Use new JavaBeanMonitor API
Closes #2630
- - - - -
b6b0c20d by Tony Chemit at 2023-02-23T23:45:44+01:00
Use new JavaBeanMonitor API
- - - - -
b9b441d8 by Tony Chemit at 2023-02-23T23:45:44+01:00
can use now latest site plugin
- - - - -
40d4510e by Tony Chemit at 2023-02-23T23:45:44+01:00
update pom
- - - - -
b06acf06 by Tony Chemit at 2023-02-23T23:45:44+01:00
Revue de la précision lors des calcul de RTP et RTT - Closes #2629
- - - - -
30 changed files:
- client/configuration/pom.xml
- client/configuration/src/main/filtered-resources/observe-log4j2.xml
- client/configuration/src/main/java/fr/ird/observe/client/configuration/ClientConfig.java
- client/datasource/actions/pom.xml
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/config/TreeConfigUIModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/SetDetailCompositionUIModelStates.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/basket/BasketTableModel.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/section/SectionTableModel.java
- client/datasource/editor/ps/pom.xml
- 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
- 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/observation/FloatingObjectUIModelStates.java
- client/runner/src/main/i18n/translations/client-runner_en_GB.properties
- client/runner/src/main/i18n/translations/client-runner_es_ES.properties
- client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
- client/runner/src/test/java/fr/ird/observe/client/datasource/editor/ll/data/observation/composition/SetDetailCompositionValidatorServiceTest.java
- + core/api/dto-consolidation/.mvn/add-auto-service
- + core/api/dto-consolidation/.mvn/pom.gitflow.develop
- + core/api/dto-consolidation/.mvn/pom.gitflow.master
- + core/api/dto-consolidation/.mvn/pom.organizationId
- + core/api/dto-consolidation/.mvn/pom.projectId
- + core/api/dto-consolidation/.mvn/pom.stageId
- + core/api/dto-consolidation/LICENSE.txt
- + core/api/dto-consolidation/README.md
- + core/api/dto-consolidation/pom.xml
- + core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/AtomicConsolidateAction.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/LengthWeightComputableAware.java → core/api/dto-consolidation/src/main/java/fr/ird/observe/consolidation/ConsolidateContext.java
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/2d3bbb6ce220ffe6c67546ee…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/2d3bbb6ce220ffe6c67546ee…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe] Deleted branch feature/issue_avdth_dcp
by Tony CHEMIT (@tchemit) 23 Feb '23
by Tony CHEMIT (@tchemit) 23 Feb '23
23 Feb '23
Tony CHEMIT deleted branch feature/issue_avdth_dcp at ultreiaio / ird-observe
--
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 2 commits: 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:
f98e4a20 by Tony Chemit at 2023-02-15T16:27:37+01:00
Consolidate - Improve API (Closes #2628)
- - - - -
f902854f by Tony Chemit at 2023-02-15T16:27:37+01:00
DataSource - Fix configuration altered by data source information
- - - - -
18 changed files:
- client/core/src/main/java/fr/ird/observe/client/datasource/config/form/ConfigurationModel.java
- 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/core/src/main/java/fr/ird/observe/client/datasource/config/form/ConfigurationModel.java
=====================================
@@ -277,9 +277,11 @@ public abstract class ConfigurationModel extends AbstractJavaBean implements Wit
public void setDataSourceInformation(ObserveDataSourceInformation dataSourceInformation) {
ObserveDataSourceInformation oldValue = getDataSourceInformation();
this.dataSourceInformation = dataSourceInformation;
- if (dataSourceInformation != null) {
- getConfiguration().setModelVersion(dataSourceInformation.getVersion());
- }
+ //FIXME Find out why we did this before ?
+ //FIXME the configuration should never be altered by information
+// if (dataSourceInformation != null) {
+// getConfiguration().setModelVersion(dataSourceInformation.getVersion());
+// }
firePropertyChange(DATASOURCE_INFORMATION_PROPERTY_NAME, oldValue, dataSourceInformation);
}
=====================================
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
=====================================
@@ -23,6 +23,7 @@ package fr.ird.observe.entities.data.ps.common;
*/
import fr.ird.observe.decoration.DecoratorService;
+import fr.ird.observe.dto.data.ActivityAware;
import fr.ird.observe.dto.data.ps.CatchComputedValueSource;
import fr.ird.observe.dto.data.ps.common.consolidate.TripConsolidateRequest;
import fr.ird.observe.dto.data.ps.common.consolidate.TripConsolidateResult;
@@ -36,7 +37,6 @@ import fr.ird.observe.dto.data.ps.observation.FloatingObjectDto;
import fr.ird.observe.dto.data.ps.observation.FloatingObjectPartDto;
import fr.ird.observe.dto.data.ps.observation.consolidate.ActivityConsolidateResult;
import fr.ird.observe.dto.data.ps.observation.consolidate.FloatingObjectConsolidateRequest;
-import fr.ird.observe.dto.referential.I18nReferentialHelper;
import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.ObserveTopiaDaoSupplier;
import fr.ird.observe.entities.ToolkitTopiaPersistenceContextSupport;
@@ -61,6 +61,7 @@ import fr.ird.observe.entities.referential.ps.common.SchoolType;
import fr.ird.observe.entities.referential.ps.common.SpeciesFate;
import fr.ird.observe.spi.service.ServiceContext;
import io.ultreia.java4all.bean.monitor.BeanMonitor;
+import io.ultreia.java4all.util.Dates;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -162,7 +163,7 @@ public class TripConsolidateEngine {
// add to result
localmarketBatchResults.add(r);
// flush back to entity
- r.flushToDto(batch);
+ r.flushToBean(batch);
});
}
@@ -182,8 +183,10 @@ public class TripConsolidateEngine {
log.debug(String.format("%s Skip activity (No set nor floating object found): %s", activityPrefix, activity.getTopiaId()));
continue;
}
-
- ActivityConsolidateResultBuilder resultBuilder = new ActivityConsolidateResultBuilder(applicationLocale, referenceLocale, activity.getTopiaId(), decorate(referenceLocale.ordinal(), activity));
+ activity.setTime(Dates.getDateAndTime(route.getDate(), activity.getTime(), true, true));
+ activity.registerDecorator(decoratorService.getDecoratorByType(Activity.class, ActivityAware.CLASSIFIER_WITH_ROUTE));
+ String activityLabel = activity.toString();
+ ActivityConsolidateResultBuilder resultBuilder = new ActivityConsolidateResultBuilder(applicationLocale, referenceLocale, activity.getTopiaId(), activityLabel);
ActivityConsolidateContext activityContext = new ActivityConsolidateContext();
activityContext.locale = applicationLocale;
@@ -193,11 +196,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 {
@@ -221,18 +224,20 @@ public class TripConsolidateEngine {
if (activityConsolidateResults.isEmpty() && localmarketBatchResults.isEmpty()) {
TripConsolidateResult = null;
} else {
- TripConsolidateResult = new TripConsolidateResult(tripId, decorate(referenceLocale.ordinal(), trip), activityConsolidateResults, localmarketBatchResults);
+ trip.registerDecorator(decoratorService.getDecoratorByType(Trip.class));
+ String tripLabel = trip.toString();
+ TripConsolidateResult = new TripConsolidateResult(tripId, tripLabel, activityConsolidateResults, localmarketBatchResults);
log.info(String.format("Found some modifications on trip: %s - %s", tripId, TripConsolidateResult.getTripLabel()));
}
return Optional.ofNullable(TripConsolidateResult);
}
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 +254,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 +274,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 +286,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 +338,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 +453,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);
}
@@ -612,20 +617,6 @@ public class TripConsolidateEngine {
}
}
- //FIXME use decorator
- private String decorate(int referenceLocale, Activity activity) {
- return String.format("%1$tH:%1$tM", activity.getTime())
- + " - " +
- I18nReferentialHelper.getLabel(referenceLocale, activity.getVesselActivity());
- }
-
- //FIXME use decorator
- private String decorate(int referenceLocale, Trip trip) {
- return String.format("%1$td/%1$tm/%1$tY", trip.getStartDate()) +
- " - " + String.format("%1$td/%1$tm/%1$tY", trip.getEndDate()) +
- " - " + I18nReferentialHelper.getLabel(referenceLocale, trip.getVessel());
- }
-
private boolean allCatchDataFilled(Catch aCatch) {
return !(aCatch.getCatchWeight() == null
|| aCatch.getTotalCount() == null
=====================================
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/-/compare/673cf35ecc523b9fc872f62d…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/673cf35ecc523b9fc872f62d…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] 2 commits: 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:
8287ea2a by Tony Chemit at 2023-02-15T16:27:04+01:00
Consolidate - Improve API (See #2628)
- - - - -
2d3bbb6c by Tony Chemit at 2023-02-15T16:27:04+01:00
DataSource - Fix configuration altered by data source information
- - - - -
18 changed files:
- client/core/src/main/java/fr/ird/observe/client/datasource/config/form/ConfigurationModel.java
- 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/core/src/main/java/fr/ird/observe/client/datasource/config/form/ConfigurationModel.java
=====================================
@@ -277,9 +277,11 @@ public abstract class ConfigurationModel extends AbstractJavaBean implements Wit
public void setDataSourceInformation(ObserveDataSourceInformation dataSourceInformation) {
ObserveDataSourceInformation oldValue = getDataSourceInformation();
this.dataSourceInformation = dataSourceInformation;
- if (dataSourceInformation != null) {
- getConfiguration().setModelVersion(dataSourceInformation.getVersion());
- }
+ //FIXME Find out why we did this before ?
+ //FIXME the configuration should never be altered by information
+// if (dataSourceInformation != null) {
+// getConfiguration().setModelVersion(dataSourceInformation.getVersion());
+// }
firePropertyChange(DATASOURCE_INFORMATION_PROPERTY_NAME, oldValue, dataSourceInformation);
}
=====================================
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
=====================================
@@ -23,6 +23,7 @@ package fr.ird.observe.entities.data.ps.common;
*/
import fr.ird.observe.decoration.DecoratorService;
+import fr.ird.observe.dto.data.ActivityAware;
import fr.ird.observe.dto.data.ps.CatchComputedValueSource;
import fr.ird.observe.dto.data.ps.common.consolidate.TripConsolidateRequest;
import fr.ird.observe.dto.data.ps.common.consolidate.TripConsolidateResult;
@@ -36,7 +37,6 @@ import fr.ird.observe.dto.data.ps.observation.FloatingObjectDto;
import fr.ird.observe.dto.data.ps.observation.FloatingObjectPartDto;
import fr.ird.observe.dto.data.ps.observation.consolidate.ActivityConsolidateResult;
import fr.ird.observe.dto.data.ps.observation.consolidate.FloatingObjectConsolidateRequest;
-import fr.ird.observe.dto.referential.I18nReferentialHelper;
import fr.ird.observe.dto.referential.ReferentialLocale;
import fr.ird.observe.entities.ObserveTopiaDaoSupplier;
import fr.ird.observe.entities.ToolkitTopiaPersistenceContextSupport;
@@ -61,6 +61,7 @@ import fr.ird.observe.entities.referential.ps.common.SchoolType;
import fr.ird.observe.entities.referential.ps.common.SpeciesFate;
import fr.ird.observe.spi.service.ServiceContext;
import io.ultreia.java4all.bean.monitor.BeanMonitor;
+import io.ultreia.java4all.util.Dates;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -162,7 +163,7 @@ public class TripConsolidateEngine {
// add to result
localmarketBatchResults.add(r);
// flush back to entity
- r.flushToDto(batch);
+ r.flushToBean(batch);
});
}
@@ -182,8 +183,10 @@ public class TripConsolidateEngine {
log.info(String.format("%s Skip activity (No set nor floating object found): %s", activityPrefix, activity.getTopiaId()));
continue;
}
-
- ActivityConsolidateResultBuilder resultBuilder = new ActivityConsolidateResultBuilder(applicationLocale, referenceLocale, activity.getTopiaId(), decorate(referenceLocale.ordinal(), activity));
+ activity.setTime(Dates.getDateAndTime(route.getDate(), activity.getTime(), true, true));
+ activity.registerDecorator(decoratorService.getDecoratorByType(Activity.class, ActivityAware.CLASSIFIER_WITH_ROUTE));
+ String activityLabel = activity.toString();
+ ActivityConsolidateResultBuilder resultBuilder = new ActivityConsolidateResultBuilder(applicationLocale, referenceLocale, activity.getTopiaId(), activityLabel);
ActivityConsolidateContext activityContext = new ActivityConsolidateContext();
activityContext.locale = applicationLocale;
@@ -193,11 +196,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 {
@@ -221,18 +224,20 @@ public class TripConsolidateEngine {
if (activityConsolidateResults.isEmpty() && localmarketBatchResults.isEmpty()) {
TripConsolidateResult = null;
} else {
- TripConsolidateResult = new TripConsolidateResult(tripId, decorate(referenceLocale.ordinal(), trip), activityConsolidateResults, localmarketBatchResults);
+ trip.registerDecorator(decoratorService.getDecoratorByType(Trip.class));
+ String tripLabel = trip.toString();
+ TripConsolidateResult = new TripConsolidateResult(tripId, tripLabel, activityConsolidateResults, localmarketBatchResults);
log.info(String.format("Found some modifications on trip: %s - %s", tripId, TripConsolidateResult.getTripLabel()));
}
return Optional.ofNullable(TripConsolidateResult);
}
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 +254,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 +274,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 +286,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 +338,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 +453,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);
}
@@ -612,20 +617,6 @@ public class TripConsolidateEngine {
}
}
- //FIXME use decorator
- private String decorate(int referenceLocale, Activity activity) {
- return String.format("%1$tH:%1$tM", activity.getTime())
- + " - " +
- I18nReferentialHelper.getLabel(referenceLocale, activity.getVesselActivity());
- }
-
- //FIXME use decorator
- private String decorate(int referenceLocale, Trip trip) {
- return String.format("%1$td/%1$tm/%1$tY", trip.getStartDate()) +
- " - " + String.format("%1$td/%1$tm/%1$tY", trip.getEndDate()) +
- " - " + I18nReferentialHelper.getLabel(referenceLocale, trip.getVessel());
- }
-
private boolean allCatchDataFilled(Catch aCatch) {
return !(aCatch.getCatchWeight() == null
|| aCatch.getTotalCount() == null
=====================================
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/-/compare/46e0163d062c9d04e71e3b6a…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/46e0163d062c9d04e71e3b6a…
You're receiving this email because of your account on gitlab.com.
1
0