annotate gnv-artifacts/src/main/java/de/intevation/gnv/exports/ShapeDataCollector.java @ 1115:f953c9a559d8

Added license file and license headers. gnv-artifacts/trunk@1260 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Tue, 02 Nov 2010 17:46:55 +0000
parents 22c18083225e
children
rev   line source
1115
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
1 /*
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
2 * Copyright (c) 2010 by Intevation GmbH
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
3 *
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
4 * This program is free software under the LGPL (>=v2.1)
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
5 * Read the file LGPL.txt coming with the software for details
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
6 * or visit http://www.gnu.org/licenses/ if it does not exist.
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
7 */
f953c9a559d8 Added license file and license headers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 815
diff changeset
8
235
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9 package de.intevation.gnv.exports;
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10
779
b1f5f2a8840f Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 778
diff changeset
11 import com.vividsolutions.jts.geom.Point;
b1f5f2a8840f Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 778
diff changeset
12
b1f5f2a8840f Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 778
diff changeset
13 import com.vividsolutions.jts.io.ParseException;
b1f5f2a8840f Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 778
diff changeset
14 import com.vividsolutions.jts.io.WKTReader;
b1f5f2a8840f Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 778
diff changeset
15
b1f5f2a8840f Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 778
diff changeset
16 import de.intevation.gnv.geobackend.base.Result;
b1f5f2a8840f Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 778
diff changeset
17
b1f5f2a8840f Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 778
diff changeset
18 import de.intevation.gnv.state.exception.StateException;
b1f5f2a8840f Ordered imports. Removed needless imports. Removed empty headers.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 778
diff changeset
19
235
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
20 import org.apache.log4j.Logger;
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
21
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
22 /**
815
22c18083225e Removed compiler warnings while JavaDoc generation.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 779
diff changeset
23 * This class is a specialization of <code>DefaultDataCollector</code>. The
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
24 * difference between these classes is, that this class extracts points served
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
25 * by a wkt string.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
26 *
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
27 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
235
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 */
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 public class ShapeDataCollector
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 extends DefaultDataCollector
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 {
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
32 /**
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
33 * Logger used for logging with log4j.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
34 */
235
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35 private Logger log = Logger.getLogger(ShapeDataCollector.class);
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
37 /**
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
38 * WKTReader to parse points from wkt strings.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
39 */
235
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 protected WKTReader wktReader = new WKTReader();
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
42 /**
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
43 * Constructor
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
44 *
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
45 * @param names Attributes used to be extracted.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
46 */
235
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
47 public ShapeDataCollector(String[] names) {
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
48 super(names);
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 }
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
51 /**
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
52 * This method takes point from wkt strings as well and split them into x
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
53 * and y coordinate.
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
54 *
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
55 * @see de.intevation.gnv.exports.Export.DataCollector#getData(Result)
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
56 */
778
9a828e5a2390 Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 771
diff changeset
57 public String[] getData(Result result)
335
e964a3d8f7bc Some Refactoring work done.
Tim Englich <tim.englich@intevation.de>
parents: 301
diff changeset
58 throws StateException {
235
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
59
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
60 if (rd == null)
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61 init(result);
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
62
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63 try {
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
64 String [] entries = new String[names.length+1];
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
65 int j = 0;
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
66 for (int i = 0; i < names.length; i++) {
778
9a828e5a2390 Removed trailing whitespace
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 771
diff changeset
67
235
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
68 if (names[i].equals("SHAPE")) {
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
69 Point p = (Point)wktReader.read(result.getString("SHAPE"));
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
70
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
71 entries[j++] = ""+p.getX();
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
72 entries[j++] = ""+p.getY();
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
73 }
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
74 else {
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
75 entries[j++] = result.getString(names[i]);
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
76 }
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77 }
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 return entries;
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 }
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 catch (ParseException pe) {
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
82 log.error(pe, pe);
335
e964a3d8f7bc Some Refactoring work done.
Tim Englich <tim.englich@intevation.de>
parents: 301
diff changeset
83 throw new StateException(
235
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
84 "Error occured while parsing a Point from WKT.");
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
85 }
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
86 }
c8ecc0c0bcb4 Renaming HorizontalProfileDataCollector into ShapeDataCollector.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
87 }
771
a0e63136954e Added and repaired javadoc in de.intevation.gnv.exports package.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 335
diff changeset
88 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org