diff geo-backend/src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java @ 280:72f5e8bd2791 0.2

merged geo-backend/0.2
author Thomas Arendsen Hein <thomas@intevation.de>
date Fri, 28 Sep 2012 12:13:45 +0200
parents 05912f0304ac
children 4af6379ac20b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/geo-backend/src/main/java/de/intevation/gnv/geobackend/base/DefaultResult.java	Fri Sep 28 12:13:45 2012 +0200
@@ -0,0 +1,148 @@
+/**
+ *
+ */
+package de.intevation.gnv.geobackend.base;
+
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+
+import de.intevation.gnv.geobackend.util.DateUtils;
+
+/**
+ * Defaultimplementation of the Interface Result.
+ * This Class stores the Attributevalues of one Result.
+ * @author Tim Englich <tim.englich@intevation.de>
+ *
+ */
+public class DefaultResult 
+implements   Result 
+{
+    /**
+     * THE UID of this Classe
+     */
+    private static final long serialVersionUID = -6886218808840982766L;
+
+
+    /**
+     * HashMap which stores the Columnvalues identified by the unique Columnname
+     */
+
+     private Object [] values;
+    
+    /**
+     * The ResultDescriptor which describes the ColumnValues
+     */
+    private ResultDescriptor resultDescriptor = null;
+    
+    /**
+     * Constructor
+     */
+    public DefaultResult(ResultDescriptor resultDescriptor) {
+        this.resultDescriptor = resultDescriptor;
+        values = new Object[resultDescriptor.getColumnCount()];
+    }
+
+    /**
+     * @see de.intevation.gnv.geobackend.base.Result#getDate(java.lang.String)
+     */
+    public Date getDate(String columnName) {
+        return getDate(resultDescriptor.getColumnIndex(columnName));
+    }
+
+    public Date getDate(int column) {
+        Object o = values[column];
+        Date d = null;
+        if(o instanceof Date){
+            d = (Date)o;
+        }else if (o instanceof GregorianCalendar){
+            d = ((GregorianCalendar)o).getTime();
+        }
+        return d;
+    }
+
+    /**
+     * @see de.intevation.gnv.geobackend.base.Result#getDouble(java.lang.String)
+     */
+    public Double getDouble(String columnName) {
+        return getDouble(resultDescriptor.getColumnIndex(columnName));
+    }
+
+    public Double getDouble(int column) {
+        return (Double)values[column];
+    }
+
+    /**
+     * @see de.intevation.gnv.geobackend.base.Result#getFloat(java.lang.String)
+     */
+    public Float getFloat(String columnName) {
+        return getFloat(resultDescriptor.getColumnIndex(columnName));
+    }
+
+    public Float getFloat(int column) {
+        return (Float)values[column];
+    }
+
+    /**
+     * @see de.intevation.gnv.geobackend.base.Result#getInteger(java.lang.String)
+     */
+    public Integer getInteger(String columnName) {
+        return getInteger(resultDescriptor.getColumnIndex(columnName));
+    }
+
+    public Integer getInteger(int column) {
+        Object value = values[column];
+        if (value instanceof Double){
+            value = new Integer(((Double)value).intValue());
+        }
+        return (Integer)value;
+    }
+    /**
+     * @see de.intevation.gnv.geobackend.base.Result#getResultDescriptor()
+     */
+    public ResultDescriptor getResultDescriptor() {
+        return this.resultDescriptor;
+    }
+
+    /**
+     * @see de.intevation.gnv.geobackend.base.Result#getString(java.lang.String)
+     */
+    public String getString(String columnName) {
+        return getString(resultDescriptor.getColumnIndex(columnName));
+    }
+
+    public String getString(int column) {
+
+        Object o = values[column];
+
+        if (o instanceof Date){
+            return DateUtils.getPatternedDateAmer((Date)o);
+        }
+
+        if (o instanceof GregorianCalendar){
+            Date d = ((GregorianCalendar)o).getTime();
+            return DateUtils.getPatternedDateAmer(d);
+        }
+
+        return o != null ? o.toString() : null;
+    }
+
+    /**
+     * @see de.intevation.gnv.geobackend.base.Result#addColumnValue(java.lang.String, java.lang.Object)
+     */
+    public void addColumnValue(int column, Object value) {
+        values[column] = value;
+    }
+
+    /**
+     * @see de.intevation.gnv.geobackend.base.Result#getObject(java.lang.String)
+     */
+    public Object getObject(String columnName) {
+        return getObject(resultDescriptor.getColumnIndex(columnName));
+    }
+
+    public Object getObject(int column) {
+        return values[column];
+    }
+
+}

http://dive4elements.wald.intevation.org