Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 5b30b91c by Tony Chemit at 2022-12-11T20:43:15+01:00 UI - When saving open data, only update reference once - - - - - 181a2fda by Tony Chemit at 2022-12-11T20:43:16+01:00 UI - Use now two method to fill NodeUpdater (using the same does not work for the after update since we just ask the property on dto, but we also need to know if there is a such data!) - - - - - b7d77097 by Tony Chemit at 2022-12-11T20:43:17+01:00 UI - Use correct property name in ps-logbook-Activity (use now catches instead of set) - - - - - 8a2124ce by Tony Chemit at 2022-12-11T20:43:17+01:00 Service - Always add statistics in any Activity.set reference when using a such decorator - - - - - c6bcf240 by Tony Chemit at 2022-12-11T20:43:35+01:00 Merge branch 'feature/issue_2574_tree' into develop Lors de la sauvegarde d'une activité, l'arbre est replié mais surtout on perd sur ces fils les statistiques - Closes #2574 - - - - - 16 changed files: - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationInitializer.java - client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationNode.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUISavePredicate.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java - client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUISavePredicate.java - client/datasource/editor/ps/src/main/capabilities/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUI.capabilities - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUISavePredicate.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java - client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUISavePredicate.java - client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/CapabilityDescriptor.java - client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/helper/ContentUINavigationCapabilityHelper.java - core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/ActivitySpi.java - core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/observation/ActivitySpi.java - core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivitySpi.java Changes: ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationInitializer.java ===================================== @@ -135,9 +135,4 @@ public final class ContentOpenableUINavigationInitializer extends NavigationInit } getEditNode().setId(id); } - - public DataDtoReference updateReference(ContentOpenableUINavigationContext context, String id) { - this.reference = context.getReference(getReference().getReferenceType(), id, decorator); - return getReference(); - } } ===================================== client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/open/ContentOpenableUINavigationNode.java ===================================== @@ -79,13 +79,13 @@ public abstract class ContentOpenableUINavigationNode extends NavigationNode { boolean notPersisted = getInitializer().isNotPersisted(); NavigationNode parent = getParent(); int oldPosition = parent.getIndex(this); - DataDtoReference reference = getInitializer().updateReference(getContext(), id); if (notPersisted) { getInitializer().updateEditNodeId(id); getInitializer().updateSelectNodeId(id); } // reload node data reloadNodeData(); + DataDtoReference reference = getInitializer().getReference(); if (notPersisted) { dirty(); ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java ===================================== @@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpen import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter; import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; import fr.ird.observe.dto.data.ll.logbook.ActivityDto; +import fr.ird.observe.dto.data.ll.logbook.ActivityReference; /** * Created on 8/29/14. @@ -46,7 +47,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { .then(new SaveContentOpenableUIAdapter<>(ActivityDto::isSetEnabled, ActivityUI::getAddSet) { @Override protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { - ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); + ActivityReference reference = (ActivityReference) node.getReference(); + bean.setStatistics(reference.statistics()); + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUISavePredicate.java ===================================== @@ -51,7 +51,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode } public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) { - return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)) + return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)) .getMessagesForNodesToRemove(); } } ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java ===================================== @@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.ContentOpen import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.SaveContentOpenableUIAdapter; import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; import fr.ird.observe.dto.data.ll.observation.ActivityDto; +import fr.ird.observe.dto.data.ll.observation.ActivityReference; /** * Created on 8/29/14. @@ -47,7 +48,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { .then(new SaveContentOpenableUIAdapter<>(ActivityDto::isSetEnabled, ActivityUI::getAddSet) { @Override protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { - ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); + ActivityReference reference = (ActivityReference) node.getReference(); + bean.setStatistics(reference.statistics()); + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) ===================================== client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUISavePredicate.java ===================================== @@ -51,7 +51,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode } public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) { - return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)).getMessagesForNodesToRemove(); + return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)).getMessagesForNodesToRemove(); } } ===================================== client/datasource/editor/ps/src/main/capabilities/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUI.capabilities ===================================== @@ -1,2 +1,2 @@ -0_setEnabled??=fr.ird.observe.client.datasource.editor.ps.data.logbook.ActivityCatchUINavigationNode +0_catchesEnabled??=fr.ird.observe.client.datasource.editor.ps.data.logbook.ActivityCatchUINavigationNode 1*=fr.ird.observe.client.datasource.editor.ps.data.logbook.FloatingObjectUINavigationNode \ No newline at end of file ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java ===================================== @@ -30,6 +30,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.Sav import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; import fr.ird.observe.client.datasource.editor.ps.ObservePsKeyStrokes; import fr.ird.observe.dto.data.ps.logbook.ActivityDto; +import fr.ird.observe.dto.data.ps.logbook.ActivityReference; import fr.ird.observe.dto.referential.ps.common.VesselActivityReference; import io.ultreia.java4all.i18n.I18n; @@ -57,7 +58,9 @@ class ActivityUIHandler extends GeneratedActivityUIHandler { @Override protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { - ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); + ActivityReference reference = (ActivityReference) node.getReference(); + bean.setStatistics(reference.statistics()); + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUISavePredicate.java ===================================== @@ -52,7 +52,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode } public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) { - return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)) + return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)) .getMessagesForNodesToRemove(); } } ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java ===================================== @@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.editor.api.content.data.open.actions.Sav import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree; import fr.ird.observe.dto.ProtectedIdsPs; import fr.ird.observe.dto.data.ps.observation.ActivityDto; +import fr.ird.observe.dto.data.ps.observation.ActivityReference; import fr.ird.observe.dto.referential.ps.common.VesselActivityReference; import javax.swing.JLabel; @@ -83,7 +84,9 @@ public class ActivityUIHandler extends GeneratedActivityUIHandler { .then(new SaveContentOpenableUIAdapter<>(ActivityDto::isStrongSetOperation, ActivityUI::getAddSet) { @Override protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) { - ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); + ActivityReference reference = (ActivityReference) node.getReference(); + bean.setStatistics(reference.statistics()); + ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(); super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean); } }) ===================================== client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUISavePredicate.java ===================================== @@ -52,7 +52,7 @@ public class ActivityUISavePredicate extends SavePredicateSupport<ActivityUIMode } public List<String> generateText(ActivityDto originalBean, ActivityDto editBean) { - return ActivityUINavigationCapability.fillBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)) + return ActivityUINavigationCapability.fillBeforeBuilder(NodeChildrenUpdate.beforeUpdate(states.source(), originalBean, editBean)) .getMessagesForNodesToRemove(); } } ===================================== client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/CapabilityDescriptor.java ===================================== @@ -367,7 +367,7 @@ public class CapabilityDescriptor { } - public String generateCapabilityUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) { + public String generateCapabilityOnBeanToUpdateUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) { switch (capacityNodeType) { case STATIC_WITH_PREDICATE: { String beanPropertyName = getOptionalPredicate().orElseThrow(); @@ -384,6 +384,23 @@ public class CapabilityDescriptor { return null; } } + public String generateCapabilityOnUpdatedBeanNodeUpdateNodeMethod(Class<?> mainDtoType, Set<String> availableProperties) { + switch (capacityNodeType) { + case STATIC_WITH_PREDICATE: { + String beanPropertyName = getOptionalPredicate().orElseThrow(); + return String.format(" .onPredicate(d-> d.is%1$s() && d.get%2$sStatValue() > 0, %3$s.class)\n", beanPropertyName, Strings.removeEnd(beanPropertyName,"Enabled"), getNodeTypeSimpleName()); + } + case REFERENCE_LIST: + case REFERENCE: { + String beanPropertyName = methodName.replace("UINavigationNode", "Enabled"); + if (availableProperties.contains(Introspector.decapitalize(beanPropertyName))) { + return String.format(" .onPredicate(d-> d.is%1$s() && d.get%2$sStatValue() > 0, %3$s.class)\n", beanPropertyName, Strings.removeEnd(beanPropertyName,"Enabled"), getNodeTypeSimpleName()); + } + } + default: + return null; + } + } protected String getOptionalReferenceTypePackage() { return optionalReferenceType.getPackage().getName(); ===================================== client/datasource/editor/spi/src/main/java/fr/ird/observe/client/datasource/editor/spi/content/helper/ContentUINavigationCapabilityHelper.java ===================================== @@ -55,8 +55,14 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport " super(node);\n" + " }\n\n" + "}\n"; - public static final String UPDATE_NODE_METHOD = "" + - " public static NodeChildrenUpdate fillBuilder(NodeChildrenUpdate.BuilderStepAddPredicate<%1$s> builder) {\n" + + public static final String ON_BEAN_TO_UPDATE_NODE_METHOD = "" + + " public static NodeChildrenUpdate fillBeforeBuilder(NodeChildrenUpdate.BuilderOnBeanToUpdate<%1$s> builder) {\n" + + " return builder\n" + + "%2$s" + + " .build();\n" + + " }\n\n"; + public static final String ON_UPDATED_BEAN_NODE_METHOD = "" + + " public static NodeChildrenUpdate fillAfterBuilder(NodeChildrenUpdate.BuilderOnUpdatedBean<%1$s> builder) {\n" + " return builder\n" + "%2$s" + " .build();\n" + @@ -139,7 +145,32 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport return String.format(template, generator.cleanClassName, createChildrenMethodBuilder); } - public static String generateNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) { + public static String generateOnBeanToUpdateNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) { + if (generator.capabilitiesDescriptor == null) { + return ""; + } + Class<? extends BusinessDto> dtoType = generator.scopeBuilder.dtoType; + StringBuilder createChildrenMethodBuilder = new StringBuilder(); + JavaBeanDefinition javaBeanDefinition = JavaBeanDefinitionStore.getDefinition(dtoType).orElseThrow(); + Set<String> availableProperties = javaBeanDefinition.readProperties().map(JavaBeanPropertyDefinition::propertyName).collect(Collectors.toSet()); + boolean used = false; + for (CapabilityDescriptor capabilityDescriptor : generator.capabilitiesDescriptor) { + String addNodeMethod = capabilityDescriptor.generateCapabilityOnBeanToUpdateUpdateNodeMethod(dtoType, availableProperties); + if (addNodeMethod != null) { + used = true; + createChildrenMethodBuilder.append(addNodeMethod); + } + } + if (used) { + imports.add(NodeChildrenUpdate.class.getName()); + imports.add(dtoType.getName()); + return String.format(ON_BEAN_TO_UPDATE_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder); + + } + return ""; + } + + public static String generateOnUpdatedBeanNodeUpdaterMethod(GenerateJavaFileSupport generator, List<String> imports) { if (generator.capabilitiesDescriptor == null) { return ""; } @@ -149,7 +180,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport Set<String> availableProperties = javaBeanDefinition.readProperties().map(JavaBeanPropertyDefinition::propertyName).collect(Collectors.toSet()); boolean used = false; for (CapabilityDescriptor capabilityDescriptor : generator.capabilitiesDescriptor) { - String addNodeMethod = capabilityDescriptor.generateCapabilityUpdateNodeMethod(dtoType, availableProperties); + String addNodeMethod = capabilityDescriptor.generateCapabilityOnUpdatedBeanNodeUpdateNodeMethod(dtoType, availableProperties); if (addNodeMethod != null) { used = true; createChildrenMethodBuilder.append(addNodeMethod); @@ -158,7 +189,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport if (used) { imports.add(NodeChildrenUpdate.class.getName()); imports.add(dtoType.getName()); - return String.format(UPDATE_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder); + return String.format(ON_UPDATED_BEAN_NODE_METHOD, dtoType.getSimpleName(), createChildrenMethodBuilder); } return ""; @@ -214,7 +245,7 @@ public class ContentUINavigationCapabilityHelper extends ContentUIHelperSupport } public String generateNodeUpdaterMethod(List<String> imports) { - return generateNodeUpdaterMethod(generator, imports); + return generateOnBeanToUpdateNodeUpdaterMethod(generator, imports) + generateOnUpdatedBeanNodeUpdaterMethod(generator, imports); } public String generateGetModel() { ===================================== core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/ActivitySpi.java ===================================== @@ -33,6 +33,7 @@ import fr.ird.observe.dto.referential.ReferentialLocale; import fr.ird.observe.entities.data.ll.common.Trip; import fr.ird.observe.entities.referential.common.DataQuality; import fr.ird.observe.entities.referential.common.Species; +import fr.ird.observe.spi.decoration.DecoratorService; import fr.ird.observe.spi.service.ServiceContext; import io.ultreia.java4all.util.Dates; import org.apache.logging.log4j.LogManager; @@ -40,7 +41,6 @@ import org.apache.logging.log4j.Logger; import java.util.Calendar; import java.util.Date; -import java.util.function.BiConsumer; import java.util.stream.Collectors; /** @@ -68,6 +68,15 @@ public class ActivitySpi extends GeneratedActivitySpi { } } + @Override + public ActivityReference toReference(ReferentialLocale referentialLocale, Activity entity, String classifier) { + ActivityReference reference = super.toReference(referentialLocale, entity, classifier); + if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) { + entity.getSet().buildStatistics(reference.getSet()); + } + return reference; + } + @Override public Form<ActivityDto> preCreate(ServiceContext context, Trip parent, Activity preCreated) { Activity lastActivity = Iterables.getLast(parent.getActivityLogbook(), null); @@ -102,13 +111,4 @@ public class ActivitySpi extends GeneratedActivitySpi { } super.onSave(context, parent, entity, dto, needCopy); } - - @Override - protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Trip parent) { - return (e, r) -> { - if (r.getSet() != null) { - e.getSet().buildStatistics(r.getSet()); - } - }; - } } ===================================== core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/observation/ActivitySpi.java ===================================== @@ -26,14 +26,15 @@ import com.google.common.collect.Iterables; import fr.ird.observe.dto.data.ll.observation.ActivityDto; import fr.ird.observe.dto.data.ll.observation.ActivityReference; import fr.ird.observe.dto.form.Form; +import fr.ird.observe.dto.referential.ReferentialLocale; import fr.ird.observe.entities.data.ll.common.Trip; +import fr.ird.observe.spi.decoration.DecoratorService; import fr.ird.observe.spi.service.ServiceContext; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.util.Calendar; import java.util.Date; -import java.util.function.BiConsumer; /** * Created on 10/05/2021. @@ -44,6 +45,15 @@ import java.util.function.BiConsumer; public class ActivitySpi extends GeneratedActivitySpi { private static final Logger log = LogManager.getLogger(ActivitySpi.class); + @Override + public ActivityReference toReference(ReferentialLocale referentialLocale, Activity entity, String classifier) { + ActivityReference reference = super.toReference(referentialLocale, entity, classifier); + if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) { + entity.getSet().buildStatistics(reference.getSet()); + } + return reference; + } + @Override public Form<ActivityDto> preCreate(ServiceContext context, Trip parent, Activity preCreated) { Activity lastActivity = Iterables.getLast(parent.getActivityObs(), null); @@ -76,12 +86,4 @@ public class ActivitySpi extends GeneratedActivitySpi { super.onSave(context, parent, entity, dto, needCopy); } - @Override - protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Trip parent) { - return (e, r) -> { - if (r.getSet() != null) { - e.getSet().buildStatistics(r.getSet()); - } - }; - } } ===================================== core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivitySpi.java ===================================== @@ -30,6 +30,7 @@ import fr.ird.observe.dto.referential.ReferentialLocale; import fr.ird.observe.dto.referential.common.SpeciesReference; import fr.ird.observe.entities.referential.common.FpaZone; import fr.ird.observe.entities.referential.common.Species; +import fr.ird.observe.spi.decoration.DecoratorService; import fr.ird.observe.spi.service.ServiceContext; import io.ultreia.java4all.util.Dates; import org.apache.logging.log4j.LogManager; @@ -67,6 +68,9 @@ public class ActivitySpi extends GeneratedActivitySpi { if (entity != null && entity.isFloatingObjectNotEmpty()) { reference.setFloatingObject(FloatingObject.SPI.toReferenceSet(referentialLocale, entity.getFloatingObject(), new Date(), classifier).toList()); } + if (entity != null && DecoratorService.WITH_STATS_CLASSIFIER.equals(classifier) && reference.getSet() != null) { + entity.getSet().buildStatistics(reference.getSet()); + } return reference; } @@ -111,9 +115,9 @@ public class ActivitySpi extends GeneratedActivitySpi { protected BiConsumer<Activity, ActivityReference> getChildrenExtraConsumer(Route parent) { return (entity, reference) -> { reference.setDate(parent.getDate()); - if (reference.getSet() != null) { - entity.getSet().buildStatistics(reference.getSet()); - } +// if (reference.getSet() != null) { +// entity.getSet().buildStatistics(reference.getSet()); +// } }; } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8a2e9e77bb345467aef9f4eb0... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/8a2e9e77bb345467aef9f4eb0... You're receiving this email because of your account on gitlab.com.