Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/exports/fixings/DeltaWtExporter.java @ 5603:47e5bc64d3de
FixA: tab output ist now grouped by km and periods. Fixes flys/issue1163
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Mon, 08 Apr 2013 17:23:20 +0200 |
parents | b195fede1c3b |
children |
comparison
equal
deleted
inserted
replaced
5602:a586153a277a | 5603:47e5bc64d3de |
---|---|
25 import java.text.MessageFormat; | 25 import java.text.MessageFormat; |
26 import java.text.NumberFormat; | 26 import java.text.NumberFormat; |
27 | 27 |
28 import java.util.ArrayList; | 28 import java.util.ArrayList; |
29 import java.util.List; | 29 import java.util.List; |
30 import java.util.TreeMap; | |
30 | 31 |
31 import org.apache.log4j.Logger; | 32 import org.apache.log4j.Logger; |
32 | 33 |
33 import org.w3c.dom.Document; | 34 import org.w3c.dom.Document; |
34 | 35 |
129 NumberFormat qF = getQFormatter(); | 130 NumberFormat qF = getQFormatter(); |
130 NumberFormat wF = getWFormatter(); | 131 NumberFormat wF = getWFormatter(); |
131 | 132 |
132 DateFormat dF = getDateFormatter(); | 133 DateFormat dF = getDateFormatter(); |
133 | 134 |
135 TreeMap<Double, ArrayList<String []>> sorted = | |
136 new TreeMap<Double, ArrayList<String []>>(); | |
137 | |
134 String referenceS = getReference(); | 138 String referenceS = getReference(); |
135 | 139 |
136 for (KMIndex<QWD[]> reference: referenceEvents) { | 140 for (KMIndex<QWD[]> reference: referenceEvents) { |
137 | 141 |
138 for (KMIndex.Entry<QWD[]> kmEntry: reference) { | 142 for (KMIndex.Entry<QWD[]> kmEntry: reference) { |
139 | 143 |
140 String kmS = kmF.format(kmEntry.getKm()); | 144 Double km = kmEntry.getKm(); |
141 for (QWD qwd: kmEntry.getValue()) { | 145 |
146 ArrayList<String []> list = sorted.get(km); | |
147 | |
148 if (list == null) { | |
149 list = new ArrayList<String []>(); | |
150 sorted.put(km, list); | |
151 } | |
152 | |
153 String kmS = kmF.format(kmEntry.getKm()); | |
154 for (QWD qwd: kmEntry.getValue()) { | |
142 String deltaWS = dwF.format(qwd.getDeltaW()); | 155 String deltaWS = dwF.format(qwd.getDeltaW()); |
143 String qS = qF.format(qwd.getQ()); | 156 String qS = qF.format(qwd.getQ()); |
144 String wS = wF.format(qwd.getW()); | 157 String wS = wF.format(qwd.getW()); |
145 String dateS = dF.format(qwd.getDate()); | 158 String dateS = dF.format(qwd.getDate()); |
146 | 159 |
147 writer.writeNext(new String[] { | 160 list.add(new String[] { |
148 kmS, | 161 kmS, |
149 dateS, | 162 dateS, |
150 qS, | 163 qS, |
151 wS, | 164 wS, |
152 referenceS, | 165 referenceS, |
153 deltaWS | 166 deltaWS |
154 }); | 167 }); |
155 } | 168 } |
156 } | 169 } |
157 } | 170 } |
158 | 171 |
159 if (debug) { | 172 if (debug) { |
160 log.debug("AnalysisPeriods: " + analysisPeriods.size()); | 173 log.debug("AnalysisPeriods: " + analysisPeriods.size()); |
163 String analysisTemplate = getAnalysisTemplate(); | 176 String analysisTemplate = getAnalysisTemplate(); |
164 | 177 |
165 for (KMIndex<AnalysisPeriod []> periods: analysisPeriods) { | 178 for (KMIndex<AnalysisPeriod []> periods: analysisPeriods) { |
166 | 179 |
167 for (KMIndex.Entry<AnalysisPeriod []> kmEntry: periods) { | 180 for (KMIndex.Entry<AnalysisPeriod []> kmEntry: periods) { |
181 | |
182 Double km = kmEntry.getKm(); | |
183 | |
184 ArrayList<String []> list = sorted.get(km); | |
185 | |
186 if (list == null) { | |
187 list = new ArrayList<String []>(); | |
188 sorted.put(km, list); | |
189 } | |
168 | 190 |
169 String kmS = kmF.format(kmEntry.getKm()); | 191 String kmS = kmF.format(kmEntry.getKm()); |
170 int analysisCount = 1; | 192 int analysisCount = 1; |
171 | 193 |
172 for (AnalysisPeriod period: kmEntry.getValue()) { | 194 for (AnalysisPeriod period: kmEntry.getValue()) { |
180 String deltaWS = dwF.format(qwd.getDeltaW()); | 202 String deltaWS = dwF.format(qwd.getDeltaW()); |
181 String qS = qF.format(qwd.getQ()); | 203 String qS = qF.format(qwd.getQ()); |
182 String wS = wF.format(qwd.getW()); | 204 String wS = wF.format(qwd.getW()); |
183 String dateS = dF.format(qwd.getDate()); | 205 String dateS = dF.format(qwd.getDate()); |
184 | 206 |
185 writer.writeNext(new String[] { | 207 list.add(new String[] { |
186 kmS, | 208 kmS, |
187 dateS, | 209 dateS, |
188 qS, | 210 qS, |
189 wS, | 211 wS, |
190 analyisS, | 212 analyisS, |
193 } | 215 } |
194 ++analysisCount; | 216 ++analysisCount; |
195 } | 217 } |
196 } | 218 } |
197 } | 219 } |
220 | |
221 for (ArrayList<String []> list: sorted.values()) { | |
222 for (String [] row: list) { | |
223 writer.writeNext(row); | |
224 } | |
225 } | |
226 | |
198 writer.flush(); | 227 writer.flush(); |
199 } | 228 } |
200 | 229 |
201 /** Template to create "State" strings like A1,A2... */ | 230 /** Template to create "State" strings like A1,A2... */ |
202 protected String getAnalysisTemplate() { | 231 protected String getAnalysisTemplate() { |