Mercurial > dive4elements > gnv-client
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; + } +}