diff gnv-artifacts/src/main/java/de/intevation/gnv/exports/DefaultExport.java @ 233:2ceb4bf51cba

Added DataCollector which collects data used for exports. gnv-artifacts/trunk@301 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Mon, 09 Nov 2009 09:43:52 +0000
parents f68ffbe974a0
children 75da91eca29f
line wrap: on
line diff
--- a/gnv-artifacts/src/main/java/de/intevation/gnv/exports/DefaultExport.java	Mon Nov 09 08:55:01 2009 +0000
+++ b/gnv-artifacts/src/main/java/de/intevation/gnv/exports/DefaultExport.java	Mon Nov 09 09:43:52 2009 +0000
@@ -29,35 +29,25 @@
 {
     private static Logger log = Logger.getLogger(DefaultExport.class);
 
+    private Export.DataCollector collector;
+
+    public DefaultExport(Export.DataCollector collector) {
+        this.collector = collector;
+    }
+
     protected void writeData(
         Profile    profile, 
         Collection result,
         CSVWriter  writer
-    ) {
+    )
+    throws TransitionException {
         log.debug("create content for export.");
         Iterator<Result> it = result.iterator();
 
-        ResultDescriptor rd      = null;
-        int []           indices = null;
-
-        String[] entries = new String[profile.numberColumns()];
-
         while (it.hasNext()) {
             Result res = it.next();
 
-            if (rd == null) {
-                rd = res.getResultDescriptor();
-                String [] names = new String[entries.length];
-                for (int i = 0; i < names.length; ++i) {
-                    names[i] = profile.getHeader(i);
-                }
-                indices = rd.getColumnIndices(names);
-            }
-            for (int i = 0; i < entries.length; ++i) {
-                entries[i] = profile.toString(
-                    i, res.getString(indices[i]));
-            }
-            writer.writeNext(entries);
+            writer.writeNext(collector.getData(res));
         }
     }
 

http://dive4elements.wald.intevation.org