annotate gnv-artifacts/src/main/java/de/intevation/gnv/exports/DefaultDataCollector.java @ 771:a0e63136954e

Added and repaired javadoc in de.intevation.gnv.exports package. gnv-artifacts/trunk@827 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 25 Mar 2010 09:01:14 +0000
parents e964a3d8f7bc
children b1f5f2a8840f
rev   line source
233
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.gnv.exports;
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
3 import java.util.List;
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
4 import java.util.ArrayList;
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6 import org.apache.log4j.Logger;
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import de.intevation.gnv.geobackend.base.Result;
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 import de.intevation.gnv.geobackend.base.ResultDescriptor;
335
e964a3d8f7bc Some Refactoring work done.
Tim Englich <tim.englich@intevation.de>
parents: 233
diff changeset
10 import de.intevation.gnv.state.exception.StateException;
233
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
11
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 /**
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
14 * This is the default implementation of {@link Export.DataCollector}. This
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
15 * class serves a method to extract required data from <code>Result</code>
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
16 * objects.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
17 *
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
18 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
233
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
19 */
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 public class DefaultDataCollector
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21 implements Export.DataCollector
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 {
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
23 /**
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
24 * Logger used to log via log4j.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
25 */
233
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 private Logger log = Logger.getLogger(DefaultDataCollector.class);
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
28 /**
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
29 * ResultDescriptor used to extract specific attributes from
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
30 * <code>Result</code> object.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
31 */
233
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32 protected ResultDescriptor rd;
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
33
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
34 /**
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
35 * Atrribute names in <code>Result</code> object which should be used for
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
36 * data extraction.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
37 */
233
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 protected String [] names;
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
41 /**
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
42 * Constructor
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
43 *
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
44 * @param names See {@link #names}
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
45 */
233
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
46 public DefaultDataCollector(String[] names) {
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 this.names = names;
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 }
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
50 /**
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
51 * This method initializes the <code>ResultDescriptor</code> rd for a faster
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
52 * data extraction.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
53 *
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
54 * @param res A <code>Result</code> object used to get its description.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
55 */
233
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 public void init(Result res) {
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57 rd = res.getResultDescriptor();
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
58 }
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
60 /**
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
61 * This method is used to extract the required data specified by {@link
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
62 * #names}.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
63 *
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
64 * @param result <code>Result</code> object.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
65 *
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
66 * @return Extracted data.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
67 */
233
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 public String[] getData(Result result)
335
e964a3d8f7bc Some Refactoring work done.
Tim Englich <tim.englich@intevation.de>
parents: 233
diff changeset
69 throws StateException {
233
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 if (rd == null)
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 init(result);
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 List entries = new ArrayList();
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 int[] indices = rd.getColumnIndices(names);
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 for (int i = 0; i < names.length; ++i) {
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 entries.add(result.getString(indices[i]));
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 }
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 return (String[]) entries.toArray((new String[entries.size()]));
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 }
2ceb4bf51cba Added DataCollector which collects data used for exports.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
83 }
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
84 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org