Project

General

Profile

Download (4.39 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2019 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.api.service.description;
10

    
11
import java.util.List;
12
import java.util.UUID;
13

    
14
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
15
import eu.etaxonomy.cdm.filter.TaxonNodeFilter;
16

    
17
/**
18
 * @author a.mueller
19
 * @since 12.11.2019
20
 */
21
public class StructuredDescriptionAggregationConfiguration
22
        extends DescriptionAggregationConfigurationBase<StructuredDescriptionAggregation> {
23

    
24
    private static final long serialVersionUID = 7485291596888612932L;
25

    
26
    private UUID datasetUuid;
27

    
28
    boolean includeDefault = true;
29
    boolean includeLiterature = true;
30
    /**
31
     * If source mode is {@link AggregationSourceMode#DESCRIPTION} descriptions
32
     * are cloned as sources. This parameter defines if aggregated descriptions
33
     * being the sources for further aggregation should also be cloned or
34
     * can be handled as stable as usually they are not changing overtime
35
     * or stability is not a requirement.
36
     * TODO maybe we want to move it to base class
37
     * TODO maybe we need the same for non-aggregated descriptions
38
     * (generell or specific for specimen, literature and/or default descriptions).
39
     */
40
    boolean cloneAggregatedSourceDescriptions = false;
41

    
42
    private MissingMinimumMode missingMinimumMode = MissingMinimumMode.MinToZero;
43
    private MissingMaximumMode missingMaximumMode = MissingMaximumMode.MaxToMin;
44

    
45
// ******************* FACTORY ***************************************/
46

    
47
    public static StructuredDescriptionAggregationConfiguration NewInstance(
48
            TaxonNodeFilter filter, IProgressMonitor monitor){
49
        return new StructuredDescriptionAggregationConfiguration(filter, null, monitor, null, null);
50
    }
51

    
52

    
53
    public static StructuredDescriptionAggregationConfiguration NewInstance(TaxonNodeFilter filter,
54
            IProgressMonitor monitor, Boolean includeDefault, Boolean includeLiterature){
55
        return new StructuredDescriptionAggregationConfiguration(filter, null, monitor, includeDefault, includeLiterature);
56
    }
57

    
58
// ******************* CONSTRUCTOR ***********************************/
59

    
60
    protected StructuredDescriptionAggregationConfiguration(TaxonNodeFilter filter,
61
            List<AggregationMode> aggregationModes, IProgressMonitor monitor, Boolean includeDefault, Boolean includeLiterature) {
62
        super(filter, monitor, aggregationModes);
63
        setWithinTaxonSourceMode(AggregationSourceMode.DESCRIPTION);  //default mode for structured descriptions
64
        setToParentSourceMode(AggregationSourceMode.TAXON);  //default mode for structured descriptions
65
        if (includeDefault != null){
66
            this.includeDefault = includeDefault;
67
        }
68
        if (includeLiterature != null){
69
            this.includeLiterature = includeLiterature;
70
        }
71
    }
72

    
73
// ******************** METHOD **************************************/
74

    
75
    @Override
76
    public StructuredDescriptionAggregation getTaskInstance() {
77
        return new StructuredDescriptionAggregation();
78
    }
79

    
80
// *********************** GETTER / SETTER ****************************/
81

    
82
    public boolean isIncludeDefault() {
83
        return includeDefault;
84
    }
85
    public void setIncludeDefault(boolean includeDefault) {
86
        this.includeDefault = includeDefault;
87
    }
88

    
89
    public boolean isIncludeLiterature() {
90
        return includeLiterature;
91
    }
92
    public void setIncludeLiterature(boolean includeLiterature) {
93
        this.includeLiterature = includeLiterature;
94
    }
95

    
96
    public UUID getDatasetUuid() {
97
        return datasetUuid;
98
    }
99
    public void setDatasetUuid(UUID datasetUuid) {
100
        this.datasetUuid = datasetUuid;
101
    }
102

    
103
    public MissingMinimumMode getMissingMinimumMode() {
104
        return missingMinimumMode;
105
    }
106
    public void setMissingMinimumMode(MissingMinimumMode missingMinimumMode) {
107
        this.missingMinimumMode = missingMinimumMode;
108
    }
109

    
110
    public MissingMaximumMode getMissingMaximumMode() {
111
        return missingMaximumMode;
112
    }
113
    public void setMissingMaximumMode(MissingMaximumMode missingMaximumMode) {
114
        this.missingMaximumMode = missingMaximumMode;
115
    }
116

    
117
    public boolean isCloneAggregatedSourceDescriptions() {
118
        // TODO Auto-generated method stub
119
        return false;
120
    }
121
}
(12-12/12)