Mercurial > dive4elements > gnv-client
annotate geo-backend/src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java @ 888:65dd801fbee6
Added package description with text 'DOCUMENT ME!'.
geo-backend/trunk@862 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 29 Mar 2010 10:37:04 +0000 |
parents | b757def3ff55 |
children | ebeb56428409 |
rev | line source |
---|---|
132
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
1 package de.intevation.gnv.geobackend.base; |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
2 |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
3 import java.util.ArrayList; |
271
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
4 import java.util.HashMap; |
132
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
5 import java.util.List; |
271
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
6 import java.util.Map; |
132
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
7 |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
8 /** |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
9 * This Class is the DefaultImplementation of the |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
10 * Interface ResultDescriptor |
887
b757def3ff55
Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
886
diff
changeset
|
11 * @author <a href="mailto:tim.englich@intevation.de">Tim Englich</a> |
132
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
12 * |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
13 */ |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
14 public class DefaultResultDescriptor implements ResultDescriptor { |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
15 |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
16 /** |
141
b02310d7ffee
Make Classes Serializable for Storing in ArtifactDatabase
Tim Englich <tim.englich@intevation.de>
parents:
132
diff
changeset
|
17 *The Uid of this Class |
b02310d7ffee
Make Classes Serializable for Storing in ArtifactDatabase
Tim Englich <tim.englich@intevation.de>
parents:
132
diff
changeset
|
18 */ |
b02310d7ffee
Make Classes Serializable for Storing in ArtifactDatabase
Tim Englich <tim.englich@intevation.de>
parents:
132
diff
changeset
|
19 private static final long serialVersionUID = 7016889733270716130L; |
b02310d7ffee
Make Classes Serializable for Storing in ArtifactDatabase
Tim Englich <tim.englich@intevation.de>
parents:
132
diff
changeset
|
20 /** |
132
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
21 * The Names of the Columns of one Result |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
22 */ |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
23 private List<String> columnNames = new ArrayList<String>(); |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
24 /** |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
25 * The Name of the Classes of the Values of one Result. |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
26 */ |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
27 private List<String> columnClassNames = new ArrayList<String>(); |
271
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
28 /** |
884
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
29 * The Lookup for the Columnindex of the Columnnames |
271
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
30 */ |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
31 private Map<String, Integer> columnIndexLookup = new HashMap<String, Integer>(); |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
32 |
132
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
33 /** |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
34 * Constructor |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
35 */ |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
36 public DefaultResultDescriptor() { |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
37 super(); |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
38 } |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
39 |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
40 /** |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
41 * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnClassName(int) |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
42 */ |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
43 public String getColumnClassName(int column) { |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
44 return this.columnClassNames.get(column); |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
45 } |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
46 |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
47 /** |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
48 * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnCount() |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
49 */ |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
50 public int getColumnCount() { |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
51 return this.columnClassNames.size(); |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
52 } |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
53 |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
54 /** |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
55 * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnName(int) |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
56 */ |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
57 public String getColumnName(int column) { |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
58 return this.columnNames.get(column); |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
59 } |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
60 |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
61 /** |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
62 * @see de.intevation.gnv.geobackend.base.ResultDescriptor#addColumn(java.lang.String, java.lang.String) |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
63 */ |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
64 public void addColumn(String name, String className) { |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
65 this.columnClassNames.add(className); |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
66 this.columnNames.add(name); |
271
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
67 this.columnIndexLookup.put(name,this.columnNames.size()-1); |
132
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
68 } |
5a583cff97ea
Implementation of the Datainfrastructure for fetching Data from different DataStores.
Tim Englich <tim.englich@intevation.de>
parents:
diff
changeset
|
69 |
271
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
70 /** |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
71 * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnIndices(java.lang.String[]) |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
72 */ |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
73 public int [] getColumnIndices(String [] columnNames) { |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
74 if (columnNames == null) { |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
75 return null; |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
76 } |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
77 int [] indices = new int[columnNames.length]; |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
78 for (int i = 0; i < indices.length; ++i) { |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
79 indices[i] = this.getColumnIndex(columnNames[i]); |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
80 } |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
81 return indices; |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
82 } |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
83 |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
84 /** |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
85 * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnIndex(java.lang.String) |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
86 */ |
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
87 public int getColumnIndex(String columnName) { |
885
1c3efbd2fc5a
Removes trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
884
diff
changeset
|
88 |
271
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
89 Integer value = this.columnIndexLookup.get(columnName); |
381
4a874c664123
Removed needless imports
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
271
diff
changeset
|
90 return value != null ? value.intValue() : -1; |
271
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
91 } |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
92 |
884
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
93 /** |
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
94 * @see java.lang.Object#toString() |
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
95 */ |
12f88239fb33
Updated Javadocs to the Listed Classes.
Tim Englich <tim.englich@intevation.de>
parents:
553
diff
changeset
|
96 @Override |
553
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
97 public String toString() { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
98 StringBuilder sb = new StringBuilder("["); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
99 int N = Math.min(columnNames.size(), columnClassNames.size()); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
100 for (int i = 0; i < N; ++i) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
101 if (i > 0) { |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
102 sb.append(", "); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
103 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
104 sb.append(columnNames.get(i)) |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
105 .append(": ") |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
106 .append(columnClassNames.get(i)); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
107 } |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
108 sb.append(']'); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
109 return sb.toString(); |
5b536542ef56
Another attempt to fix gnv/issue34. Implemented an internal idle time checking.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
381
diff
changeset
|
110 } |
271
8aad9d098b08
Integrated Patch of issue57 to get some Memoryusage-improvements
Tim Englich <tim.englich@intevation.de>
parents:
141
diff
changeset
|
111 } |