Mercurial > dive4elements > gnv-client
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, |