ingo@1127: /* ingo@1127: * Copyright (c) 2010 by Intevation GmbH ingo@1127: * ingo@1127: * This program is free software under the LGPL (>=v2.1) ingo@1127: * Read the file LGPL.txt coming with the software for details ingo@1127: * or visit http://www.gnu.org/licenses/ if it does not exist. ingo@1127: */ ingo@1127: tim@132: package de.intevation.gnv.geobackend.base; tim@132: tim@132: import java.util.Date; tim@137: import java.util.GregorianCalendar; tim@132: tim@889: import de.intevation.gnv.geobackend.util.DateUtils; tim@889: tim@132: /** tim@132: * Defaultimplementation of the Interface Result. tim@132: * This Class stores the Attributevalues of one Result. sascha@887: * @author Tim Englich tim@132: * tim@132: */ sascha@885: public class DefaultResult sascha@885: implements Result sascha@270: { tim@132: /** tim@141: * THE UID of this Classe tim@141: */ tim@141: private static final long serialVersionUID = -6886218808840982766L; tim@141: /** tim@884: * Array which stores the Columnvalues tim@132: */ tim@271: private Object [] values; tim@132: /** tim@132: * The ResultDescriptor which describes the ColumnValues tim@132: */ tim@132: private ResultDescriptor resultDescriptor = null; sascha@885: tim@132: /** tim@132: * Constructor tim@132: */ tim@132: public DefaultResult(ResultDescriptor resultDescriptor) { tim@132: this.resultDescriptor = resultDescriptor; tim@271: values = new Object[resultDescriptor.getColumnCount()]; tim@132: } tim@132: tim@132: /** tim@132: * @see de.intevation.gnv.geobackend.base.Result#getDate(java.lang.String) tim@132: */ tim@132: public Date getDate(String columnName) { tim@271: return getDate(resultDescriptor.getColumnIndex(columnName)); tim@271: } tim@271: tim@884: /** tim@884: * @see de.intevation.gnv.geobackend.base.Result#getDate(int) tim@884: */ tim@271: public Date getDate(int column) { tim@271: Object o = values[column]; tim@141: Date d = null; tim@137: if(o instanceof Date){ tim@141: d = (Date)o; tim@137: }else if (o instanceof GregorianCalendar){ tim@141: d = ((GregorianCalendar)o).getTime(); tim@137: } tim@141: return d; tim@132: } tim@132: tim@132: /** tim@132: * @see de.intevation.gnv.geobackend.base.Result#getDouble(java.lang.String) tim@132: */ tim@132: public Double getDouble(String columnName) { tim@271: return getDouble(resultDescriptor.getColumnIndex(columnName)); tim@271: } tim@271: tim@884: /** tim@884: * @see de.intevation.gnv.geobackend.base.Result#getDouble(int) tim@884: */ tim@271: public Double getDouble(int column) { tim@271: return (Double)values[column]; tim@132: } tim@132: tim@132: /** tim@132: * @see de.intevation.gnv.geobackend.base.Result#getFloat(java.lang.String) tim@132: */ tim@132: public Float getFloat(String columnName) { tim@271: return getFloat(resultDescriptor.getColumnIndex(columnName)); tim@271: } tim@271: tim@884: /** tim@884: * @see de.intevation.gnv.geobackend.base.Result#getFloat(int) tim@884: */ tim@271: public Float getFloat(int column) { tim@271: return (Float)values[column]; tim@132: } tim@132: tim@132: /** tim@132: * @see de.intevation.gnv.geobackend.base.Result#getInteger(java.lang.String) tim@132: */ tim@132: public Integer getInteger(String columnName) { ingo@384: int idx = resultDescriptor.getColumnIndex(columnName); ingo@384: return idx > -1 ? getInteger(idx) : -1; tim@132: } tim@132: tim@884: /** tim@884: * @see de.intevation.gnv.geobackend.base.Result#getInteger(int) tim@884: */ tim@271: public Integer getInteger(int column) { tim@272: Object value = values[column]; tim@272: if (value instanceof Double){ tim@272: value = new Integer(((Double)value).intValue()); tim@272: } tim@272: return (Integer)value; tim@271: } sascha@885: tim@132: /** tim@132: * @see de.intevation.gnv.geobackend.base.Result#getResultDescriptor() tim@132: */ tim@132: public ResultDescriptor getResultDescriptor() { tim@132: return this.resultDescriptor; tim@132: } tim@132: tim@132: /** tim@132: * @see de.intevation.gnv.geobackend.base.Result#getString(java.lang.String) tim@132: */ tim@132: public String getString(String columnName) { ingo@382: int idx = resultDescriptor.getColumnIndex(columnName); ingo@382: return idx > -1 ? getString(idx) : null; tim@271: } tim@271: tim@884: /** tim@884: * @see de.intevation.gnv.geobackend.base.Result#getString(int) tim@884: */ tim@271: public String getString(int column) { tim@271: Object o = values[column]; sascha@270: if (o instanceof Date){ tim@140: return DateUtils.getPatternedDateAmer((Date)o); sascha@270: } sascha@270: if (o instanceof GregorianCalendar){ tim@140: Date d = ((GregorianCalendar)o).getTime(); tim@140: return DateUtils.getPatternedDateAmer(d); tim@140: } tim@271: return o != null ? o.toString() : null; tim@132: } tim@132: tim@132: /** tim@889: * @see de.intevation.gnv.geobackend.base.Result#addColumnValue(int, java.lang.Object) tim@132: */ tim@271: public void addColumnValue(int column, Object value) { tim@271: values[column] = value; tim@132: } tim@132: tim@132: /** tim@132: * @see de.intevation.gnv.geobackend.base.Result#getObject(java.lang.String) tim@132: */ tim@132: public Object getObject(String columnName) { tim@271: return getObject(resultDescriptor.getColumnIndex(columnName)); tim@271: } tim@271: tim@884: /** tim@884: * @see de.intevation.gnv.geobackend.base.Result#getObject(int) tim@884: */ tim@271: public Object getObject(int column) { tim@271: return values[column]; tim@132: } tim@132: tim@132: }