view geo-backend/src/main/java/de/intevation/gnv/geobackend/base/DefaultResultDescriptor.java @ 381:4a874c664123

Removed needless imports geo-backend/trunk@415 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 11 Dec 2009 10:34:36 +0000
parents 8aad9d098b08
children 5b536542ef56
line wrap: on
line source
/**
 *
 */
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
 * Interface ResultDescriptor
 * @author Tim Englich <tim.englich@intevation.de>
 *
 */
public class DefaultResultDescriptor implements ResultDescriptor {

    /**
     *The Uid of this Class
     */
    private static final long serialVersionUID = 7016889733270716130L;

    /**
     * The Names of the Columns of one Result
     */
    private List<String> columnNames = new ArrayList<String>();
    
    /**
     * The Name of the Classes of the Values of one Result.
     */
    private List<String> columnClassNames = new ArrayList<String>();
    
    /**
     * 
     */
    private Map<String, Integer> columnIndexLookup = new HashMap<String, Integer>();
    
    /**
     * Constructor
     */
    public DefaultResultDescriptor() {
        super();
    }

    /**
     * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnClassName(int)
     */
    public String getColumnClassName(int column) {
        return this.columnClassNames.get(column);
    }

    /**
     * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnCount()
     */
    public int getColumnCount() {
        return this.columnClassNames.size();
    }

    /**
     * @see de.intevation.gnv.geobackend.base.ResultDescriptor#getColumnName(int)
     */
    public String getColumnName(int column) {
        return this.columnNames.get(column);
    }

    /**
     * @see de.intevation.gnv.geobackend.base.ResultDescriptor#addColumn(java.lang.String, java.lang.String)
     */
    public void addColumn(String name, String className) {
        this.columnClassNames.add(className);
        this.columnNames.add(name);
        this.columnIndexLookup.put(name,this.columnNames.size()-1);
    }

    /**
     * @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);
        return value != null ? value.intValue() : -1;
    }
}

http://dive4elements.wald.intevation.org