Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Measurements.java @ 3290:36f3b53d5cfc
SQ relation: Added infrastructure to extract fractions from measurments.
flys-artifacts/trunk@4958 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Thu, 12 Jul 2012 17:34:40 +0000 |
parents | |
children | 5e52202302e5 |
comparison
equal
deleted
inserted
replaced
3289:ec9aab93f292 | 3290:36f3b53d5cfc |
---|---|
1 package de.intevation.flys.artifacts.model.sq; | |
2 | |
3 import java.util.List; | |
4 import java.util.ArrayList; | |
5 | |
6 public class Measurements | |
7 { | |
8 public interface SExtractor { | |
9 double getS(Measurement measument); | |
10 } // interface SExtractor | |
11 | |
12 public static final SExtractor S_SF_EXTRACTOR = new SExtractor() { | |
13 @Override | |
14 public double getS(Measurement measument) { | |
15 return measument.S_SF(); | |
16 } | |
17 }; | |
18 | |
19 public static final SExtractor S_SS_EXTRACTOR = new SExtractor() { | |
20 @Override | |
21 public double getS(Measurement measument) { | |
22 return measument.S_SS(); | |
23 } | |
24 }; | |
25 | |
26 public static final SExtractor S_BL_S_EXTRACTOR = new SExtractor() { | |
27 @Override | |
28 public double getS(Measurement measument) { | |
29 return measument.S_BL_S(); | |
30 } | |
31 }; | |
32 | |
33 public static final SExtractor S_BL_FG_EXTRACTOR = new SExtractor() { | |
34 @Override | |
35 public double getS(Measurement measument) { | |
36 return measument.S_BL_FG(); | |
37 } | |
38 }; | |
39 | |
40 public static final SExtractor S_BL_CG_EXTRACTOR = new SExtractor() { | |
41 @Override | |
42 public double getS(Measurement measument) { | |
43 return measument.S_BL_CG(); | |
44 } | |
45 }; | |
46 | |
47 public static final SExtractor S_BL_EXTRACTOR = new SExtractor() { | |
48 @Override | |
49 public double getS(Measurement measument) { | |
50 return measument.S_BL(); | |
51 } | |
52 }; | |
53 | |
54 protected List<Measurement> measuments; | |
55 | |
56 public Measurements() { | |
57 } | |
58 | |
59 public Measurements(List<Measurement> measuments) { | |
60 this.measuments = measuments; | |
61 } | |
62 | |
63 public List<SQ> extractSQ(SExtractor extractor) { | |
64 List<SQ> result = new ArrayList(measuments.size()); | |
65 for (Measurement measument: measuments) { | |
66 SQ sq = new SQ(extractor.getS(measument), measument.Q()); | |
67 if (sq.isValid()) { | |
68 result.add(sq); | |
69 } | |
70 } | |
71 return result; | |
72 } | |
73 | |
74 public List<SQ> S_SF() { | |
75 return extractSQ(S_SF_EXTRACTOR); | |
76 } | |
77 | |
78 public List<SQ> S_SS() { | |
79 return extractSQ(S_SS_EXTRACTOR); | |
80 } | |
81 | |
82 public List<SQ> S_BL_S() { | |
83 return extractSQ(S_BL_S_EXTRACTOR); | |
84 } | |
85 | |
86 public List<SQ> S_BL_FG() { | |
87 return extractSQ(S_BL_FG_EXTRACTOR); | |
88 } | |
89 | |
90 public List<SQ> S_BL_CG() { | |
91 return extractSQ(S_BL_CG_EXTRACTOR); | |
92 } | |
93 | |
94 public List<SQ> S_BL() { | |
95 return extractSQ(S_BL_EXTRACTOR); | |
96 } | |
97 | |
98 public List<SQ> getSQs(int index) { | |
99 switch (index) { | |
100 case 0: return S_SF(); | |
101 case 1: return S_SS(); | |
102 case 2: return S_BL_S(); | |
103 case 3: return S_BL_FG(); | |
104 case 4: return S_BL_CG(); | |
105 case 5: return S_BL(); | |
106 } | |
107 // XXX: Should we throw an exception? | |
108 return null; | |
109 } | |
110 | |
111 @Override | |
112 public String toString() { | |
113 StringBuilder sb = new StringBuilder("Measurements ["); | |
114 for (int i = 0, M = measuments.size(); i < M; ++i) { | |
115 if (i > 0) sb.append(", "); | |
116 sb.append(measuments.get(i)); | |
117 } | |
118 return sb.append(']').toString(); | |
119 } | |
120 } | |
121 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 : |