view artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/TypeConverter.java @ 7592:c2acc840963b

Add timestamp type
author Andre Heinecke <aheinecke@intevation.de>
date Thu, 21 Nov 2013 15:35:32 +0100
parents 99312d2b4a20
children 5e38e2924c07
line wrap: on
line source
/* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
 * Software engineering by Intevation GmbH
 *
 * This file is Free Software under the GNU AGPL (>=v3)
 * and comes with ABSOLUTELY NO WARRANTY! Check out the
 * documentation coming with Dive4Elements River for details.
 */

package org.dive4elements.river.artifacts.datacage.templating;

import java.sql.Date;
import java.sql.Timestamp;

import org.apache.log4j.Logger;

public class TypeConverter
{
    private static Logger log = Logger.getLogger(TypeConverter.class);

    private TypeConverter() {
    }

    public static Object convert(Object object, String type) {

        if (type == null) {
            return object;
        }

        type = type.toLowerCase();

        if ("integer".equals(type)) {
            return Integer.valueOf(object.toString());
        }

        if ("double".equals(type)) {
            return Double.valueOf(object.toString());
        }

        if ("string".equals(type)) {
            return object.toString();
        }

        if ("date".equals(type)) {
            if (object instanceof Date) {
                return object;
            }
            try {
                return new Date((long)Double.parseDouble(object.toString()));
            }
            catch (NumberFormatException nfe) {
                log.warn(nfe);
                return null;
            }
        }

        if ("timestamp".equals(type)) {
            if (object instanceof Timestamp) {
                return object;
            }
            try {
                return new Timestamp((long)Double.parseDouble(object.toString()));
            }
            catch (NumberFormatException nfe) {
                log.warn(nfe);
                return null;
            }
        }

        // TODO: Add more types

        return object;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org