comparison 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
comparison
equal deleted inserted replaced
232:3d6d89bcbf42 233:2ceb4bf51cba
27 public class DefaultExport 27 public class DefaultExport
28 implements Export 28 implements Export
29 { 29 {
30 private static Logger log = Logger.getLogger(DefaultExport.class); 30 private static Logger log = Logger.getLogger(DefaultExport.class);
31 31
32 private Export.DataCollector collector;
33
34 public DefaultExport(Export.DataCollector collector) {
35 this.collector = collector;
36 }
37
32 protected void writeData( 38 protected void writeData(
33 Profile profile, 39 Profile profile,
34 Collection result, 40 Collection result,
35 CSVWriter writer 41 CSVWriter writer
36 ) { 42 )
43 throws TransitionException {
37 log.debug("create content for export."); 44 log.debug("create content for export.");
38 Iterator<Result> it = result.iterator(); 45 Iterator<Result> it = result.iterator();
39
40 ResultDescriptor rd = null;
41 int [] indices = null;
42
43 String[] entries = new String[profile.numberColumns()];
44 46
45 while (it.hasNext()) { 47 while (it.hasNext()) {
46 Result res = it.next(); 48 Result res = it.next();
47 49
48 if (rd == null) { 50 writer.writeNext(collector.getData(res));
49 rd = res.getResultDescriptor();
50 String [] names = new String[entries.length];
51 for (int i = 0; i < names.length; ++i) {
52 names[i] = profile.getHeader(i);
53 }
54 indices = rd.getColumnIndices(names);
55 }
56 for (int i = 0; i < entries.length; ++i) {
57 entries[i] = profile.toString(
58 i, res.getString(indices[i]));
59 }
60 writer.writeNext(entries);
61 } 51 }
62 } 52 }
63 53
64 public void create( 54 public void create(
65 Profile profile, 55 Profile profile,

http://dive4elements.wald.intevation.org