Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/exports/ODVExport.java @ 800:db5b04ecb426
ISSUE215: Improved ODV-Export. now all Columns which have identical values but different Parameters will be merged to one row.
gnv-artifacts/trunk@882 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 06 Apr 2010 13:07:11 +0000 |
parents | d0967fdee36f |
children | 41a7c49b5cb4 |
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/exports/ODVExport.java Tue Apr 06 11:56:53 2010 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/exports/ODVExport.java Tue Apr 06 13:07:11 2010 +0000 @@ -1,13 +1,5 @@ package de.intevation.gnv.exports; -import au.com.bytecode.opencsv.CSVWriter; - -import de.intevation.gnv.geobackend.base.Result; - -import de.intevation.gnv.state.describedata.KeyValueDescibeData; - -import de.intevation.gnv.state.exception.StateException; - import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; @@ -16,6 +8,11 @@ import org.apache.log4j.Logger; +import au.com.bytecode.opencsv.CSVWriter; +import de.intevation.gnv.geobackend.base.Result; +import de.intevation.gnv.state.describedata.KeyValueDescibeData; +import de.intevation.gnv.state.exception.StateException; + /** * This class is used to create a specific export document which is similar to * an CSV document. @@ -61,14 +58,15 @@ } ArrayList<String> paramids = new ArrayList<String>(); - Map<String[], Map<String,String>> aggregatedRows = new HashMap<String[], Map<String,String>>(); + Map<StringArrayKey, Map<String,String>> aggregatedRows = new HashMap<StringArrayKey, Map<String,String>>(); String currentParameterID = "N/N"; while (it.hasNext()) { Result res = it.next(); - String[] key = collector.getData(res); + String[] value = collector.getData(res); + StringArrayKey key = new StringArrayKey(value); String parameterValue = res.getString("DATAVALUE"); String parameterID = res.getString("PARAMETER"); @@ -93,13 +91,14 @@ writer.writeNext(headerList.toArray(header)); } - Iterator<String[]> rows = aggregatedRows.keySet().iterator(); + Iterator<StringArrayKey> rows = aggregatedRows.keySet().iterator(); while (rows.hasNext()){ - String[] row = rows.next(); + StringArrayKey row = rows.next(); Map<String,String> params = aggregatedRows.get(row); ArrayList<String> rowList = new ArrayList<String>(); - for (int i= 0; i < row.length; i++){ - rowList.add(row[i]); + String[] rowArray = row.getValue(); + for (int i= 0; i < rowArray.length; i++){ + rowList.add(rowArray[i]); } for (int i = 0; i < paramids.size();i++){ String key = paramids.get(i); @@ -110,7 +109,7 @@ rowList.add(value); rowList.add("1"); } - writer.writeNext(rowList.toArray(row)); + writer.writeNext(rowList.toArray(rowArray)); } }