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() {

http://dive4elements.wald.intevation.org