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

com.landawn.abacus.util.Clazz Maven / Gradle / Ivy

/*
 * Copyright (C) 2018 HaiYang Li
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */

package com.landawn.abacus.util;

import java.util.ArrayDeque;
import java.util.Collection;
import java.util.Deque;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.NavigableMap;
import java.util.NavigableSet;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Set;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.LinkedBlockingQueue;

/**
 * It's designed to provide a convenient way to parameterized the generic type (e.g. {@code List.class}).
 * 
* But the returned Class by all the methods doesn't have the actual parameterized type informations. For example: *
 * 
 * List<String> clazz = Clazz.ofList(String.class);
 * // clazz doesn't have the actual type parameters information. 
 * // you won't be able to get type parameter {@code String} by: cls.getTypeParameters();
 * // To save the real type parameters: you need to either:
 * Type<List<String>> type = Type.of("List<String>"); // or Type.ofList(String.class)
 * 
 * // Or
 * Type<List<String>> type = new TypeReference<List<String>>() {}.type();
 *
 * 
 * 
* * @since 1.2 * * @author Haiyang Li */ public final class Clazz { @SuppressWarnings("rawtypes") public static final Class> PROPS_MAP = (Class) Map.class; @SuppressWarnings("rawtypes") public static final Class> STRING_LIST = (Class) List.class; @SuppressWarnings("rawtypes") public static final Class> INTEGER_LIST = (Class) List.class; @SuppressWarnings("rawtypes") public static final Class> LONG_LIST = (Class) List.class; @SuppressWarnings("rawtypes") public static final Class> DOUBLE_LIST = (Class) List.class; @SuppressWarnings("rawtypes") public static final Class> OBJECT_LIST = (Class) List.class; @SuppressWarnings("rawtypes") public static final Class> STRING_SET = (Class) Set.class; @SuppressWarnings("rawtypes") public static final Class> INTEGER_SET = (Class) Set.class; @SuppressWarnings("rawtypes") public static final Class> LONG_SET = (Class) Set.class; @SuppressWarnings("rawtypes") public static final Class> DOUBLE_SET = (Class) Set.class; @SuppressWarnings("rawtypes") public static final Class> OBJECT_SET = (Class) Set.class; private Clazz() { // singleton. } /** * @param cls * @return */ @SuppressWarnings("rawtypes") public static Class of(Class cls) { return (Class) cls; } @SuppressWarnings("rawtypes") public static Class> ofList() { return (Class) List.class; } @SuppressWarnings("rawtypes") public static Class> ofList(final Class eleCls) { return (Class) List.class; } @SuppressWarnings("rawtypes") public static Class> ofLinkedList() { return (Class) LinkedList.class; } @SuppressWarnings("rawtypes") public static Class> ofLinkedList(final Class eleCls) { return (Class) LinkedList.class; } @SuppressWarnings("rawtypes") public static Class>> ofListOfMap(final Class keyCls, final Class valueCls) { return (Class) List.class; } @SuppressWarnings("rawtypes") public static Class>> ofSetOfMap(final Class keyCls, final Class valueCls) { return (Class) Set.class; } @SuppressWarnings("rawtypes") public static Class> ofSet() { return (Class) Set.class; } @SuppressWarnings("rawtypes") public static Class> ofSet(final Class eleCls) { return (Class) Set.class; } @SuppressWarnings("rawtypes") public static Class> ofLinkedHashSet() { return (Class) LinkedHashSet.class; } @SuppressWarnings("rawtypes") public static Class> ofLinkedHashSet(final Class eleCls) { return (Class) LinkedHashSet.class; } @SuppressWarnings("rawtypes") public static Class> ofSortedSet() { return (Class) SortedSet.class; } @SuppressWarnings("rawtypes") public static Class> ofSortedSet(final Class eleCls) { return (Class) SortedSet.class; } @SuppressWarnings("rawtypes") public static Class> ofNavigableSet() { return (Class) NavigableSet.class; } @SuppressWarnings("rawtypes") public static Class> ofNavigableSet(final Class eleCls) { return (Class) NavigableSet.class; } @SuppressWarnings("rawtypes") public static Class> ofTreeSet() { return (Class) TreeSet.class; } @SuppressWarnings("rawtypes") public static Class> ofTreeSet(final Class eleCls) { return (Class) TreeSet.class; } @SuppressWarnings("rawtypes") public static Class> ofQueue() { return (Class) Queue.class; } @SuppressWarnings("rawtypes") public static Class> ofQueue(final Class eleCls) { return (Class) Queue.class; } @SuppressWarnings("rawtypes") public static Class> ofDeque() { return (Class) Deque.class; } @SuppressWarnings("rawtypes") public static Class> ofDeque(final Class eleCls) { return (Class) Deque.class; } @SuppressWarnings("rawtypes") public static Class> ofArrayDeque() { return (Class) ArrayDeque.class; } @SuppressWarnings("rawtypes") public static Class> ofArrayDeque(final Class eleCls) { return (Class) ArrayDeque.class; } @SuppressWarnings("rawtypes") public static Class> ofConcurrentLinkedQueue() { return (Class) ConcurrentLinkedQueue.class; } @SuppressWarnings("rawtypes") public static Class> ofConcurrentLinkedQueue(final Class eleCls) { return (Class) ConcurrentLinkedQueue.class; } @SuppressWarnings("rawtypes") public static Class> ofPriorityQueue() { return (Class) PriorityQueue.class; } @SuppressWarnings("rawtypes") public static Class> ofPriorityQueue(final Class eleCls) { return (Class) PriorityQueue.class; } @SuppressWarnings("rawtypes") public static Class> ofLinkedBlockingQueue() { return (Class) LinkedBlockingQueue.class; } @SuppressWarnings("rawtypes") public static Class> ofLinkedBlockingQueue(final Class eleCls) { return (Class) LinkedBlockingQueue.class; } @SuppressWarnings("rawtypes") public static Class> ofCollection() { return (Class) Collection.class; } @SuppressWarnings("rawtypes") public static Class> ofCollection(final Class eleCls) { return (Class) Collection.class; } @SuppressWarnings("rawtypes") public static Class> ofMap() { return (Class) Map.class; } @SuppressWarnings("rawtypes") public static Class> ofMap(final Class keyCls, final Class valueCls) { return (Class) Map.class; } @SuppressWarnings("rawtypes") public static Class> ofLinkedHashMap() { return (Class) LinkedHashMap.class; } @SuppressWarnings("rawtypes") public static Class> ofLinkedHashMap(final Class keyCls, final Class valueCls) { return (Class) LinkedHashMap.class; } @SuppressWarnings("rawtypes") public static Class> ofSortedMap() { return (Class) SortedMap.class; } @SuppressWarnings("rawtypes") public static Class> ofSortedMap(final Class keyCls, final Class valueCls) { return (Class) SortedMap.class; } @SuppressWarnings("rawtypes") public static Class> ofNavigableMap() { return (Class) NavigableMap.class; } @SuppressWarnings("rawtypes") public static Class> ofNavigableMap(final Class keyCls, final Class valueCls) { return (Class) NavigableMap.class; } @SuppressWarnings("rawtypes") public static Class> ofTreeMap() { return (Class) TreeMap.class; } @SuppressWarnings("rawtypes") public static Class> ofTreeMap(final Class keyCls, final Class valueCls) { return (Class) TreeMap.class; } @SuppressWarnings("rawtypes") public static Class> ofConcurrentMap() { return (Class) ConcurrentMap.class; } @SuppressWarnings("rawtypes") public static Class> ofConcurrentMap(final Class keyCls, final Class valueCls) { return (Class) ConcurrentMap.class; } @SuppressWarnings("rawtypes") public static Class> ofConcurrentHashMap() { return (Class) ConcurrentHashMap.class; } @SuppressWarnings("rawtypes") public static Class> ofConcurrentHashMap(final Class keyCls, final Class valueCls) { return (Class) ConcurrentHashMap.class; } @SuppressWarnings("rawtypes") public static Class> ofBiMap() { return (Class) BiMap.class; } @SuppressWarnings("rawtypes") public static Class> ofBiMap(final Class keyCls, final Class valueCls) { return (Class) BiMap.class; } @SuppressWarnings("rawtypes") public static Class> ofMultiset() { return (Class) Multiset.class; } @SuppressWarnings("rawtypes") public static Class> ofMultiset(final Class eleCls) { return (Class) Multiset.class; } @SuppressWarnings("rawtypes") public static Class> ofLongMultiset() { return (Class) LongMultiset.class; } @SuppressWarnings("rawtypes") public static Class> ofLongMultiset(final Class eleCls) { return (Class) LongMultiset.class; } @SuppressWarnings("rawtypes") public static Class> ofListMultimap() { return (Class) ListMultimap.class; } @SuppressWarnings("rawtypes") public static Class> ofListMultimap(final Class keyCls, final Class valueEleCls) { return (Class) ListMultimap.class; } @SuppressWarnings("rawtypes") public static Class> ofSetMultimap() { return (Class) SetMultimap.class; } @SuppressWarnings("rawtypes") public static Class> ofSetMultimap(final Class keyCls, final Class valueEleCls) { return (Class) SetMultimap.class; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy