comparison geo-backend/src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java @ 271:8aad9d098b08

Integrated Patch of issue57 to get some Memoryusage-improvements geo-backend/trunk@248 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Tim Englich <tim.englich@intevation.de>
date Tue, 20 Oct 2009 09:57:52 +0000
parents b02310d7ffee
children 4a874c664123
comparison
equal deleted inserted replaced
270:1fe93e3c80c0 271:8aad9d098b08
2 * 2 *
3 */ 3 */
4 package de.intevation.gnv.geobackend.base; 4 package de.intevation.gnv.geobackend.base;
5 5
6 import java.util.ArrayList; 6 import java.util.ArrayList;
7 import java.util.HashMap;
7 import java.util.List; 8 import java.util.List;
9 import java.util.Map;
8 10
9 /** 11 /**
10 * This Class is the DefaultImplementation of the 12 * This Class is the DefaultImplementation of the
11 * Interface ResultDescriptor 13 * Interface ResultDescriptor
12 * @author Tim Englich <tim.englich@intevation.de> 14 * @author Tim Englich <tim.englich@intevation.de>
27 /** 29 /**
28 * The Name of the Classes of the Values of one Result. 30 * The Name of the Classes of the Values of one Result.
29 */ 31 */
30 private List<String> columnClassNames = new ArrayList<String>(); 32 private List<String> columnClassNames = new ArrayList<String>();
31 33
32 34 /**
35 *
36 */
37 private Map<String, Integer> columnIndexLookup = new HashMap<String, Integer>();
33 38
34 /** 39 /**
35 * Constructor 40 * Constructor
36 */ 41 */
37 public DefaultResultDescriptor() { 42 public DefaultResultDescriptor() {
63 * @see de.intevation.gnv.geobackend.base.ResultDescriptor#addColumn(java.lang.String, java.lang.String) 68 * @see de.intevation.gnv.geobackend.base.ResultDescriptor#addColumn(java.lang.String, java.lang.String)
64 */ 69 */
65 public void addColumn(String name, String className) { 70 public void addColumn(String name, String className) {
66 this.columnClassNames.add(className); 71 this.columnClassNames.add(className);
67 this.columnNames.add(name); 72 this.columnNames.add(name);
73 this.columnIndexLookup.put(name,this.columnNames.size()-1);
68 } 74 }
69 75
76 /**
77 * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnIndices(java.lang.String[])
78 */
79 public int [] getColumnIndices(String [] columnNames) {
80 if (columnNames == null) {
81 return null;
82 }
83
84 int [] indices = new int[columnNames.length];
85
86 for (int i = 0; i < indices.length; ++i) {
87 indices[i] = this.getColumnIndex(columnNames[i]);
88 }
89
90 return indices;
91 }
92
93 /**
94 * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnIndex(java.lang.String)
95 */
96 public int getColumnIndex(String columnName) {
97
98 Integer value = this.columnIndexLookup.get(columnName);
99 if (value != null){
100 return value.intValue();
101 }
102 return -1;
103 }
70 } 104 }

http://dive4elements.wald.intevation.org