001/**
002 * Copyright (C) 2006-2024 Talend Inc. - www.talend.com
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.talend.sdk.component.runtime.manager.reflect;
017
018import static lombok.AccessLevel.PRIVATE;
019
020import java.util.HashMap;
021import java.util.Map;
022
023import lombok.NoArgsConstructor;
024
025@NoArgsConstructor(access = PRIVATE)
026public final class Primitives {
027
028    private static final Map<Class<?>, Class<?>> WRAPPER_TO_PRIMITIVES = new HashMap<Class<?>, Class<?>>() {
029
030        {
031            put(Integer.class, int.class);
032            put(Short.class, short.class);
033            put(Byte.class, byte.class);
034            put(Character.class, char.class);
035            put(Long.class, long.class);
036            put(Float.class, float.class);
037            put(Double.class, double.class);
038            put(Boolean.class, boolean.class);
039        }
040    };
041
042    public static Class<?> unwrap(final Class<?> type) {
043        return WRAPPER_TO_PRIMITIVES.getOrDefault(type, type);
044    }
045}