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

fr.esrf.utils.ArrayUtils Maven / Gradle / Ivy

package fr.esrf.utils;

import java.lang.reflect.Array;
import java.util.HashMap;
import java.util.Map;

/**
 * Copy'n'Paste from JTangoCommons
 *
 * @author Igor Khokhriakov 
 * @since 23.07.2015
 */
public class ArrayUtils {
    public final static Map, Class> OBJ_TO_PRIMITIVE = new HashMap, Class>();

    static {
        OBJ_TO_PRIMITIVE.put(Boolean.class, boolean.class);
        OBJ_TO_PRIMITIVE.put(Byte.class, byte.class);
        OBJ_TO_PRIMITIVE.put(Short.class, short.class);
        OBJ_TO_PRIMITIVE.put(Character.class, char.class);
        OBJ_TO_PRIMITIVE.put(Integer.class, int.class);
        OBJ_TO_PRIMITIVE.put(Long.class, long.class);
        OBJ_TO_PRIMITIVE.put(Float.class, float.class);
        OBJ_TO_PRIMITIVE.put(Double.class, double.class);
    }

    private ArrayUtils() {
    }

    public static Object toPrimitiveArray(Object array, Class source) {
        if (!array.getClass().isArray()) {
            return array;
        }
        final Class clazz = OBJ_TO_PRIMITIVE.get(source);
        return setArray(clazz, array);
    }

    private final static Object setArray(final Class clazz, final Object array) {
        Object result = array;
        if (clazz != null) {
            final int length = Array.getLength(array);
            result = Array.newInstance(clazz, length);
            for (int i = 0; i < length; i++) {
                Array.set(result, i, Array.get(array, i));
            }
        }
        return result;

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy