Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

15 changed files:

Changes:

  • client/src/main/java/fr/ird/observe/client/ui/content/ContentUIHandler.java
    ... ... @@ -103,9 +103,11 @@ import java.util.Collections;
    103 103
     import java.util.LinkedList;
    
    104 104
     import java.util.List;
    
    105 105
     import java.util.Locale;
    
    106
    +import java.util.Map;
    
    106 107
     import java.util.Objects;
    
    107 108
     import java.util.Optional;
    
    108 109
     import java.util.Set;
    
    110
    +import java.util.TreeMap;
    
    109 111
     import java.util.Vector;
    
    110 112
     import javax.swing.AbstractButton;
    
    111 113
     import javax.swing.ActionMap;
    
    ... ... @@ -162,6 +164,18 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U
    162 164
         /** l'interface graphique que le controleur utilise */
    
    163 165
         protected U ui;
    
    164 166
     
    
    167
    +    private final Map<String, ReferentialReferencesFilter> referentialsFilters = new TreeMap<>();
    
    168
    +
    
    169
    +    protected interface ReferentialReferencesFilter<D extends ReferentialDto> {
    
    170
    +
    
    171
    +        List<ReferentialReference<D>> filter(List<ReferentialReference<D>> incomingReferences);
    
    172
    +
    
    173
    +    }
    
    174
    +
    
    175
    +    protected void addReferentialFilter(String propertyName, ReferentialReferencesFilter filter) {
    
    176
    +        referentialsFilters.put(propertyName, filter);
    
    177
    +    }
    
    178
    +
    
    165 179
         public void beforeInit(U ui) {
    
    166 180
             this.ui = ui;
    
    167 181
             prefix = "[" + ui.getClass().getSimpleName() + "] ";
    
    ... ... @@ -673,6 +687,13 @@ public abstract class ContentUIHandler<E extends IdDto, U extends ContentUI<E, U
    673 687
             // by default always remove obsolete references
    
    674 688
             List<ReferentialReference<D>> referentialReferences = ReferentialReferences.filterEnabled(incomingReferences);
    
    675 689
             log.debug(String.format("Filter referential references (type %s - property %s), without diabled size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    690
    +
    
    691
    +        //noinspection unchecked
    
    692
    +        ReferentialReferencesFilter<D> referentialReferencesFilter = referentialsFilters.get(propertyName);
    
    693
    +        if (referentialReferencesFilter!=null) {
    
    694
    +            return referentialReferencesFilter.filter(referentialReferences);
    
    695
    +        }
    
    696
    +
    
    676 697
             return referentialReferences;
    
    677 698
     
    
    678 699
         }
    

  • client/src/main/java/fr/ird/observe/client/ui/content/open/impl/longline/TripLonglineUIHandler.java
    ... ... @@ -35,13 +35,13 @@ import fr.ird.observe.services.dto.form.Form;
    35 35
     import fr.ird.observe.services.dto.longline.TripLonglineDto;
    
    36 36
     import fr.ird.observe.services.dto.longline.TripLonglineHelper;
    
    37 37
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    38
    +import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    39
    +import fr.ird.observe.services.dto.referential.PersonDto;
    
    38 40
     import fr.ird.observe.services.dto.referential.PersonHelper;
    
    39
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    41
    +import fr.ird.observe.services.dto.referential.VesselDto;
    
    40 42
     import fr.ird.observe.services.dto.referential.VesselHelper;
    
    41 43
     import fr.ird.observe.services.dto.result.SaveResultDto;
    
    42
    -import java.util.Collection;
    
    43 44
     import java.util.Date;
    
    44
    -import java.util.LinkedList;
    
    45 45
     import java.util.List;
    
    46 46
     import javax.swing.JTabbedPane;
    
    47 47
     import javax.swing.SwingUtilities;
    
    ... ... @@ -69,6 +69,23 @@ class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto, Tr
    69 69
     
    
    70 70
         TripLonglineUIHandler() {
    
    71 71
             super(DataContextType.Program, DataContextType.TripLongline, n("observe.content.tripLongline.message.not.open"));
    
    72
    +        addReferentialFilter(TripLonglineDto.PROPERTY_CAPTAIN, (ReferentialReferencesFilter<PersonDto>) incomingReferences -> {
    
    73
    +            List<ReferentialReference<PersonDto>> result = PersonHelper.filterCaptainReferences(incomingReferences);
    
    74
    +            return ReferentialReferences.filterEnabled(result);
    
    75
    +        });
    
    76
    +        addReferentialFilter(TripLonglineDto.PROPERTY_OBSERVER, (ReferentialReferencesFilter<PersonDto>) incomingReferences -> {
    
    77
    +            List<ReferentialReference<PersonDto>> result = PersonHelper.filterObserverReferences(incomingReferences);
    
    78
    +            return ReferentialReferences.filterEnabled(result);
    
    79
    +        });
    
    80
    +        addReferentialFilter(TripLonglineDto.PROPERTY_DATA_ENTRY_OPERATOR, (ReferentialReferencesFilter<PersonDto>) incomingReferences -> {
    
    81
    +            List<ReferentialReference<PersonDto>> result = PersonHelper.filterDataEntryOperatorReferences(incomingReferences);
    
    82
    +            return ReferentialReferences.filterEnabled(result);
    
    83
    +        });
    
    84
    +        addReferentialFilter(TripLonglineDto.PROPERTY_VESSEL, (ReferentialReferencesFilter<VesselDto>) incomingReferences -> {
    
    85
    +            ClientConfig config = ObserveSwingApplicationContext.get().getConfig();
    
    86
    +            List<ReferentialReference<VesselDto>> result = VesselHelper.filterVesselReferencesByVesselTypeIds(incomingReferences, config.getLonglineVesselTypeIds());
    
    87
    +            return ReferentialReferences.filterEnabled(result);
    
    88
    +        });
    
    72 89
         }
    
    73 90
     
    
    74 91
         @Override
    
    ... ... @@ -315,50 +332,4 @@ class TripLonglineUIHandler extends ContentOpenableUIHandler<TripLonglineDto, Tr
    315 332
             return !create && getOpenDataManager().canOpenTripLongline();
    
    316 333
     
    
    317 334
         }
    
    318
    -
    
    319
    -    @Override
    
    320
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    321
    -
    
    322
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    323
    -
    
    324
    -        switch (propertyName) {
    
    325
    -
    
    326
    -            case TripLonglineDto.PROPERTY_CAPTAIN: {
    
    327
    -                result = (List) PersonHelper.filterCaptainReferences((List) result);
    
    328
    -                if (log.isDebugEnabled()) {
    
    329
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    330
    -                }
    
    331
    -            }
    
    332
    -            break;
    
    333
    -
    
    334
    -            case TripLonglineDto.PROPERTY_OBSERVER: {
    
    335
    -                result = (List) PersonHelper.filterObserverReferences((List) result);
    
    336
    -                if (log.isDebugEnabled()) {
    
    337
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    338
    -                }
    
    339
    -            }
    
    340
    -            break;
    
    341
    -
    
    342
    -            case TripLonglineDto.PROPERTY_DATA_ENTRY_OPERATOR: {
    
    343
    -                result = (List) PersonHelper.filterDataEntryOperatorReferences((List) result);
    
    344
    -                if (log.isDebugEnabled()) {
    
    345
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    346
    -                }
    
    347
    -            }
    
    348
    -            break;
    
    349
    -
    
    350
    -            case TripLonglineDto.PROPERTY_VESSEL: {
    
    351
    -                ClientConfig config = ObserveSwingApplicationContext.get().getConfig();
    
    352
    -                result = (List) VesselHelper.filterVesselReferencesByVesselTypeIds((List) result, config.getLonglineVesselTypeIds());
    
    353
    -                if (log.isDebugEnabled()) {
    
    354
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    355
    -                }
    
    356
    -            }
    
    357
    -            break;
    
    358
    -
    
    359
    -        }
    
    360
    -
    
    361
    -        return result;
    
    362
    -    }
    
    363
    -
    
    364 335
     }

  • client/src/main/java/fr/ird/observe/client/ui/content/open/impl/seine/TripSeineUIHandler.java
    ... ... @@ -32,15 +32,15 @@ import fr.ird.observe.client.ui.util.tripMap.TripMapUI;
    32 32
     import fr.ird.observe.services.dto.TripMapDto;
    
    33 33
     import fr.ird.observe.services.dto.form.Form;
    
    34 34
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    35
    +import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    36
    +import fr.ird.observe.services.dto.referential.PersonDto;
    
    35 37
     import fr.ird.observe.services.dto.referential.PersonHelper;
    
    36
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    38
    +import fr.ird.observe.services.dto.referential.VesselDto;
    
    37 39
     import fr.ird.observe.services.dto.referential.VesselHelper;
    
    38 40
     import fr.ird.observe.services.dto.result.SaveResultDto;
    
    39 41
     import fr.ird.observe.services.dto.seine.TripSeineDto;
    
    40 42
     import fr.ird.observe.services.dto.seine.TripSeineHelper;
    
    41
    -import java.util.Collection;
    
    42 43
     import java.util.Date;
    
    43
    -import java.util.LinkedList;
    
    44 44
     import java.util.List;
    
    45 45
     import javax.swing.JTabbedPane;
    
    46 46
     import javax.swing.SwingUtilities;
    
    ... ... @@ -66,6 +66,23 @@ class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto, TripSein
    66 66
     
    
    67 67
         TripSeineUIHandler() {
    
    68 68
             super(DataContextType.Program, DataContextType.TripSeine, n("observe.content.tripSeine.message.not.open"));
    
    69
    +        addReferentialFilter(TripSeineDto.PROPERTY_CAPTAIN, (ReferentialReferencesFilter<PersonDto>) incomingReferences -> {
    
    70
    +            List<ReferentialReference<PersonDto>> result = PersonHelper.filterCaptainReferences(incomingReferences);
    
    71
    +            return ReferentialReferences.filterEnabled(result);
    
    72
    +        });
    
    73
    +        addReferentialFilter(TripSeineDto.PROPERTY_OBSERVER, (ReferentialReferencesFilter<PersonDto>) incomingReferences -> {
    
    74
    +            List<ReferentialReference<PersonDto>> result = PersonHelper.filterObserverReferences(incomingReferences);
    
    75
    +            return ReferentialReferences.filterEnabled(result);
    
    76
    +        });
    
    77
    +        addReferentialFilter(TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR, (ReferentialReferencesFilter<PersonDto>) incomingReferences -> {
    
    78
    +            List<ReferentialReference<PersonDto>> result = PersonHelper.filterDataEntryOperatorReferences(incomingReferences);
    
    79
    +            return ReferentialReferences.filterEnabled(result);
    
    80
    +        });
    
    81
    +        addReferentialFilter(TripSeineDto.PROPERTY_VESSEL, (ReferentialReferencesFilter<VesselDto>) incomingReferences -> {
    
    82
    +            ClientConfig config = ObserveSwingApplicationContext.get().getConfig();
    
    83
    +            List<ReferentialReference<VesselDto>> result = VesselHelper.filterVesselReferencesByVesselTypeIds(incomingReferences, config.getLonglineVesselTypeIds());
    
    84
    +            return ReferentialReferences.filterEnabled(result);
    
    85
    +        });
    
    69 86
         }
    
    70 87
     
    
    71 88
         @Override
    
    ... ... @@ -309,49 +326,4 @@ class TripSeineUIHandler extends ContentOpenableUIHandler<TripSeineDto, TripSein
    309 326
             return !create && getOpenDataManager().canOpenTripSeine();
    
    310 327
         }
    
    311 328
     
    
    312
    -    @Override
    
    313
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    314
    -
    
    315
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    316
    -
    
    317
    -        switch (propertyName) {
    
    318
    -
    
    319
    -            case TripSeineDto.PROPERTY_CAPTAIN: {
    
    320
    -                result = (List) PersonHelper.filterCaptainReferences((List) result);
    
    321
    -                if (log.isDebugEnabled()) {
    
    322
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    323
    -                }
    
    324
    -            }
    
    325
    -            break;
    
    326
    -
    
    327
    -            case TripSeineDto.PROPERTY_OBSERVER: {
    
    328
    -                result = (List) PersonHelper.filterObserverReferences((List) result);
    
    329
    -                if (log.isDebugEnabled()) {
    
    330
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    331
    -                }
    
    332
    -            }
    
    333
    -            break;
    
    334
    -
    
    335
    -            case TripSeineDto.PROPERTY_DATA_ENTRY_OPERATOR: {
    
    336
    -                result = (List) PersonHelper.filterDataEntryOperatorReferences((List) result);
    
    337
    -                if (log.isDebugEnabled()) {
    
    338
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    339
    -                }
    
    340
    -            }
    
    341
    -            break;
    
    342
    -
    
    343
    -            case TripSeineDto.PROPERTY_VESSEL: {
    
    344
    -                ClientConfig config = ObserveSwingApplicationContext.get().getConfig();
    
    345
    -                result = (List) VesselHelper.filterVesselReferencesByVesselTypeIds((List) result, config.getSeineVesselTypeIds());
    
    346
    -                if (log.isDebugEnabled()) {
    
    347
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    348
    -                }
    
    349
    -            }
    
    350
    -            break;
    
    351
    -
    
    352
    -        }
    
    353
    -
    
    354
    -        return result;
    
    355
    -    }
    
    356
    -
    
    357 329
     }

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/longline/CatchLonglineUIHandler.java
    ... ... @@ -52,7 +52,6 @@ import fr.ird.observe.services.dto.longline.WeightMeasureDto;
    52 52
     import fr.ird.observe.services.dto.reference.DataReference;
    
    53 53
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    54 54
     import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    55
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    56 55
     import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto;
    
    57 56
     import fr.ird.observe.services.dto.referential.SpeciesDto;
    
    58 57
     import fr.ird.observe.services.dto.referential.WeightMeasureTypeDto;
    
    ... ... @@ -62,11 +61,9 @@ import fr.ird.observe.services.dto.result.SaveResultDto;
    62 61
     import fr.ird.observe.services.service.data.longline.TripLonglineService;
    
    63 62
     import java.beans.PropertyChangeListener;
    
    64 63
     import java.util.Calendar;
    
    65
    -import java.util.Collection;
    
    66 64
     import java.util.Collections;
    
    67 65
     import java.util.Date;
    
    68 66
     import java.util.HashSet;
    
    69
    -import java.util.LinkedList;
    
    70 67
     import java.util.List;
    
    71 68
     import java.util.Set;
    
    72 69
     import javax.swing.JComponent;
    
    ... ... @@ -132,7 +129,21 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat
    132 129
             branchlineChanged = evt -> onBranchlineChanged((DataReference<BranchlineDto>) evt.getNewValue());
    
    133 130
             weightTableModelModified = evt -> onWeightTableModelModified((Boolean) evt.getNewValue());
    
    134 131
             sizeTableModelModified = evt -> onSizeTableModelModified((Boolean) evt.getNewValue());
    
    135
    -        depredatedChanged = evt -> onDepretadedChanged((Boolean) evt.getNewValue(), (CatchLonglineDto) evt.getSource());
    
    132
    +        depredatedChanged = evt -> onDepredatedChanged((Boolean) evt.getNewValue(), (CatchLonglineDto) evt.getSource());
    
    133
    +
    
    134
    +        addReferentialFilter(CatchLonglineDto.PROPERTY_SPECIES_CATCH, (ReferentialReferencesFilter<SpeciesDto>) incomingReferences -> {
    
    135
    +            String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineCatchId();
    
    136
    +            String tripLonglineId = getDataContext().getSelectedTripLonglineId();
    
    137
    +            List<ReferentialReference<SpeciesDto>> result = getTripLonglineService().getSpeciesByListAndTrip(tripLonglineId, speciesListId);
    
    138
    +            return ReferentialReferences.filterEnabled(result);
    
    139
    +        });
    
    140
    +
    
    141
    +        addReferentialFilter(CatchLonglineDto.PROPERTY_PREDATOR, (ReferentialReferencesFilter<SpeciesDto>) incomingReferences -> {
    
    142
    +            String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineDepredatorId();
    
    143
    +            String tripLonglineId = getDataContext().getSelectedTripLonglineId();
    
    144
    +            List<ReferentialReference<SpeciesDto>> result = getTripLonglineService().getSpeciesByListAndTrip(tripLonglineId, speciesListId);
    
    145
    +            return ReferentialReferences.filterEnabled(result);
    
    146
    +        });
    
    136 147
         }
    
    137 148
     
    
    138 149
         @Override
    
    ... ... @@ -462,7 +473,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat
    462 473
                 }
    
    463 474
     
    
    464 475
                 //FIXME Voir si pas besoin aussi de relancer les binding (catchFateChanged, branchlineChanged) ?
    
    465
    -            onDepretadedChanged(bean.getDepredated(), bean);
    
    476
    +            onDepredatedChanged(bean.getDepredated(), bean);
    
    466 477
     
    
    467 478
             }
    
    468 479
     
    
    ... ... @@ -654,43 +665,6 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat
    654 665
         }
    
    655 666
     
    
    656 667
         @Override
    
    657
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    658
    -
    
    659
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    660
    -
    
    661
    -        switch (propertyName) {
    
    662
    -
    
    663
    -            case CatchLonglineDto.PROPERTY_SPECIES_CATCH:
    
    664
    -            case CatchLonglineDto.PROPERTY_PREDATOR: {
    
    665
    -                String speciesListId;
    
    666
    -
    
    667
    -                if (CatchLonglineDto.PROPERTY_SPECIES_CATCH.equals(propertyName)) {
    
    668
    -                    speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineCatchId();
    
    669
    -                } else {
    
    670
    -                    speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineDepredatorId();
    
    671
    -                }
    
    672
    -
    
    673
    -                String tripLonglineId = getDataContext().getSelectedTripLonglineId();
    
    674
    -
    
    675
    -                TripLonglineService tripLonglineService = getTripLonglineService();
    
    676
    -                result = (List) tripLonglineService.getSpeciesByListAndTrip(tripLonglineId, speciesListId);
    
    677
    -
    
    678
    -                result = ReferentialReferences.filterEnabled(result);
    
    679
    -
    
    680
    -                if (log.isDebugEnabled()) {
    
    681
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    682
    -                }
    
    683
    -
    
    684
    -                break;
    
    685
    -            }
    
    686
    -
    
    687
    -        }
    
    688
    -
    
    689
    -        return result;
    
    690
    -
    
    691
    -    }
    
    692
    -
    
    693
    -    @Override
    
    694 668
         protected void closeSafeUI() {
    
    695 669
     
    
    696 670
             if (log.isInfoEnabled()) {
    
    ... ... @@ -831,7 +805,7 @@ public class CatchLonglineUIHandler extends ContentTableUIHandler<SetLonglineCat
    831 805
     
    
    832 806
         }
    
    833 807
     
    
    834
    -    private void onDepretadedChanged(Boolean newValue, CatchLonglineDto tableEditBean) {
    
    808
    +    private void onDepredatedChanged(Boolean newValue, CatchLonglineDto tableEditBean) {
    
    835 809
     
    
    836 810
             CatchLonglineUI ui = getUi();
    
    837 811
     
    

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/longline/EncounterUIHandler.java
    ... ... @@ -32,14 +32,12 @@ import fr.ird.observe.services.dto.longline.ActivityLonglineEncounterHelper;
    32 32
     import fr.ird.observe.services.dto.longline.EncounterDto;
    
    33 33
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    34 34
     import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    35
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    36 35
     import fr.ird.observe.services.dto.referential.SpeciesDto;
    
    37 36
     import fr.ird.observe.services.dto.referential.SpeciesListDto;
    
    38 37
     import fr.ird.observe.services.dto.referential.longline.EncounterTypeDto;
    
    39 38
     import fr.ird.observe.services.dto.result.SaveResultDto;
    
    40 39
     import fr.ird.observe.services.service.referential.ReferentialService;
    
    41
    -import java.util.Collection;
    
    42
    -import java.util.LinkedList;
    
    40
    +import java.util.List;
    
    43 41
     import java.util.Set;
    
    44 42
     import javax.swing.JTable;
    
    45 43
     import javax.swing.table.DefaultTableCellRenderer;
    
    ... ... @@ -63,6 +61,16 @@ public class EncounterUIHandler extends ContentTableUIHandler<ActivityLonglineEn
    63 61
     
    
    64 62
         EncounterUIHandler() {
    
    65 63
             super(DataContextType.ActivityLongline);
    
    64
    +        addReferentialFilter(EncounterDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto>) incomingReferences -> {
    
    65
    +            String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineEncounterId();
    
    66
    +            Form<SpeciesListDto> speciesListDtoForm = getReferentialService().loadForm(SpeciesListDto.class, speciesListId);
    
    67
    +            SpeciesListDto speciesListDto = speciesListDtoForm.getObject();
    
    68
    +
    
    69
    +            Set<String> speciesIds = speciesListDto.getSpeciesIds();
    
    70
    +
    
    71
    +            List<ReferentialReference<SpeciesDto>> result = ReferentialReferences.filterContains(incomingReferences, speciesIds);
    
    72
    +            return ReferentialReferences.filterEnabled(result);
    
    73
    +        });
    
    66 74
         }
    
    67 75
     
    
    68 76
         @Override
    
    ... ... @@ -117,37 +125,4 @@ public class EncounterUIHandler extends ContentTableUIHandler<ActivityLonglineEn
    117 125
             ActivityLonglineEncounterHelper.copyActivityLonglineEncounterDto(form.getObject(), getBean());
    
    118 126
         }
    
    119 127
     
    
    120
    -    @Override
    
    121
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    122
    -
    
    123
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    124
    -
    
    125
    -        switch (propertyName) {
    
    126
    -
    
    127
    -            case EncounterDto.PROPERTY_SPECIES: {
    
    128
    -
    
    129
    -                String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineEncounterId();
    
    130
    -
    
    131
    -                ReferentialService referentialService = getReferentialService();
    
    132
    -
    
    133
    -                Form<SpeciesListDto> speciesListDtoForm = referentialService.loadForm(SpeciesListDto.class, speciesListId);
    
    134
    -                SpeciesListDto speciesListDto = speciesListDtoForm.getObject();
    
    135
    -
    
    136
    -                Set<String> speciesIds = speciesListDto.getSpeciesIds();
    
    137
    -
    
    138
    -                result = ReferentialReferences.filterContains(result, speciesIds);
    
    139
    -
    
    140
    -                if (log.isDebugEnabled()) {
    
    141
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    142
    -                }
    
    143
    -            }
    
    144
    -
    
    145
    -            break;
    
    146
    -
    
    147
    -        }
    
    148
    -
    
    149
    -        return result;
    
    150
    -
    
    151
    -    }
    
    152
    -
    
    153 128
     }

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/longline/TdrUIHandler.java
    ... ... @@ -37,18 +37,15 @@ import fr.ird.observe.services.dto.longline.SetLonglineTdrHelper;
    37 37
     import fr.ird.observe.services.dto.longline.TdrDto;
    
    38 38
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    39 39
     import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    40
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    40
    +import fr.ird.observe.services.dto.referential.SpeciesDto;
    
    41 41
     import fr.ird.observe.services.dto.referential.longline.SensorBrandDto;
    
    42 42
     import fr.ird.observe.services.dto.result.SaveResultDto;
    
    43
    -import fr.ird.observe.services.service.data.longline.TripLonglineService;
    
    44 43
     import java.beans.PropertyChangeListener;
    
    45 44
     import java.io.File;
    
    46 45
     import java.io.IOException;
    
    47 46
     import java.nio.file.Files;
    
    48
    -import java.util.Collection;
    
    49 47
     import java.util.Date;
    
    50 48
     import java.util.HashSet;
    
    51
    -import java.util.LinkedList;
    
    52 49
     import java.util.List;
    
    53 50
     import java.util.Set;
    
    54 51
     import javax.swing.JComponent;
    
    ... ... @@ -104,6 +101,12 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt
    104 101
                 Boolean newValue = (Boolean) evt.getNewValue();
    
    105 102
                 onToogleTimeEditorSliderChanged(newValue);
    
    106 103
             };
    
    104
    +        addReferentialFilter(TdrDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto>) incomingReferences -> {
    
    105
    +            String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineCatchId();
    
    106
    +            String tripLonglineId = getDataContext().getSelectedTripLonglineId();
    
    107
    +            List<ReferentialReference<SpeciesDto>> result = getTripLonglineService().getSpeciesByListAndTrip(tripLonglineId, speciesListId);
    
    108
    +            return ReferentialReferences.filterEnabled(result);
    
    109
    +        });
    
    107 110
         }
    
    108 111
     
    
    109 112
         @Override
    
    ... ... @@ -447,36 +450,6 @@ public class TdrUIHandler extends ContentTableUIHandler<SetLonglineTdrDto, TdrDt
    447 450
         }
    
    448 451
     
    
    449 452
         @Override
    
    450
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    451
    -
    
    452
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    453
    -
    
    454
    -        switch (propertyName) {
    
    455
    -
    
    456
    -            case TdrDto.PROPERTY_SPECIES: {
    
    457
    -                String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListLonglineCatchId();
    
    458
    -
    
    459
    -                String tripLonglineId = getDataContext().getSelectedTripLonglineId();
    
    460
    -
    
    461
    -                TripLonglineService tripLonglineService = getTripLonglineService();
    
    462
    -                result = (List) tripLonglineService.getSpeciesByListAndTrip(tripLonglineId, speciesListId);
    
    463
    -
    
    464
    -                result = ReferentialReferences.filterEnabled(result);
    
    465
    -
    
    466
    -                if (log.isDebugEnabled()) {
    
    467
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    468
    -                }
    
    469
    -
    
    470
    -                break;
    
    471
    -            }
    
    472
    -
    
    473
    -        }
    
    474
    -
    
    475
    -        return result;
    
    476
    -
    
    477
    -    }
    
    478
    -
    
    479
    -    @Override
    
    480 453
         protected void loadEditBean(String beanId) {
    
    481 454
     
    
    482 455
             Form<SetLonglineTdrDto> form = getTdrService().loadForm(beanId);
    

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchReleaseUIHandler.java
    ... ... @@ -29,7 +29,7 @@ import fr.ird.observe.client.ui.util.table.AutotSelectRowAndShowPopupActionSuppo
    29 29
     import fr.ird.observe.common.constants.seine.NonTargetCatchReleaseStatus;
    
    30 30
     import fr.ird.observe.services.dto.form.Form;
    
    31 31
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    32
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    32
    +import fr.ird.observe.services.dto.reference.ReferentialReferenceSet;
    
    33 33
     import fr.ird.observe.services.dto.referential.SexDto;
    
    34 34
     import fr.ird.observe.services.dto.referential.SpeciesDto;
    
    35 35
     import fr.ird.observe.services.dto.referential.SpeciesGroupDto;
    
    ... ... @@ -40,7 +40,6 @@ import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchReleaseDto;
    40 40
     import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchReleaseHelper;
    
    41 41
     import java.beans.PropertyChangeListener;
    
    42 42
     import java.util.ArrayList;
    
    43
    -import java.util.Collection;
    
    44 43
     import java.util.Collections;
    
    45 44
     import java.util.Date;
    
    46 45
     import java.util.LinkedList;
    
    ... ... @@ -89,6 +88,11 @@ public class NonTargetCatchReleaseUIHandler extends ContentTableUIHandler<SetSei
    89 88
                 Boolean newValue = (Boolean) evt.getNewValue();
    
    90 89
                 onToggleTimeEditorSliderChanged(newValue);
    
    91 90
             };
    
    91
    +        addReferentialFilter(NonTargetCatchReleaseDto.PROPERTY_SPECIES, incomingReferences -> {
    
    92
    +            ReferentialReferenceSet<SpeciesDto> sampleSpecies = getNonTargetCatchReleaseService().getSampleSpecies(getSelectedParentId());
    
    93
    +            return new LinkedList<>(sampleSpecies.getReferences());
    
    94
    +//            return ReferentialReferences.filterEnabled(result);
    
    95
    +        });
    
    92 96
         }
    
    93 97
     
    
    94 98
         private void updateSpecies(ReferentialReference species) {
    
    ... ... @@ -254,29 +258,6 @@ public class NonTargetCatchReleaseUIHandler extends ContentTableUIHandler<SetSei
    254 258
             loadReferentialReferenceSetsInModel(form);
    
    255 259
             getModel().setForm(form);
    
    256 260
             SetSeineNonTargetCatchReleaseHelper.copySetSeineNonTargetCatchReleaseDto(form.getObject(), getBean());
    
    257
    -    }
    
    258
    -
    
    259
    -    @Override
    
    260
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    261
    -
    
    262
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    263
    -
    
    264
    -        switch (propertyName) {
    
    265
    -
    
    266
    -            case NonTargetCatchReleaseDto.PROPERTY_SPECIES: {
    
    267
    -
    
    268
    -                result = (Collection) getNonTargetCatchReleaseService().getSampleSpecies(getSelectedParentId()).getReferences();
    
    269
    -
    
    270
    -                if (log.isDebugEnabled()) {
    
    271
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    272
    -                }
    
    273
    -            }
    
    274
    -
    
    275
    -            break;
    
    276
    -
    
    277
    -        }
    
    278
    -
    
    279
    -        return result;
    
    280 261
     
    
    281 262
         }
    
    282 263
     
    

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetCatchUIHandler.java
    ... ... @@ -33,7 +33,6 @@ import fr.ird.observe.services.decoration.decorators.ReferentialReferenceDecorat
    33 33
     import fr.ird.observe.services.dto.form.Form;
    
    34 34
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    35 35
     import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    36
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    37 36
     import fr.ird.observe.services.dto.referential.SpeciesDto;
    
    38 37
     import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto;
    
    39 38
     import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto;
    
    ... ... @@ -42,11 +41,8 @@ import fr.ird.observe.services.dto.seine.NonTargetCatchDto;
    42 41
     import fr.ird.observe.services.dto.seine.NonTargetCatchHelper;
    
    43 42
     import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchDto;
    
    44 43
     import fr.ird.observe.services.dto.seine.SetSeineNonTargetCatchHelper;
    
    45
    -import fr.ird.observe.services.service.data.seine.TripSeineService;
    
    46 44
     import java.beans.PropertyChangeListener;
    
    47 45
     import java.util.ArrayList;
    
    48
    -import java.util.Collection;
    
    49
    -import java.util.LinkedList;
    
    50 46
     import java.util.List;
    
    51 47
     import java.util.Set;
    
    52 48
     import javax.swing.JComponent;
    
    ... ... @@ -374,36 +370,16 @@ public class NonTargetCatchUIHandler extends ContentTableUIHandler<SetSeineNonTa
    374 370
             loadReferentialReferenceSetsInModel(form);
    
    375 371
             getModel().setForm(form);
    
    376 372
             SetSeineNonTargetCatchHelper.copySetSeineNonTargetCatchDto(form.getObject(), getBean());
    
    377
    -    }
    
    378
    -
    
    379
    -    @Override
    
    380
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    381
    -
    
    382
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    383
    -
    
    384
    -        switch (propertyName) {
    
    385
    -
    
    386
    -            case NonTargetCatchDto.PROPERTY_SPECIES: {
    
    387
    -
    
    388
    -                String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineNonTargetCatchId();
    
    389
    -                String tripSeineId = getDataContext().getSelectedTripSeineId();
    
    373
    +        addReferentialFilter(NonTargetCatchDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto>) incomingReferences -> {
    
    390 374
     
    
    391
    -                TripSeineService tripSeineService = getTripSeineService();
    
    392
    -                result = (List) tripSeineService.getSpeciesByListAndTrip(tripSeineId, speciesListId);
    
    375
    +            String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineNonTargetCatchId();
    
    376
    +            String tripLonglineId = getDataContext().getSelectedTripLonglineId();
    
    393 377
     
    
    394
    -                result = ReferentialReferences.filterEnabled(result);
    
    378
    +            List<ReferentialReference<SpeciesDto>> result = getTripSeineService().getSpeciesByListAndTrip(tripLonglineId, speciesListId);
    
    395 379
     
    
    396
    -                if (log.isDebugEnabled()) {
    
    397
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    398
    -                }
    
    399
    -            }
    
    400
    -
    
    401
    -            break;
    
    402
    -
    
    403
    -        }
    
    404
    -
    
    405
    -        return result;
    
    380
    +            return ReferentialReferences.filterEnabled(result);
    
    406 381
     
    
    382
    +        });
    
    407 383
         }
    
    408 384
     
    
    409 385
         boolean showReasonForDiscard(ReferentialReference<SpeciesFateDto> speciesFate) {
    

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/NonTargetSampleUIHandler.java
    ... ... @@ -29,7 +29,7 @@ import fr.ird.observe.client.ui.content.ContentMode;
    29 29
     import fr.ird.observe.client.ui.content.table.ContentTableModel;
    
    30 30
     import fr.ird.observe.services.dto.form.Form;
    
    31 31
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    32
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    32
    +import fr.ird.observe.services.dto.reference.ReferentialReferenceSet;
    
    33 33
     import fr.ird.observe.services.dto.referential.SexDto;
    
    34 34
     import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto;
    
    35 35
     import fr.ird.observe.services.dto.referential.SpeciesDto;
    
    ... ... @@ -64,6 +64,19 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS
    64 64
         /** Logger */
    
    65 65
         private static final Log log = LogFactory.getLog(NonTargetSampleUIHandler.class);
    
    66 66
     
    
    67
    +    NonTargetSampleUIHandler() {
    
    68
    +        addReferentialFilter(NonTargetLengthDto.PROPERTY_SPECIES, incomingReferences -> {
    
    69
    +            ReferentialReferenceSet<SpeciesDto> sampleSpecies = getNonTargetSampleService().getSampleSpecies(getSelectedParentId());
    
    70
    +            return new LinkedList<>(sampleSpecies.getReferences());
    
    71
    +//            return ReferentialReferences.filterEnabled(result);
    
    72
    +        });
    
    73
    +        addReferentialFilter(NonTargetLengthDto.PROPERTY_SPECIES_FATE, incomingReferences -> {
    
    74
    +            Collection<ReferentialReference<SpeciesFateDto>> speciesFate = getModel().getForm().getObject().getSpeciesFate();
    
    75
    +            return new LinkedList<>(speciesFate);
    
    76
    +//            return ReferentialReferences.filterEnabled(result);
    
    77
    +        });
    
    78
    +    }
    
    79
    +
    
    67 80
         @Override
    
    68 81
         public void resetIsWeightComputed() {
    
    69 82
             getTableEditBean().setIsWeightComputed(false);
    
    ... ... @@ -314,42 +327,6 @@ public class NonTargetSampleUIHandler extends AbstractSampleUIHandler<NonTargetS
    314 327
             updateUiWithReferenceSetsFromModel();
    
    315 328
     
    
    316 329
             NonTargetSampleHelper.copyNonTargetSampleDto(form.getObject(), getBean());
    
    317
    -    }
    
    318
    -
    
    319
    -    @Override
    
    320
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    321
    -
    
    322
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    323
    -
    
    324
    -        switch (propertyName) {
    
    325
    -
    
    326
    -            case NonTargetLengthDto.PROPERTY_SPECIES: {
    
    327
    -
    
    328
    -                result = (Collection) getNonTargetSampleService().getSampleSpecies(getSelectedParentId()).getReferences();
    
    329
    -
    
    330
    -                if (log.isDebugEnabled()) {
    
    331
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    332
    -                }
    
    333
    -            }
    
    334
    -
    
    335
    -            break;
    
    336
    -
    
    337
    -            case NonTargetLengthDto.PROPERTY_SPECIES_FATE: {
    
    338
    -
    
    339
    -                // on conserve uniquement les devenir utilisés dans les captures
    
    340
    -                Collection<ReferentialReference<SpeciesFateDto>> speciesFate = getModel().getForm().getObject().getSpeciesFate();
    
    341
    -                result = (Collection) speciesFate;
    
    342
    -
    
    343
    -                if (log.isDebugEnabled()) {
    
    344
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    345
    -                }
    
    346
    -            }
    
    347
    -
    
    348
    -            break;
    
    349
    -
    
    350
    -        }
    
    351
    -
    
    352
    -        return result;
    
    353 330
     
    
    354 331
         }
    
    355 332
     
    

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/ObjectObservedSpeciesUIHandler.java
    ... ... @@ -28,7 +28,6 @@ import fr.ird.observe.client.ui.content.table.ContentTableUIHandler;
    28 28
     import fr.ird.observe.services.dto.form.Form;
    
    29 29
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    30 30
     import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    31
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    32 31
     import fr.ird.observe.services.dto.referential.SpeciesDto;
    
    33 32
     import fr.ird.observe.services.dto.referential.SpeciesListDto;
    
    34 33
     import fr.ird.observe.services.dto.referential.seine.SpeciesStatusDto;
    
    ... ... @@ -37,9 +36,7 @@ import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesDto;
    37 36
     import fr.ird.observe.services.dto.seine.FloatingObjectObservedSpeciesHelper;
    
    38 37
     import fr.ird.observe.services.dto.seine.ObjectObservedSpeciesDto;
    
    39 38
     import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto;
    
    40
    -import fr.ird.observe.services.service.referential.ReferentialService;
    
    41
    -import java.util.Collection;
    
    42
    -import java.util.LinkedList;
    
    39
    +import java.util.List;
    
    43 40
     import java.util.Set;
    
    44 41
     import javax.swing.JTable;
    
    45 42
     import javax.swing.table.DefaultTableCellRenderer;
    
    ... ... @@ -61,6 +58,17 @@ public class ObjectObservedSpeciesUIHandler extends ContentTableUIHandler<Floati
    61 58
     
    
    62 59
         ObjectObservedSpeciesUIHandler() {
    
    63 60
             super(DataContextType.SetSeine);
    
    61
    +        addReferentialFilter(ObjectSchoolEstimateDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto>) incomingReferences -> {
    
    62
    +            String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineObjectObservedSpeciesId();
    
    63
    +            Form<SpeciesListDto> speciesListDtoForm = getReferentialService().loadForm(SpeciesListDto.class, speciesListId);
    
    64
    +            SpeciesListDto speciesListDto = speciesListDtoForm.getObject();
    
    65
    +
    
    66
    +            Set<String> speciesIds = speciesListDto.getSpeciesIds();
    
    67
    +
    
    68
    +            List<ReferentialReference<SpeciesDto>> result = ReferentialReferences.filterContains(incomingReferences, speciesIds);
    
    69
    +            return ReferentialReferences.filterEnabled(result);
    
    70
    +        });
    
    71
    +
    
    64 72
         }
    
    65 73
     
    
    66 74
         @Override
    
    ... ... @@ -110,36 +118,4 @@ public class ObjectObservedSpeciesUIHandler extends ContentTableUIHandler<Floati
    110 118
             getModel().setForm(form);
    
    111 119
             FloatingObjectObservedSpeciesHelper.copyFloatingObjectObservedSpeciesDto(form.getObject(), getBean());
    
    112 120
         }
    
    113
    -
    
    114
    -    @Override
    
    115
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    116
    -
    
    117
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    118
    -
    
    119
    -        switch (propertyName) {
    
    120
    -
    
    121
    -            case ObjectSchoolEstimateDto.PROPERTY_SPECIES: {
    
    122
    -                String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineObjectObservedSpeciesId();
    
    123
    -
    
    124
    -                ReferentialService referentialService = getReferentialService();
    
    125
    -                Form<SpeciesListDto> speciesListDtoForm = referentialService.loadForm(SpeciesListDto.class, speciesListId);
    
    126
    -                SpeciesListDto speciesListDto = speciesListDtoForm.getObject();
    
    127
    -
    
    128
    -                Set<String> speciesIds = speciesListDto.getSpeciesIds();
    
    129
    -
    
    130
    -                result = ReferentialReferences.filterContains(result, speciesIds);
    
    131
    -
    
    132
    -                if (log.isDebugEnabled()) {
    
    133
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    134
    -                }
    
    135
    -            }
    
    136
    -
    
    137
    -            break;
    
    138
    -
    
    139
    -        }
    
    140
    -
    
    141
    -        return result;
    
    142
    -
    
    143
    -    }
    
    144
    -
    
    145 121
     }

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/ObjectSchoolEstimateUIHandler.java
    ... ... @@ -28,16 +28,13 @@ import fr.ird.observe.client.ui.content.table.ContentTableUIHandler;
    28 28
     import fr.ird.observe.services.dto.form.Form;
    
    29 29
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    30 30
     import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    31
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    32 31
     import fr.ird.observe.services.dto.referential.SpeciesDto;
    
    33 32
     import fr.ird.observe.services.dto.referential.SpeciesListDto;
    
    34 33
     import fr.ird.observe.services.dto.result.SaveResultDto;
    
    35 34
     import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateDto;
    
    36 35
     import fr.ird.observe.services.dto.seine.FloatingObjectSchoolEstimateHelper;
    
    37 36
     import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto;
    
    38
    -import fr.ird.observe.services.service.referential.ReferentialService;
    
    39
    -import java.util.Collection;
    
    40
    -import java.util.LinkedList;
    
    37
    +import java.util.List;
    
    41 38
     import java.util.Set;
    
    42 39
     import javax.swing.JTable;
    
    43 40
     import javax.swing.table.DefaultTableCellRenderer;
    
    ... ... @@ -60,6 +57,16 @@ public class ObjectSchoolEstimateUIHandler extends ContentTableUIHandler<Floatin
    60 57
     
    
    61 58
         ObjectSchoolEstimateUIHandler() {
    
    62 59
             super(DataContextType.SetSeine);
    
    60
    +        addReferentialFilter(ObjectSchoolEstimateDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto>) incomingReferences -> {
    
    61
    +            String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineObjectSchoolEstimateId();
    
    62
    +            Form<SpeciesListDto> speciesListDtoForm = getReferentialService().loadForm(SpeciesListDto.class, speciesListId);
    
    63
    +            SpeciesListDto speciesListDto = speciesListDtoForm.getObject();
    
    64
    +
    
    65
    +            Set<String> speciesIds = speciesListDto.getSpeciesIds();
    
    66
    +
    
    67
    +            List<ReferentialReference<SpeciesDto>> result = ReferentialReferences.filterContains(incomingReferences, speciesIds);
    
    68
    +            return ReferentialReferences.filterEnabled(result);
    
    69
    +        });
    
    63 70
         }
    
    64 71
     
    
    65 72
         @Override
    
    ... ... @@ -107,34 +114,4 @@ public class ObjectSchoolEstimateUIHandler extends ContentTableUIHandler<Floatin
    107 114
             FloatingObjectSchoolEstimateHelper.copyFloatingObjectSchoolEstimateDto(form.getObject(), getBean());
    
    108 115
         }
    
    109 116
     
    
    110
    -    @Override
    
    111
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    112
    -
    
    113
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    114
    -
    
    115
    -        switch (propertyName) {
    
    116
    -
    
    117
    -            case ObjectSchoolEstimateDto.PROPERTY_SPECIES: {
    
    118
    -                String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineObjectSchoolEstimateId();
    
    119
    -
    
    120
    -                ReferentialService referentialService = getReferentialService();
    
    121
    -                Form<SpeciesListDto> speciesListDtoForm = referentialService.loadForm(SpeciesListDto.class, speciesListId);
    
    122
    -                SpeciesListDto speciesListDto = speciesListDtoForm.getObject();
    
    123
    -
    
    124
    -                Set<String> speciesIds = speciesListDto.getSpeciesIds();
    
    125
    -                result = ReferentialReferences.filterContains(result, speciesIds);
    
    126
    -
    
    127
    -                if (log.isDebugEnabled()) {
    
    128
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    129
    -                }
    
    130
    -            }
    
    131
    -
    
    132
    -            break;
    
    133
    -
    
    134
    -        }
    
    135
    -
    
    136
    -        return result;
    
    137
    -
    
    138
    -    }
    
    139
    -
    
    140 117
     }

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/SchoolEstimateUIHandler.java
    ... ... @@ -29,25 +29,18 @@ import fr.ird.observe.client.ui.content.table.ContentTableUIHandler;
    29 29
     import fr.ird.observe.services.dto.form.Form;
    
    30 30
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    31 31
     import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    32
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    33 32
     import fr.ird.observe.services.dto.referential.SpeciesDto;
    
    34 33
     import fr.ird.observe.services.dto.result.SaveResultDto;
    
    35
    -import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto;
    
    36 34
     import fr.ird.observe.services.dto.seine.SchoolEstimateDto;
    
    37 35
     import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateDto;
    
    38 36
     import fr.ird.observe.services.dto.seine.SetSeineSchoolEstimateHelper;
    
    39
    -import fr.ird.observe.services.service.data.seine.TripSeineService;
    
    40
    -import java.util.Collection;
    
    41 37
     import java.util.Collections;
    
    42
    -import java.util.LinkedList;
    
    43 38
     import java.util.List;
    
    44 39
     import java.util.Set;
    
    45 40
     import java.util.stream.Collectors;
    
    46 41
     import javax.swing.JComponent;
    
    47 42
     import javax.swing.JTable;
    
    48 43
     import javax.swing.table.DefaultTableCellRenderer;
    
    49
    -import org.apache.commons.logging.Log;
    
    50
    -import org.apache.commons.logging.LogFactory;
    
    51 44
     import org.nuiton.jaxx.runtime.spi.UIHandler;
    
    52 45
     
    
    53 46
     
    
    ... ... @@ -59,11 +52,15 @@ import static org.nuiton.i18n.I18n.n;
    59 52
      */
    
    60 53
     public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeineSchoolEstimateDto, SchoolEstimateDto, SchoolEstimateUI> implements UIHandler<SchoolEstimateUI> {
    
    61 54
     
    
    62
    -    /** Logger */
    
    63
    -    private static final Log log = LogFactory.getLog(SchoolEstimateUIHandler.class);
    
    64
    -
    
    65 55
         SchoolEstimateUIHandler() {
    
    66 56
             super(DataContextType.SetSeine);
    
    57
    +        addReferentialFilter(SchoolEstimateDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto>) incomingReferences -> {
    
    58
    +            String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineSchoolEstimateId();
    
    59
    +
    
    60
    +            String tripSeineId = getDataContext().getSelectedTripSeineId();
    
    61
    +            List<ReferentialReference<SpeciesDto>> result = getTripSeineService().getSpeciesByListAndTrip(tripSeineId, speciesListId);
    
    62
    +            return ReferentialReferences.filterEnabled(result);
    
    63
    +        });
    
    67 64
         }
    
    68 65
     
    
    69 66
         @Override
    
    ... ... @@ -138,34 +135,4 @@ public class SchoolEstimateUIHandler extends ContentTableUIHandler<SetSeineSchoo
    138 135
             SetSeineSchoolEstimateHelper.copySetSeineSchoolEstimateDto(form.getObject(), getBean());
    
    139 136
         }
    
    140 137
     
    
    141
    -    @Override
    
    142
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    143
    -
    
    144
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    145
    -
    
    146
    -        switch (propertyName) {
    
    147
    -
    
    148
    -            case ObjectSchoolEstimateDto.PROPERTY_SPECIES: {
    
    149
    -
    
    150
    -                String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineSchoolEstimateId();
    
    151
    -                String tripSeineId = getDataContext().getSelectedTripSeineId();
    
    152
    -
    
    153
    -                TripSeineService tripSeineService = getTripSeineService();
    
    154
    -                result = (List) tripSeineService.getSpeciesByListAndTrip(tripSeineId, speciesListId);
    
    155
    -
    
    156
    -                result = ReferentialReferences.filterEnabled(result);
    
    157
    -
    
    158
    -                if (log.isDebugEnabled()) {
    
    159
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    160
    -                }
    
    161
    -            }
    
    162
    -
    
    163
    -            break;
    
    164
    -
    
    165
    -        }
    
    166
    -
    
    167
    -        return result;
    
    168
    -
    
    169
    -    }
    
    170
    -
    
    171 138
     }

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/TargetCatchUIHandler.java
    ... ... @@ -31,20 +31,15 @@ import fr.ird.observe.client.ui.content.table.ContentTableUIHandler;
    31 31
     import fr.ird.observe.services.dto.form.Form;
    
    32 32
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    33 33
     import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    34
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    35 34
     import fr.ird.observe.services.dto.referential.SpeciesDto;
    
    36 35
     import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto;
    
    37 36
     import fr.ird.observe.services.dto.referential.seine.WeightCategoryHelper;
    
    38 37
     import fr.ird.observe.services.dto.result.SaveResultDto;
    
    39
    -import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto;
    
    40 38
     import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto;
    
    41 39
     import fr.ird.observe.services.dto.seine.SetSeineTargetCatchHelper;
    
    42 40
     import fr.ird.observe.services.dto.seine.TargetCatchDto;
    
    43 41
     import fr.ird.observe.services.dto.seine.TargetCatchHelper;
    
    44
    -import fr.ird.observe.services.service.data.seine.TripSeineService;
    
    45
    -import java.util.Collection;
    
    46 42
     import java.util.Collections;
    
    47
    -import java.util.LinkedList;
    
    48 43
     import java.util.List;
    
    49 44
     import java.util.Set;
    
    50 45
     import javax.swing.JComponent;
    
    ... ... @@ -72,6 +67,13 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeineTargetCa
    72 67
     
    
    73 68
         TargetCatchUIHandler() {
    
    74 69
             super(DataContextType.SetSeine);
    
    70
    +        addReferentialFilter(TargetCatchDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto>) incomingReferences -> {
    
    71
    +            String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineTargetCatchId();
    
    72
    +
    
    73
    +            String tripSeineId = getDataContext().getSelectedTripSeineId();
    
    74
    +            List<ReferentialReference<SpeciesDto>> result = getTripSeineService().getSpeciesByListAndTrip(tripSeineId, speciesListId);
    
    75
    +            return ReferentialReferences.filterEnabled(result);
    
    76
    +        });
    
    75 77
         }
    
    76 78
     
    
    77 79
         @Override
    
    ... ... @@ -287,34 +289,4 @@ public class TargetCatchUIHandler extends ContentTableUIHandler<SetSeineTargetCa
    287 289
             SetSeineTargetCatchHelper.copySetSeineTargetCatchDto(form.getObject(), getBean());
    
    288 290
         }
    
    289 291
     
    
    290
    -    @Override
    
    291
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    292
    -
    
    293
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    294
    -
    
    295
    -        switch (propertyName) {
    
    296
    -
    
    297
    -            case ObjectSchoolEstimateDto.PROPERTY_SPECIES: {
    
    298
    -
    
    299
    -                String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineTargetCatchId();
    
    300
    -                String tripSeineId = getDataContext().getSelectedTripSeineId();
    
    301
    -
    
    302
    -                TripSeineService tripSeineService = getTripSeineService();
    
    303
    -                result = (List) tripSeineService.getSpeciesByListAndTrip(tripSeineId, speciesListId);
    
    304
    -
    
    305
    -                result = ReferentialReferences.filterEnabled(result);
    
    306
    -
    
    307
    -                if (log.isDebugEnabled()) {
    
    308
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    309
    -                }
    
    310
    -            }
    
    311
    -
    
    312
    -            break;
    
    313
    -
    
    314
    -        }
    
    315
    -
    
    316
    -        return result;
    
    317
    -
    
    318
    -    }
    
    319
    -
    
    320 292
     }

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/TargetDiscardCatchUIHandler.java
    ... ... @@ -31,22 +31,18 @@ import fr.ird.observe.client.ui.content.table.ContentTableUIHandler;
    31 31
     import fr.ird.observe.services.dto.form.Form;
    
    32 32
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    33 33
     import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    34
    -import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    35 34
     import fr.ird.observe.services.dto.referential.SpeciesDto;
    
    36 35
     import fr.ird.observe.services.dto.referential.seine.ReasonForDiscardDto;
    
    37 36
     import fr.ird.observe.services.dto.referential.seine.WeightCategoryDto;
    
    38 37
     import fr.ird.observe.services.dto.referential.seine.WeightCategoryHelper;
    
    39 38
     import fr.ird.observe.services.dto.result.SaveResultDto;
    
    40
    -import fr.ird.observe.services.dto.seine.ObjectSchoolEstimateDto;
    
    41 39
     import fr.ird.observe.services.dto.seine.SetSeineTargetCatchDto;
    
    42 40
     import fr.ird.observe.services.dto.seine.SetSeineTargetCatchHelper;
    
    43 41
     import fr.ird.observe.services.dto.seine.TargetCatchDto;
    
    44 42
     import fr.ird.observe.services.dto.seine.TargetCatchHelper;
    
    45
    -import fr.ird.observe.services.service.data.seine.TripSeineService;
    
    46 43
     import java.util.ArrayList;
    
    47 44
     import java.util.Collection;
    
    48 45
     import java.util.Collections;
    
    49
    -import java.util.LinkedList;
    
    50 46
     import java.util.List;
    
    51 47
     import java.util.Optional;
    
    52 48
     import java.util.Set;
    
    ... ... @@ -75,6 +71,13 @@ public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeineT
    75 71
     
    
    76 72
         TargetDiscardCatchUIHandler() {
    
    77 73
             super(DataContextType.SetSeine);
    
    74
    +        addReferentialFilter(TargetCatchDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto>) incomingReferences -> {
    
    75
    +            String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineTargetCatchId();
    
    76
    +
    
    77
    +            String tripSeineId = getDataContext().getSelectedTripSeineId();
    
    78
    +            List<ReferentialReference<SpeciesDto>> result = getTripSeineService().getSpeciesByListAndTrip(tripSeineId, speciesListId);
    
    79
    +            return ReferentialReferences.filterEnabled(result);
    
    80
    +        });
    
    78 81
         }
    
    79 82
     
    
    80 83
         @Override
    
    ... ... @@ -416,35 +419,4 @@ public class TargetDiscardCatchUIHandler extends ContentTableUIHandler<SetSeineT
    416 419
             SetSeineTargetCatchHelper.copySetSeineTargetCatchDto(form.getObject(), getBean());
    
    417 420
         }
    
    418 421
     
    
    419
    -
    
    420
    -    @Override
    
    421
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    422
    -
    
    423
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    424
    -
    
    425
    -        switch (propertyName) {
    
    426
    -
    
    427
    -            case ObjectSchoolEstimateDto.PROPERTY_SPECIES: {
    
    428
    -
    
    429
    -                String speciesListId = ObserveSwingApplicationContext.get().getConfig().getSpeciesListSeineTargetCatchId();
    
    430
    -                String tripSeineId = getDataContext().getSelectedTripSeineId();
    
    431
    -
    
    432
    -                TripSeineService tripSeineService = getTripSeineService();
    
    433
    -                result = (List) tripSeineService.getSpeciesByListAndTrip(tripSeineId, speciesListId);
    
    434
    -
    
    435
    -                result = ReferentialReferences.filterEnabled(result);
    
    436
    -
    
    437
    -                if (log.isDebugEnabled()) {
    
    438
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    439
    -                }
    
    440
    -            }
    
    441
    -
    
    442
    -            break;
    
    443
    -
    
    444
    -        }
    
    445
    -
    
    446
    -        return result;
    
    447
    -
    
    448
    -    }
    
    449
    -
    
    450 422
     }

  • client/src/main/java/fr/ird/observe/client/ui/content/table/impl/seine/TargetSampleUIHandler.java
    ... ... @@ -29,6 +29,8 @@ import fr.ird.observe.client.ui.content.table.ContentTableModel;
    29 29
     import fr.ird.observe.client.ui.content.table.ContentTableUI;
    
    30 30
     import fr.ird.observe.services.dto.form.Form;
    
    31 31
     import fr.ird.observe.services.dto.reference.ReferentialReference;
    
    32
    +import fr.ird.observe.services.dto.reference.ReferentialReferenceSet;
    
    33
    +import fr.ird.observe.services.dto.reference.ReferentialReferences;
    
    32 34
     import fr.ird.observe.services.dto.referential.ReferentialDto;
    
    33 35
     import fr.ird.observe.services.dto.referential.SexDto;
    
    34 36
     import fr.ird.observe.services.dto.referential.SizeMeasureTypeDto;
    
    ... ... @@ -73,6 +75,15 @@ public class TargetSampleUIHandler<U extends ContentTableUI<TargetSampleDto, Tar
    73 75
     
    
    74 76
         public TargetSampleUIHandler(boolean discarded) {
    
    75 77
             this.discarded = discarded;
    
    78
    +        addReferentialFilter(TargetLengthDto.PROPERTY_SPECIES, (ReferentialReferencesFilter<SpeciesDto>) incomingReferences -> {
    
    79
    +            List<ReferentialReference<SpeciesDto>> result = TargetSampleUIHandler.this.getTargetSampleService().getSampleSpecies(TargetSampleUIHandler.this.getSelectedParentId(), discarded);
    
    80
    +            return ReferentialReferences.filterEnabled(result);
    
    81
    +        });
    
    82
    +        addReferentialFilter(TargetLengthDto.PROPERTY_SIZE_MEASURE_TYPE, (ReferentialReferencesFilter<SizeMeasureTypeDto>) incomingReferences -> {
    
    83
    +            List<ReferentialReference<SizeMeasureTypeDto>> result = SizeMeasureTypeHelper.filterForSeine(incomingReferences);
    
    84
    +            checkSizeMeasureTypes(result);
    
    85
    +            return ReferentialReferences.filterEnabled(result);
    
    86
    +        });
    
    76 87
         }
    
    77 88
     
    
    78 89
         @Override
    
    ... ... @@ -353,40 +364,6 @@ public class TargetSampleUIHandler<U extends ContentTableUI<TargetSampleDto, Tar
    353 364
             TargetSampleHelper.copyTargetSampleDto(form.getObject(), getBean());
    
    354 365
         }
    
    355 366
     
    
    356
    -    @Override
    
    357
    -    protected <D extends ReferentialDto> Collection<ReferentialReference<D>> filterReferentialReferences(Class<D> dtoType, String propertyName, LinkedList<ReferentialReference<D>> incomingReferences) {
    
    358
    -
    
    359
    -        Collection<ReferentialReference<D>> result = super.filterReferentialReferences(dtoType, propertyName, incomingReferences);
    
    360
    -
    
    361
    -        switch (propertyName) {
    
    362
    -
    
    363
    -            case TargetLengthDto.PROPERTY_SPECIES: {
    
    364
    -
    
    365
    -                result = (List) getTargetSampleService().getSampleSpecies(getSelectedParentId(), discarded);
    
    366
    -
    
    367
    -                if (log.isDebugEnabled()) {
    
    368
    -                    log.debug(String.format("Filter referential references (type %s - property %s), final size: %d", dtoType.getSimpleName(), propertyName, incomingReferences.size()));
    
    369
    -                }
    
    370
    -
    
    371
    -            }
    
    372
    -
    
    373
    -            break;
    
    374
    -
    
    375
    -            case TargetLengthDto.PROPERTY_SIZE_MEASURE_TYPE: {
    
    376
    -
    
    377
    -                result = SizeMeasureTypeHelper.filterForSeine((Collection) incomingReferences);
    
    378
    -                if (log.isInfoEnabled()) {
    
    379
    -                    log.info("Using " + result.size() + " size measure type(s).");
    
    380
    -                }
    
    381
    -                checkSizeMeasureTypes((List) result);
    
    382
    -            }
    
    383
    -        }
    
    384
    -
    
    385
    -
    
    386
    -        return result;
    
    387
    -
    
    388
    -    }
    
    389
    -
    
    390 367
         private Optional<ReferentialReference<SizeMeasureTypeDto>> getSpeciesDefaultSizeMeasureType(ReferentialReference<SpeciesDto> species) {
    
    391 368
             Optional<ReferentialReference<SizeMeasureTypeDto>> result = Optional.empty();
    
    392 369
             if (species != null) {