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

mockit.internal.util.AutoBoxing Maven / Gradle / Ivy

/*
 * Copyright (c) 2006 JMockit developers
 * This file is subject to the terms of the MIT license (see LICENSE.txt).
 */
package mockit.internal.util;

import edu.umd.cs.findbugs.annotations.NonNull;
import edu.umd.cs.findbugs.annotations.Nullable;

import java.util.HashMap;
import java.util.Map;

public final class AutoBoxing {
    private static final Map, Class> PRIMITIVE_TO_WRAPPER = new HashMap<>();
    private static final Map, Class> WRAPPER_TO_PRIMITIVE = new HashMap<>();

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

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

    private AutoBoxing() {
    }

    public static boolean isWrapperOfPrimitiveType(@NonNull Class type) {
        return WRAPPER_TO_PRIMITIVE.containsKey(type);
    }

    @Nullable
    public static Class getPrimitiveType(@NonNull Class wrapperType) {
        return WRAPPER_TO_PRIMITIVE.get(wrapperType);
    }

    @Nullable
    public static Class getWrapperType(@NonNull Class primitiveType) {
        return PRIMITIVE_TO_WRAPPER.get(primitiveType);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy