2 * Copyright (C) 2019 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.cdm
.api
.service
.description
;
11 import java
.util
.List
;
12 import java
.util
.UUID
;
14 import eu
.etaxonomy
.cdm
.common
.monitor
.IProgressMonitor
;
15 import eu
.etaxonomy
.cdm
.filter
.LogicFilter
;
16 import eu
.etaxonomy
.cdm
.filter
.TaxonNodeFilter
;
17 import eu
.etaxonomy
.cdm
.model
.description
.PresenceAbsenceTerm
;
18 import eu
.etaxonomy
.cdm
.model
.location
.NamedArea
;
19 import eu
.etaxonomy
.cdm
.model
.name
.Rank
;
20 import eu
.etaxonomy
.cdm
.model
.term
.TermCollection
;
21 import eu
.etaxonomy
.cdm
.model
.term
.TermNode
;
22 import eu
.etaxonomy
.cdm
.model
.term
.TermTree
;
28 public class DistributionAggregationConfiguration
29 extends DescriptionAggregationConfigurationBase
<DistributionAggregation
> {
31 private static final long serialVersionUID
= 2542246141660930545L;
33 private AggregationMode aggregationMode
;
35 private List
<NamedArea
> superAreas
;
37 private TermCollection
<PresenceAbsenceTerm
, TermNode
> statusOrder
;
39 // **************************************** FACTORY ************************************/
41 public static DistributionAggregationConfiguration
NewInstance(AggregationMode aggregationMode
, List
<NamedArea
> superAreas
,
42 TaxonNodeFilter filter
, IProgressMonitor monitor
){
43 return new DistributionAggregationConfiguration(aggregationMode
, superAreas
, filter
, monitor
);
46 public static DistributionAggregationConfiguration
NewInstance(AggregationMode aggregationMode
, List
<NamedArea
> superAreas
,
47 TaxonNodeFilter filter
, TermTree
<PresenceAbsenceTerm
> statusOrder
, IProgressMonitor monitor
){
48 DistributionAggregationConfiguration result
= new DistributionAggregationConfiguration(aggregationMode
, superAreas
, filter
, monitor
);
49 result
.setStatusOrder(statusOrder
);
54 // ************************ CONSTRUCTOR *****************************/
56 private DistributionAggregationConfiguration(AggregationMode aggregationMode
, List
<NamedArea
> superAreas
,
57 TaxonNodeFilter filter
, IProgressMonitor monitor
) {
58 super(filter
, monitor
);
59 this.aggregationMode
= aggregationMode
;
60 this.superAreas
= superAreas
;
63 // ******************** METHOD **************************************/
66 public DistributionAggregation
getTaskInstance() {
67 return new DistributionAggregation();
70 // ******************* GETTER / SETTER ****************************/
72 public AggregationMode
getAggregationMode() {
73 return aggregationMode
;
75 public void setAggregationMode(AggregationMode aggregationMode
) {
76 this.aggregationMode
= aggregationMode
;
79 public List
<NamedArea
> getSuperAreas() {
82 public void setSuperAreas(List
<NamedArea
> superAreas
) {
83 this.superAreas
= superAreas
;
86 public UUID
getLowerRank() {
87 LogicFilter
<Rank
> rankMin
= getTaxonNodeFilter().getRankMin();
88 return rankMin
== null ?
null: rankMin
.getUuid();
91 public UUID
getUpperRank() {
92 LogicFilter
<Rank
> rankMax
= getTaxonNodeFilter().getRankMax();
93 return rankMax
== null ?
null: rankMax
.getUuid();
96 public TermCollection
<PresenceAbsenceTerm
, TermNode
> getStatusOrder() {
99 public void setStatusOrder(TermCollection
<PresenceAbsenceTerm
, TermNode
> statusOrder
) {
100 this.statusOrder
= statusOrder
;