Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/Measurements.java @ 5838:5aa05a7a34b7
Rename modules to more fitting names.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 25 Apr 2013 15:23:37 +0200 |
parents | flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/Measurements.java@bd047b71ab37 |
children | 4897a58c8746 |
comparison
equal
deleted
inserted
replaced
5837:d9901a08d0a6 | 5838:5aa05a7a34b7 |
---|---|
1 package org.dive4elements.river.artifacts.model.sq; | |
2 | |
3 import java.util.ArrayList; | |
4 import java.util.List; | |
5 | |
6 import org.apache.log4j.Logger; | |
7 | |
8 public class Measurements | |
9 { | |
10 private static final Logger log = Logger.getLogger(Measurements.class); | |
11 | |
12 public interface SExtractor { | |
13 double getS(Measurement measument); | |
14 } // interface SExtractor | |
15 | |
16 public static final SExtractor S_SF_EXTRACTOR = new SExtractor() { | |
17 @Override | |
18 public double getS(Measurement measument) { | |
19 return measument.S_SF(); | |
20 } | |
21 }; | |
22 | |
23 public static final SExtractor S_SS_EXTRACTOR = new SExtractor() { | |
24 @Override | |
25 public double getS(Measurement measument) { | |
26 return measument.S_SS(); | |
27 } | |
28 }; | |
29 | |
30 public static final SExtractor S_BL_S_EXTRACTOR = new SExtractor() { | |
31 @Override | |
32 public double getS(Measurement measument) { | |
33 return measument.S_BL_S(); | |
34 } | |
35 }; | |
36 | |
37 public static final SExtractor S_BL_FG_EXTRACTOR = new SExtractor() { | |
38 @Override | |
39 public double getS(Measurement measument) { | |
40 return measument.S_BL_FG(); | |
41 } | |
42 }; | |
43 | |
44 public static final SExtractor S_BL_CG_EXTRACTOR = new SExtractor() { | |
45 @Override | |
46 public double getS(Measurement measument) { | |
47 return measument.S_BL_CG(); | |
48 } | |
49 }; | |
50 | |
51 public static final SExtractor S_BL_EXTRACTOR = new SExtractor() { | |
52 @Override | |
53 public double getS(Measurement measument) { | |
54 return measument.BL_S(); | |
55 } | |
56 }; | |
57 | |
58 protected List<Measurement> measuments; | |
59 protected List<Measurement> accumulated; | |
60 | |
61 public Measurements() { | |
62 } | |
63 | |
64 public Measurements( | |
65 List<Measurement> measuments, | |
66 List<Measurement> accumulated | |
67 ) { | |
68 if (log.isDebugEnabled()) { | |
69 log.debug("number of measuments: " + measuments.size()); | |
70 log.debug("number of accumulated: " + accumulated.size()); | |
71 } | |
72 this.measuments = measuments; | |
73 this.accumulated = accumulated; | |
74 } | |
75 | |
76 public static List<SQ> extractSQ( | |
77 List<Measurement> measuments, | |
78 SExtractor extractor | |
79 ) { | |
80 List<SQ> result = new ArrayList<SQ>(measuments.size()); | |
81 int invalid = 0; | |
82 for (Measurement measument: measuments) { | |
83 SQ sq = new SQ(extractor.getS(measument), measument.Q()); | |
84 if (sq.isValid()) { | |
85 result.add(sq); | |
86 } | |
87 else { | |
88 ++invalid; | |
89 } | |
90 } | |
91 if (log.isDebugEnabled()) { | |
92 log.debug("Removed num invalid: " + invalid | |
93 + " of " + measuments.size()); | |
94 } | |
95 return result; | |
96 } | |
97 | |
98 public List<SQ> S_SF() { | |
99 return extractSQ(measuments, S_SF_EXTRACTOR); | |
100 } | |
101 | |
102 public List<SQ> S_SS() { | |
103 return extractSQ(measuments, S_SS_EXTRACTOR); | |
104 } | |
105 | |
106 public List<SQ> S_BL_S() { | |
107 return extractSQ(accumulated, S_BL_S_EXTRACTOR); | |
108 } | |
109 | |
110 public List<SQ> S_BL_FG() { | |
111 return extractSQ(accumulated, S_BL_FG_EXTRACTOR); | |
112 } | |
113 | |
114 public List<SQ> S_BL_CG() { | |
115 return extractSQ(accumulated, S_BL_CG_EXTRACTOR); | |
116 } | |
117 | |
118 public List<SQ> S_BL() { | |
119 return extractSQ(accumulated, S_BL_EXTRACTOR); | |
120 } | |
121 | |
122 public List<SQ> getSQs(int index) { | |
123 switch (index) { | |
124 case 0: return S_SF(); | |
125 case 1: return S_SS(); | |
126 case 2: return S_BL_S(); | |
127 case 3: return S_BL_FG(); | |
128 case 4: return S_BL_CG(); | |
129 case 5: return S_BL(); | |
130 } | |
131 log.error("THIS SHOULD NOT HAPPEN: Tried to access SQ[" + index + "]"); | |
132 return new ArrayList<SQ>(0); | |
133 } | |
134 | |
135 /** | |
136 * Gets the accumulated for this instance. | |
137 * | |
138 * @return The accumulated. | |
139 */ | |
140 public List<Measurement> getAccumulated() { | |
141 return this.accumulated; | |
142 } | |
143 | |
144 /** | |
145 * Sets the accumulated for this instance. | |
146 * | |
147 * @param accumulated The accumulated. | |
148 */ | |
149 public void setAccumulated(List<Measurement> accumulated) { | |
150 this.accumulated = accumulated; | |
151 } | |
152 | |
153 | |
154 @Override | |
155 public String toString() { | |
156 StringBuilder sb = new StringBuilder("Measurements ["); | |
157 for (int i = 0, M = measuments.size(); i < M; ++i) { | |
158 if (i > 0) sb.append(", "); | |
159 sb.append(measuments.get(i)); | |
160 } | |
161 return sb.append(']').toString(); | |
162 } | |
163 } | |
164 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |