annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadDataValueFilter.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents b207eeb66edd
children
rev   line source
8037
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2014 by Bundesanstalt für Gewässerkunde
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
3 *
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
7 */
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
8 package org.dive4elements.river.artifacts.model.minfo;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
9
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
10 import java.util.ArrayList;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
11 import java.util.Calendar;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
12 import java.util.Date;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
13 import java.util.List;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
14
8186
a1ceacf15d3a Removed NASTY package clash. We had too org.dive4elements.river.util packages.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8180
diff changeset
15 import org.dive4elements.river.backend.utils.DateUtil;
8180
00066d3add94 The existing implementation respects the fact that months are 0-based.
Tom Gottfried <tom@intevation.de>
parents: 8068
diff changeset
16
8037
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
17 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData.Value;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
18 import org.dive4elements.river.artifacts.model.minfo.SedimentLoadData.Value.Filter;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
19
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
20 public final class SedimentLoadDataValueFilter {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
21
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
22 private SedimentLoadDataValueFilter() {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
23 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
24
8055
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
25 public static final class Not implements Filter {
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
26
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
27 private Filter parent;
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
28
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
29 public Not(Filter parent) {
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
30 this.parent = parent;
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
31 }
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
32
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
33 @Override
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
34 public boolean accept(Value value) {
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
35 return !parent.accept(value);
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
36 }
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
37 } // class Not
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
38
8037
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
39 public static abstract class Composite implements Filter {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
40 protected List<Filter> filters;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
41
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
42 public Composite() {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
43 filters = new ArrayList<Filter>();
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
44 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
45
8068
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
46 public Composite(Filter filter) {
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
47 this();
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
48 add(filter);
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
49 }
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
50
8055
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
51 public Composite add(Filter filter) {
8037
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
52 filters.add(filter);
8055
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
53 return this;
8037
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
54 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
55 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
56
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
57 public static final class And extends Composite {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
58
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
59 public And() {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
60 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
61
8068
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
62 public And(Filter filter) {
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
63 super(filter);
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
64 }
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
65
8037
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
66 @Override
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
67 public boolean accept(Value value) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
68 for (Filter filter: filters) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
69 if (!filter.accept(value)) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
70 return false;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
71 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
72 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
73 return true;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
74 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
75 } // class And
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
76
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
77 public static final class Or extends Composite {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
78
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
79 public Or() {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
80 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
81
8068
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
82 public Or(Composite filter) {
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
83 super(filter);
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
84 }
9ecd6267323b Sediment load: transform units for official epochs, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8060
diff changeset
85
8037
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
86 @Override
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
87 public boolean accept(Value value) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
88 for (Filter filter: filters) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
89 if (filter.accept(value)) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
90 return true;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
91 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
92 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
93 return false;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
94 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
95 } // class Or
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
96
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
97 public static final class Year implements Filter {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
98
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
99 private int year;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
100
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
101 public Year(int year) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
102 this.year = year;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
103 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
104
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
105 @Override
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
106 public boolean accept(Value value) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
107 Calendar cal = Calendar.getInstance();
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
108 cal.setTime(value.getLoad().getStartTime());
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
109 return cal.get(Calendar.YEAR) == year;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
110 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
111 } // class Year
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
112
8238
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
113 public static final class SQTimeInterval implements Filter {
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
114
8239
b207eeb66edd (issue1448) Objectify sq_time_interval id.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8238
diff changeset
115 private Integer sqTiId;
8238
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
116
8239
b207eeb66edd (issue1448) Objectify sq_time_interval id.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8238
diff changeset
117 public SQTimeInterval(Integer sqTiId) {
8238
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
118 this.sqTiId = sqTiId;
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
119 }
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
120
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
121 @Override
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
122 public boolean accept(Value value) {
8239
b207eeb66edd (issue1448) Objectify sq_time_interval id.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8238
diff changeset
123 if (sqTiId == null) {
8238
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
124 /* Nothing set, nothing filtered */
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
125 return true;
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
126 }
8239
b207eeb66edd (issue1448) Objectify sq_time_interval id.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8238
diff changeset
127 if (value.getLoad().getSQRelationTimeIntervalId() == null) {
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8239
diff changeset
128 /* Loads without sqRelationTimeInterval are "Schwebstoffe"
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8239
diff changeset
129 * and should be included. */
8238
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
130 return true;
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
131 }
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
132 /* All other values should be filtered accordingly. */
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8239
diff changeset
133 return value.getLoad().getSQRelationTimeIntervalId()
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8239
diff changeset
134 .equals(sqTiId);
8238
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
135 }
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
136 } // class SQTimeInterval
be3c11bef6e8 (issue1448) Finally use the sq time interval as filter in the calculation.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 8186
diff changeset
137
8037
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
138 public static final class IsEpoch implements Filter {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
139
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
140 public static final IsEpoch INSTANCE = new IsEpoch();
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
141
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
142 private IsEpoch() {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
143 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
144
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
145 @Override
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
146 public boolean accept(Value value) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
147 return value.getLoad().isEpoch();
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
148 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
149 } // class Year
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
150
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
151 public static final class TimeRangeIntersects implements Filter {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
152
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
153 private Date a;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
154 private Date b;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
155
8055
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
156 public TimeRangeIntersects(int year) {
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
157 this(year, year);
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
158 }
cd35b76f1ef8 Sediment load. More off year based calculations.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8053
diff changeset
159
8053
72760ca2fc2b Sediment load: dispatch calculation modes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8037
diff changeset
160 public TimeRangeIntersects(int startYear, int endYear) {
8180
00066d3add94 The existing implementation respects the fact that months are 0-based.
Tom Gottfried <tom@intevation.de>
parents: 8068
diff changeset
161 this(DateUtil.getStartDateFromYear(Math.min(startYear, endYear)),
00066d3add94 The existing implementation respects the fact that months are 0-based.
Tom Gottfried <tom@intevation.de>
parents: 8068
diff changeset
162 DateUtil.getEndDateFromYear(Math.max(startYear, endYear)));
8053
72760ca2fc2b Sediment load: dispatch calculation modes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8037
diff changeset
163 }
72760ca2fc2b Sediment load: dispatch calculation modes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8037
diff changeset
164
8037
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
165 public TimeRangeIntersects(Date a, Date b) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
166 if (a.after(b)) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
167 this.b = a;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
168 this.a = b;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
169 } else {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
170 this.a = a;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
171 this.b = b;
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
172 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
173 }
8060
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
174
8037
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
175 @Override
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
176 public boolean accept(Value value) {
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
177 Date c = value.getLoad().getStartTime();
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
178 Date d = value.getLoad().getStopTime();
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
179 return d == null
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
180 ? c.compareTo(a) >= 0 && c.compareTo(b) <= 0
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
181 : !(a.after(d) || c.after(b));
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
182 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
183 } // class TimeRangeIntersects
8060
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
184
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
185 public static final class IsOfficial implements Filter {
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
186
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
187 public static final IsOfficial INSTANCE = new IsOfficial();
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
188
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
189 private IsOfficial() {
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
190 }
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
191
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
192 @Override
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
193 public boolean accept(Value value) {
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
194 return value.getLoad().getKind() == 1;
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
195 }
25feef564d09 Sediment load: More of official epochs.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8055
diff changeset
196 } // class IsOfficial
8037
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
197 }
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
198 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :
1de6256c9786 Added filters for loaded sediment data values. Year, Epochs (time ranges), And and Or.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
199

http://dive4elements.wald.intevation.org