diff 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
line wrap: on
line diff
--- a/geo-backend/src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java	Mon Oct 19 10:27:24 2009 +0000
+++ b/geo-backend/src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java	Tue Oct 20 09:57:52 2009 +0000
@@ -4,7 +4,9 @@
 package de.intevation.gnv.geobackend.base;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * This Class is the DefaultImplementation of the
@@ -29,7 +31,10 @@
      */
     private List<String> columnClassNames = new ArrayList<String>();
     
-    
+    /**
+     * 
+     */
+    private Map<String, Integer> columnIndexLookup = new HashMap<String, Integer>();
     
     /**
      * Constructor
@@ -65,6 +70,35 @@
     public void addColumn(String name, String className) {
         this.columnClassNames.add(className);
         this.columnNames.add(name);
+        this.columnIndexLookup.put(name,this.columnNames.size()-1);
     }
 
-}
\ No newline at end of file
+    /**
+     * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnIndices(java.lang.String[])
+     */
+    public int [] getColumnIndices(String [] columnNames) {
+        if (columnNames == null) {
+            return null;
+        }
+
+        int [] indices = new int[columnNames.length];
+
+        for (int i = 0; i < indices.length; ++i) {
+            indices[i] = this.getColumnIndex(columnNames[i]);
+        }
+
+        return indices;
+    }
+
+    /**
+     * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnIndex(java.lang.String)
+     */
+    public int getColumnIndex(String columnName) {
+        
+        Integer value = this.columnIndexLookup.get(columnName);
+        if (value != null){
+            return value.intValue();
+        }
+        return -1;
+    }
+}

http://dive4elements.wald.intevation.org