Java Type Coerce coerce(Object obj, Class c)

Here you can find the source of coerce(Object obj, Class c)

Description

coerce

License

Open Source License

Declaration

public static Object coerce(Object obj, Class<?> c) 

Method Source Code

//package com.java2s;
/** //from w  ww.j a va 2  s. c o m
 * Copyright 2012 Rafal Lewczuk <rafal.lewczuk@jitlogic.com>
 * 
 * ZORKA is free software. You can redistribute it and/or modify it under the
 * terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 * 
 * ZORKA is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * ZORKA. If not, see <http://www.gnu.org/licenses/>.
 */

public class Main {
    public static Object coerce(Object obj, Class<?> c) {

        if (obj == null || c == null) {
            return null;
        }
        if (obj.getClass() == c) {
            return obj;
        }

        if (c == Long.class) {
            return (obj instanceof String) ? Long.parseLong(obj.toString().trim()) : ((Number) obj).longValue();
        }

        if (c == Integer.class) {
            return (obj instanceof String) ? Integer.parseInt(obj.toString().trim()) : ((Number) obj).intValue();
        }

        if (c == Double.class) {
            return (obj instanceof String) ? Double.parseDouble(obj.toString().trim())
                    : ((Number) obj).doubleValue();
        }

        if (c == Short.class) {
            return (obj instanceof String) ? Short.parseShort(obj.toString().trim()) : ((Number) obj).shortValue();
        }

        if (c == Float.class) {
            return (obj instanceof String) ? Float.parseFloat(obj.toString().trim()) : ((Number) obj).floatValue();
        }

        if (c == String.class) {
            return "" + obj;
        }
        if (c == Boolean.class) {
            return coerceBool(obj);
        }

        return null;
    }

    public static boolean coerceBool(Object obj) {
        return !(obj == null || obj.equals(false));
    }
}

Related

  1. coerce(final Class klass)
  2. coerce(Object val, Class clz)
  3. coerce(Object val, Class c)
  4. coerce(Object value, Class clazz)
  5. coerce(Object value, Class clazz)