Java Class Type Check isLogicalPrimitive(Class c)

Here you can find the source of isLogicalPrimitive(Class c)

Description

is Logical Primitive

License

Apache License

Parameter

Parameter Description
c Class to test

Return

boolean true if the passed in class is a 'logical' primitive. A logical primitive is defined as all Java primitives, the primitive wrapper classes, String, Number, and Class. The reason these are considered 'logical' primitives is that they are immutable and therefore can be written without references in JSON content (making the JSON more readable - less @id / @ref), without breaking the semantics (shape) of the object graph being written.

Declaration

public static boolean isLogicalPrimitive(Class c) 

Method Source Code

//package com.java2s;
/**/* ww w. ja  va  2s  .c om*/
 * This utility class has the methods mostly related to reflection related code.
 *
 * @author John DeRegnaucourt (jdereg@gmail.com)
 *         <br>
 *         Copyright (c) Cedar Software LLC
 *         <br><br>
 *         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
 *         <br><br>
 *         http://www.apache.org/licenses/LICENSE-2.0
 *         <br><br>
 *         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.*
 */

import java.util.*;

public class Main {
    private static final Set<Class> prims = new HashSet<Class>();

    /**
     * @param c Class to test
     * @return boolean true if the passed in class is a 'logical' primitive.  A logical primitive is defined
     * as all Java primitives, the primitive wrapper classes, String, Number, and Class.  The reason these are
     * considered 'logical' primitives is that they are immutable and therefore can be written without references
     * in JSON content (making the JSON more readable - less @id / @ref), without breaking the semantics (shape)
     * of the object graph being written.
     */
    public static boolean isLogicalPrimitive(Class c) {
        return c.isPrimitive() || prims.contains(c)
                || String.class.isAssignableFrom(c)
                || Number.class.isAssignableFrom(c)
                || Date.class.isAssignableFrom(c) || c.isEnum()
                || c.equals(Class.class);
    }

    /**
     * @param c Class to test
     * @return boolean true if the passed in class is a Java primitive, false otherwise.  The Wrapper classes
     * Integer, Long, Boolean, etc. are consider primitives by this method.
     */
    public static boolean isPrimitive(Class c) {
        return c.isPrimitive() || prims.contains(c);
    }
}

Related

  1. isCollectionMapOrArray(Class type)
  2. isComposite(Class cls)
  3. isEmptyCollectionOrMap(Object content, Class type)
  4. isInPrimitiveWrapperType(Class type)
  5. isJavaImmutable(Class cls)
  6. isMap(Class o)
  7. isMapType(final Class type)
  8. isMethodReturnTypeValid(Class cls)
  9. isNumber(Class type)