Example usage for org.apache.commons.lang3 ClassUtils primitiveToWrapper

List of usage examples for org.apache.commons.lang3 ClassUtils primitiveToWrapper

Introduction

In this page you can find the example usage for org.apache.commons.lang3 ClassUtils primitiveToWrapper.

Prototype

public static Class<?> primitiveToWrapper(final Class<?> cls) 

Source Link

Document

Converts the specified primitive Class object to its corresponding wrapper Class object.

NOTE: From v2.2, this method handles Void.TYPE , returning Void.TYPE .

Usage

From source file:jp.furplag.util.commons.NumberUtilsTest.java

/**
 * {@link jp.furplag.util.commons.NumberUtils#add(java.lang.Number, java.lang.Number)}.
 */// w w w. j  ava 2  s  . c  o m
@SuppressWarnings("unchecked")
@Test
public void testAddTNumber() {
    assertEquals("null", null, add(null, null));
    assertEquals("null", null, add(null, 10));
    assertEquals("null", (Object) 123.456d, add(123.456, 0));
    assertEquals("null", (Object) 123.456f, add(123.456f, 0));
    assertEquals("123 + .456: Float", (Object) 123, add(123, .456f));
    assertEquals("123 + .456: Float", (Object) Double.class, add(123d, .456f).getClass());
    assertEquals("123 + .456: Float", (Object) BigDecimal.class,
            add(BigDecimal.valueOf(123d), .456f).getClass());
    for (Class<?> type : NUMBERS) {
        try {
            Object o = null;
            Number augend = null;
            Class<? extends Number> typeOfN = (Class<? extends Number>) type;
            Class<? extends Number> wrapper = (Class<? extends Number>) ClassUtils.primitiveToWrapper(type);
            if (ClassUtils.isPrimitiveWrapper(wrapper)) {
                o = wrapper.getMethod("valueOf", String.class).invoke(null, "123");
            } else {
                Constructor<?> c = type.getDeclaredConstructor(String.class);
                o = c.newInstance("123");
            }
            assertEquals("123.456: " + type.getSimpleName(), add((Number) o, augend, typeOfN),
                    add((Number) o, augend));
            augend = .456f;
            assertEquals("123.456: " + type.getSimpleName(), add((Number) o, augend, typeOfN),
                    add((Number) o, augend));
            augend = Double.NaN;
            assertEquals("NaN: " + type.getSimpleName(), add((Number) o, augend, typeOfN),
                    add((Number) o, augend));
            augend = Float.NEGATIVE_INFINITY;
            assertEquals("-Infinity: Float: " + type.getSimpleName(), add((Number) o, augend, typeOfN),
                    add((Number) o, augend));
            augend = Double.POSITIVE_INFINITY;
            assertEquals("Infinity: Double: : " + type.getSimpleName(), add((Number) o, augend, typeOfN),
                    add((Number) o, augend));

        } catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage() + "\n" + Arrays.toString(e.getStackTrace()));
        }
    }
}

From source file:io.github.moosbusch.lumpi.util.LumpiUtil.java

@SuppressWarnings("unchecked")
public static <T> T cast(Object obj, Class<?> type) {
    if ((obj != null) && (type != null)) {
        if (type.isPrimitive()) {
            Class<?> wrapperType = ClassUtils.primitiveToWrapper(type);

            if (ClassUtils.isAssignable(obj.getClass(), wrapperType)) {
                return (T) wrapperType.cast(obj);
            }/*from w  ww .  j  av a 2s  . c o  m*/
        } else {
            if (ClassUtils.isAssignable(obj.getClass(), type)) {
                return (T) type.cast(obj);
            }
        }
    }

    return null;
}

From source file:hu.bme.mit.sette.tools.spf.SpfParser.java

static ParameterType getParameterType(Class<?> javaClass) {
    if (javaClass.isPrimitive()) {
        javaClass = ClassUtils.primitiveToWrapper(javaClass);
    }//  w  w w.j a  v a 2s.  c  o m

    if (javaClass.equals(Byte.class)) {
        return ParameterType.BYTE;
    } else if (javaClass.equals(Short.class)) {
        return ParameterType.SHORT;
    } else if (javaClass.equals(Integer.class)) {
        return ParameterType.INT;
    } else if (javaClass.equals(Long.class)) {
        return ParameterType.LONG;
    } else if (javaClass.equals(Float.class)) {
        return ParameterType.FLOAT;
    } else if (javaClass.equals(Double.class)) {
        return ParameterType.DOUBLE;
    } else if (javaClass.equals(Boolean.class)) {
        return ParameterType.BOOLEAN;
    } else if (javaClass.equals(Character.class)) {
        return ParameterType.CHAR;
    } else {
        // string or null
        return ParameterType.EXPRESSION;
    }
}

From source file:hu.bme.mit.sette.tools.spf.SpfParser.java

static String getDefaultParameterString(Class<?> javaClass) {
    if (javaClass.isPrimitive()) {
        javaClass = ClassUtils.primitiveToWrapper(javaClass);
    }//from   ww w.j a  v  a2s .  c  o  m

    if (javaClass.equals(Byte.class)) {
        return "1";
    } else if (javaClass.equals(Short.class)) {
        return "1";
    } else if (javaClass.equals(Integer.class)) {
        return "1";
    } else if (javaClass.equals(Long.class)) {
        return "1";
    } else if (javaClass.equals(Float.class)) {
        return "1.0";
    } else if (javaClass.equals(Double.class)) {
        return "1.0";
    } else if (javaClass.equals(Boolean.class)) {
        return "false";
    } else if (javaClass.equals(Character.class)) {
        return " ";
    } else {
        // string or null
        return "null";
    }
}

From source file:jp.furplag.util.commons.NumberUtilsTest.java

/**
 * {@link jp.furplag.util.commons.NumberUtils#ceil(java.lang.Object, java.lang.Class)}.
 */// w w  w. ja va 2 s  .  c o  m
@SuppressWarnings("unchecked")
@Test
public void testCeilObjectClassOfT() {
    assertEquals("null", null, ceil(null, null));
    assertEquals("null", null, ceil("", null));
    assertEquals("null", null, ceil("not a number.", null));
    for (Class<?> type : NUMBERS) {
        try {
            Object expected = null;
            Class<? extends Number> typeOfN = (Class<? extends Number>) type;
            Class<? extends Number> wrapper = (Class<? extends Number>) ClassUtils.primitiveToWrapper(type);
            if (ClassUtils.isPrimitiveWrapper(wrapper)) {
                expected = wrapper.getMethod("valueOf", String.class).invoke(null, "4");
            } else {
                Constructor<?> c = type.getDeclaredConstructor(String.class);
                expected = c.newInstance("4");
            }
            assertEquals("PI: String: " + type.getSimpleName(), expected, ceil("3.14", typeOfN));
            assertEquals("PI: Float: " + type.getSimpleName(), expected, ceil(3.141592653589793f, typeOfN));
            assertEquals("PI: Double: " + type.getSimpleName(), expected, ceil(Math.PI, typeOfN));
            assertEquals("PI: BigDecimal: " + type.getSimpleName(), expected,
                    ceil(BigDecimal.valueOf(Math.PI), typeOfN));
            assertEquals("(Double) (10 / 3): " + type.getSimpleName(), expected, ceil(
                    (Object) (BigDecimal.TEN.divide(new BigDecimal("3"), MathContext.DECIMAL128)), typeOfN));
            if (ObjectUtils.isAny(wrapper, Double.class, Float.class)) {
                expected = wrapper.getField("POSITIVE_INFINITY").get(null);
            } else if (ClassUtils.isPrimitiveWrapper(wrapper)) {
                expected = wrapper.getField("MAX_VALUE").get(null);
                assertEquals("Huge: " + type.getSimpleName(), expected,
                        ceil((Object) INFINITY_DOUBLE.pow(10, MathContext.DECIMAL128), typeOfN));
            } else if (BigDecimal.class.equals(type)) {
                expected = INFINITY_DOUBLE.pow(10, MathContext.DECIMAL128).toPlainString();
                Object actual = ceil((Object) INFINITY_DOUBLE.pow(10, MathContext.DECIMAL128), BigDecimal.class)
                        .toPlainString();
                assertEquals("Huge: " + type.getSimpleName(), expected, actual);
            } else {
                expected = INFINITY_DOUBLE.pow(10, MathContext.DECIMAL128).toBigInteger();
                Object actual = ceil((Object) INFINITY_DOUBLE.pow(10, MathContext.DECIMAL128),
                        BigInteger.class);
                assertEquals("Huge: " + type.getSimpleName(), expected, actual);
            }
        } catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage() + "\n" + Arrays.toString(e.getStackTrace()));
        }
    }
}

From source file:com.github.javalbert.reflection.ClassAccessFactory.java

private void checkCast(Castable castable) {
    String internalNameOfCast = castable.getInternalName();
    if (castable.getType().isPrimitive()) {
        Class<?> wrapperType = ClassUtils.primitiveToWrapper(castable.getType());
        internalNameOfCast = Type.getInternalName(wrapperType);
    }// ww w  .ja  v  a 2s .  co m
    mv.visitTypeInsn(CHECKCAST, internalNameOfCast);

    if (castable.getType().isPrimitive()) {
        mv.visitMethodInsn(INVOKEVIRTUAL, internalNameOfCast, castable.getType().getName() + "Value",
                "()" + castable.getDescriptor(), false);
    }
}

From source file:jp.furplag.util.time.DateTimeUtils.java

/**
 * {@link org.joda.time.DateTime#getMillis()}.
 *
 * @param instant the date-time object, null means current date-time.
 * @param strictly if true, returns null when the instant is invalid.
 * @return {@link org.joda.time.DateTime#getMillis()}.
 *//*w  w w.j a  v  a  2s. c o  m*/
private static Long getMillis(final Object instant, final boolean strictly) {
    if (instant instanceof DateTime)
        return ((DateTime) instant).getMillis();
    if (instant != null && ObjectUtils.isAny(ClassUtils.primitiveToWrapper(instant.getClass()),
            BigDecimal.class, Double.class, Float.class)) {
        if (isInfiniteOrNaN(valueOf(instant, double.class)))
            return null;
        return fromJD(valueOf(instant, double.class));
    }
    if (instant != null && ObjectUtils.isAny(ClassUtils.primitiveToWrapper(instant.getClass()),
            BigInteger.class, Byte.class, Short.class, Integer.class, Long.class)) {
        return valueOf(instant, long.class);
    }
    try {
        return new DateTime(instant, GJChronology.getInstanceUTC()).getMillis();
    } catch (Exception e) {
    }
    if (strictly)
        return null;

    return DateTime.now().getMillis();
}

From source file:jp.furplag.util.commons.NumberUtilsTest.java

/**
 * {@link jp.furplag.util.commons.NumberUtils#ceil(java.lang.Object, java.lang.Number, java.lang.Class)}.
 *//*from  w w  w . ja  v a  2  s. com*/
@SuppressWarnings("unchecked")
@Test
public void testCeilObjectNumberClassOfT() {
    assertEquals("null", null, ceil(null, null, null));
    assertEquals("null", null, ceil(null, 2, null));
    assertEquals("null", 4f, ceil(3.14f, 0, null));
    assertEquals("null", 3.15d, ceil(Math.PI, 2, null));
    for (Class<?> type : NUMBERS) {
        try {
            Object expected = null;
            Class<? extends Number> typeOfN = (Class<? extends Number>) type;
            Class<? extends Number> wrapper = (Class<? extends Number>) ClassUtils.primitiveToWrapper(type);
            if (Double.class.equals(wrapper)) {
                expected = 3.15d;
            } else if (Float.class.equals(wrapper)) {
                expected = 3.15f;
            } else if (BigDecimal.class.equals(wrapper)) {
                expected = new BigDecimal("3.15");
            } else if (ClassUtils.isPrimitiveWrapper(wrapper)) {
                expected = wrapper.getMethod("valueOf", String.class).invoke(null, "3");
            } else {
                Constructor<?> c = type.getDeclaredConstructor(String.class);
                expected = c.newInstance("3");
            }
            for (Class<?> scaleType : OBJECTS) {
                Object o = null;
                if (ClassUtils.isPrimitiveWrapper(scaleType)) {
                    o = scaleType.getMethod("valueOf", String.class).invoke(null, "2");
                } else {
                    Constructor<?> c = scaleType.getDeclaredConstructor(String.class);
                    o = c.newInstance("2");
                }
                assertEquals(
                        "PI: Float: " + type.getSimpleName() + "(scale: " + scaleType.getSimpleName() + ")",
                        expected, ceil(3.141592653589793f, (Number) o, typeOfN));
                assertEquals(
                        "PI: Double: " + type.getSimpleName() + "(scale: " + scaleType.getSimpleName() + ")",
                        expected, ceil(Math.PI, (Number) o, typeOfN));
                assertEquals("PI: BigDecimal: " + type.getSimpleName() + "(scale: " + scaleType.getSimpleName()
                        + ")", expected, ceil(new BigDecimal(Math.PI), (Number) o, typeOfN));
            }
        } catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage() + "\n" + Arrays.toString(e.getStackTrace()));
        }
    }
}

From source file:com.github.dozermapper.core.util.ReflectionUtils.java

/**
 * Checks if classA or classB can be auto boxed by the JVM
 *
 * @return {@code true}, if both classes are either primitive or wrapper classes and
 * autoboxing is possible between {@code classA} and {@code classB}
 *///from w w  w  .j a va 2  s. c  om
private static boolean canBeAutoboxed(Class<?> classA, Class<?> classB) {
    return ClassUtils.isPrimitiveOrWrapper(classA) && ClassUtils.isPrimitiveOrWrapper(classB)
            && (classB.equals(classA) // Same types
                    || ClassUtils.primitiveToWrapper(classB).equals(classA) // Matching primitive-wrapper pair, e.g. double - Double
                    || ClassUtils.primitiveToWrapper(classA).equals(classB)); // Matching wrapper-primitive pair, e.g. Long - long
}

From source file:jp.furplag.util.commons.NumberUtilsTest.java

/**
 * {@link jp.furplag.util.commons.NumberUtils#compareTo(java.lang.Number, java.lang.Number)}.
 *//*from  w  ww .j  a v a 2 s  .c om*/
@SuppressWarnings("unchecked")
@Test
public void testCompareToNumberNumber() {
    assertEquals("null", (Object) 0, compareTo(null, null));
    assertEquals("null", (Object) 1, compareTo(1, null));
    assertEquals("null", (Object) 1, compareTo(-1, null));
    assertEquals("null", (Object) 1, compareTo(Float.NEGATIVE_INFINITY, null));
    assertEquals("null", (Object) (-1), compareTo(null, 1));
    assertEquals("null", (Object) (-1), compareTo(null, -1));
    assertEquals("null", (Object) (-1), compareTo(null, Double.NEGATIVE_INFINITY));
    assertEquals("Infinity", (Object) 0, compareTo(Float.NEGATIVE_INFINITY, Double.NEGATIVE_INFINITY));
    assertEquals("Infinity", (Object) 0, compareTo(Double.POSITIVE_INFINITY, Float.POSITIVE_INFINITY));
    assertEquals("NaN", (Object) 1, compareTo(Float.NaN, null));
    assertEquals("NaN", (Object) 1, compareTo(Float.NaN, 1));
    assertEquals("NaN", (Object) 1, compareTo(Float.NaN, -1));
    assertEquals("NaN", (Object) 1, compareTo(Float.NaN, Double.POSITIVE_INFINITY));
    assertEquals("NaN", (Object) 0, compareTo(Float.NaN, Double.NaN));
    assertEquals("NaN", (Object) (-1), compareTo(null, Double.NaN));
    assertEquals("NaN", (Object) (-1), compareTo(1, Double.NaN));
    assertEquals("NaN", (Object) (-1), compareTo(-1, Double.NaN));
    assertEquals("NaN", (Object) (-1), compareTo(Float.NEGATIVE_INFINITY, Double.NaN));
    assertEquals("NaN", (Object) 0, compareTo(Double.NaN, Float.NaN));
    for (Class<?> type : NUMBERS) {
        Class<? extends Number> wrapper = (Class<? extends Number>) ClassUtils.primitiveToWrapper(type);
        try {
            Number n = null;
            if (ClassUtils.isPrimitiveWrapper(type)) {
                n = (Number) wrapper.getField("MAX_VALUE").get(null);
            } else {
                n = INFINITY_DOUBLE.pow(2);
                if (BigInteger.class.equals(type))
                    n = ((BigDecimal) n).toBigInteger();
            }
            assertEquals("equals: " + type.getSimpleName(), 0, compareTo(n, new BigDecimal(n.toString())));
        } catch (Exception e) {
            e.printStackTrace();
            fail(e.getMessage() + "\n" + Arrays.toString(e.getStackTrace()));
        }
    }
}