All Downloads are FREE. Search and download functionalities are using the official Maven repository.

se.vgregion.ldapservice.search.beanutil.Converters Maven / Gradle / Ivy

The newest version!
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package se.vgregion.ldapservice.search.beanutil;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * @author clalul
 */
public class Converters {

    private static final Map, Converter> defaultConverters = new HashMap, Converter>();
    final Map, Converter> converters = new HashMap, Converter>();
    static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

    public Converters() {
        converters.putAll(defaultConverters);
    }

    static {
        Converter con;

        defaultConverters.put(Boolean.TYPE, con = new Converter() {

            public Object convert(Object input) {
                return Boolean.valueOf(input.toString());
            }
        });
        defaultConverters.put(Boolean.class, con);

        defaultConverters.put(Character.TYPE, con = new Converter() {

            public Object convert(Object input) {
                return input.toString().charAt(0);
            }
        });
        defaultConverters.put(Character.class, con);

        defaultConverters.put(Byte.TYPE, con = new Converter() {

            public Object convert(Object input) {
                return Byte.valueOf(input.toString());
            }
        });
        defaultConverters.put(Byte.class, con);

        defaultConverters.put(Short.TYPE, con = new Converter() {

            public Object convert(Object input) {
                return Short.valueOf(input.toString());
            }
        });
        defaultConverters.put(Short.class, con);

        defaultConverters.put(Integer.TYPE, con = new Converter() {

            public Object convert(Object input) {
                return Integer.valueOf(input.toString());
            }
        });
        defaultConverters.put(Integer.class, con);

        defaultConverters.put(Long.TYPE, con = new Converter() {

            public Object convert(Object input) {
                return Long.valueOf(input.toString());
            }
        });
        defaultConverters.put(Long.class, con);

        defaultConverters.put(Float.TYPE, con = new Converter() {

            public Object convert(Object input) {
                return Float.valueOf(input.toString());
            }
        });
        defaultConverters.put(Float.class, con);

        defaultConverters.put(Double.TYPE, con = new Converter() {
            public Object convert(Object input) {
                return Double.valueOf(input.toString());
            }
        });
        defaultConverters.put(Double.class, con);

        defaultConverters.put(Date.class, new Converter() {
            public Object convert(Object input) {
                try {
                    if (!(input instanceof Date)) {
                        if (input == null || "".equals(input.toString().trim())) {
                            return null;
                        }
                        return sdf.parse(input.toString());
                    }
                } catch (ParseException pe) {
                    throw new RuntimeException(pe);
                }
                return input;
            }
        });

        defaultConverters.put(java.sql.Date.class, new Converter() {
            public Object convert(Object input) {
                try {
                    if (!(input instanceof java.sql.Date)) {
                        if (input == null || "".equals(input.toString().trim())) {
                            return null;
                        }
                        Date date = sdf.parse(input.toString());
                        return new java.sql.Date(date.getTime());
                    }
                } catch (ParseException pe) {

                }
                return input;
            }
        });
        defaultConverters.put(String.class, con = new Converter() {
            public Object convert(Object input) {
                return String.valueOf(input);
            }
        });
        defaultConverters.put(Double.class, con);
    }


    public static Map, Converter> getDefaultConverters() {
        return defaultConverters;
    }

    public Object convert(Class clazz, Object value) {
        if (defaultConverters.containsKey(clazz)) {
            return converters.get(clazz).convert(value);
        } else {
            return value;
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy