Package org.codehaus.jackson.map.util
Class ClassUtil
- java.lang.Object
-
- org.codehaus.jackson.map.util.ClassUtil
-
public final class ClassUtil extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description ClassUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static java.lang.String
canBeABeanType(java.lang.Class<?> type)
static void
checkAndFixAccess(java.lang.reflect.Member member)
Method called to check if we can use the passed method or constructor (wrt access restriction -- public methods can be called, others usually not); and if not, if there is a work-around for the problem.static <T> T
createInstance(java.lang.Class<T> cls, boolean canFixAccess)
Method that can be called to try to create an instantiate of specified type.static java.lang.Object
defaultValue(java.lang.Class<?> cls)
Helper method used to get default value for wrappers used for primitive types (0 for Integer etc)static java.lang.Class<?>
findClass(java.lang.String className)
static <T> java.lang.reflect.Constructor<T>
findConstructor(java.lang.Class<T> cls, boolean canFixAccess)
static java.lang.Class<? extends java.lang.Enum<?>>
findEnumType(java.lang.Class<?> cls)
Helper method that can be used to dynamically figure out formal enumeration type (class) for given class of an enumeration value.static java.lang.Class<? extends java.lang.Enum<?>>
findEnumType(java.lang.Enum<?> en)
Helper method that can be used to dynamically figure out formal enumeration type (class) for given enumeration.static java.lang.Class<? extends java.lang.Enum<?>>
findEnumType(java.util.EnumMap<?,?> m)
Helper method that can be used to dynamically figure out enumeration type of givenEnumSet
, without having access to its declaration.static java.lang.Class<? extends java.lang.Enum<?>>
findEnumType(java.util.EnumSet<?> s)
Helper method that can be used to dynamically figure out enumeration type of givenEnumSet
, without having access to its declaration.static java.util.List<java.lang.Class<?>>
findSuperTypes(java.lang.Class<?> cls, java.lang.Class<?> endBefore)
Method that will find all sub-classes and implemented interfaces of a given class or interface.static java.util.List<java.lang.Class<?>>
findSuperTypes(java.lang.Class<?> cls, java.lang.Class<?> endBefore, java.util.List<java.lang.Class<?>> result)
static java.lang.String
getClassDescription(java.lang.Object classOrInstance)
Helper method used to construct appropriate description when passed either type (Class) or an instance; in latter case, class of instance is to be used.static java.lang.Class<?>
getOuterClass(java.lang.Class<?> type)
Method for finding enclosing class for non-static inner classesstatic java.lang.Throwable
getRootCause(java.lang.Throwable t)
Method that can be used to find the "root cause", innermost of chained (wrapped) exceptions.static boolean
hasGetterSignature(java.lang.reflect.Method m)
static boolean
isCollectionMapOrArray(java.lang.Class<?> type)
static boolean
isConcrete(java.lang.Class<?> type)
Helper method that checks if given class is a concrete one; that is, not an interface or abstract class.static boolean
isConcrete(java.lang.reflect.Member member)
static java.lang.String
isLocalType(java.lang.Class<?> type)
Deprecated.since 1.9, use variant that takes second argumentstatic java.lang.String
isLocalType(java.lang.Class<?> type, boolean allowNonStatic)
static boolean
isProxyType(java.lang.Class<?> type)
Helper method used to weed out dynamic Proxy types; types that do not expose concrete method API that we could use to figure out automatic Bean (property) based serialization.static void
throwAsIAE(java.lang.Throwable t)
Method that will wrap 't' as anIllegalArgumentException
if it is a checked exception; otherwise (runtime exception or error) throw as isstatic void
throwAsIAE(java.lang.Throwable t, java.lang.String msg)
Method that will wrap 't' as anIllegalArgumentException
(and with specified message) if it is a checked exception; otherwise (runtime exception or error) throw as isstatic void
throwRootCause(java.lang.Throwable t)
Method that will unwrap root causes of given Throwable, and throw the innermostException
orError
as is.static void
unwrapAndThrowAsIAE(java.lang.Throwable t)
Method that will locate the innermost exception for given Throwable; and then wrap it as anIllegalArgumentException
if it is a checked exception; otherwise (runtime exception or error) throw as isstatic void
unwrapAndThrowAsIAE(java.lang.Throwable t, java.lang.String msg)
Method that will locate the innermost exception for given Throwable; and then wrap it as anIllegalArgumentException
if it is a checked exception; otherwise (runtime exception or error) throw as isstatic java.lang.Class<?>
wrapperType(java.lang.Class<?> primitiveType)
Helper method for finding wrapper type for given primitive type (why isn't there one in JDK?)
-
-
-
Method Detail
-
findSuperTypes
public static java.util.List<java.lang.Class<?>> findSuperTypes(java.lang.Class<?> cls, java.lang.Class<?> endBefore)
Method that will find all sub-classes and implemented interfaces of a given class or interface. Classes are listed in order of precedence, starting with the immediate super-class, followed by interfaces class directly declares to implemented, and then recursively followed by parent of super-class and so forth. Note thatObject.class
is not included in the list regardless of whetherendBefore
argument is defined or not.- Parameters:
endBefore
- Super-type to NOT include in results, if any; when encountered, will be ignored (and no super types are checked).
-
findSuperTypes
public static java.util.List<java.lang.Class<?>> findSuperTypes(java.lang.Class<?> cls, java.lang.Class<?> endBefore, java.util.List<java.lang.Class<?>> result)
-
canBeABeanType
public static java.lang.String canBeABeanType(java.lang.Class<?> type)
- Returns:
- Null if class might be a bean; type String (that identifies why it's not a bean) if not
-
isLocalType
@Deprecated public static java.lang.String isLocalType(java.lang.Class<?> type)
Deprecated.since 1.9, use variant that takes second argument
-
isLocalType
public static java.lang.String isLocalType(java.lang.Class<?> type, boolean allowNonStatic)
- Since:
- 1.9
-
getOuterClass
public static java.lang.Class<?> getOuterClass(java.lang.Class<?> type)
Method for finding enclosing class for non-static inner classes- Since:
- 1.9
-
isProxyType
public static boolean isProxyType(java.lang.Class<?> type)
Helper method used to weed out dynamic Proxy types; types that do not expose concrete method API that we could use to figure out automatic Bean (property) based serialization.
-
isConcrete
public static boolean isConcrete(java.lang.Class<?> type)
Helper method that checks if given class is a concrete one; that is, not an interface or abstract class.
-
isConcrete
public static boolean isConcrete(java.lang.reflect.Member member)
- Since:
- 1.6
-
isCollectionMapOrArray
public static boolean isCollectionMapOrArray(java.lang.Class<?> type)
-
getClassDescription
public static java.lang.String getClassDescription(java.lang.Object classOrInstance)
Helper method used to construct appropriate description when passed either type (Class) or an instance; in latter case, class of instance is to be used.
-
findClass
public static java.lang.Class<?> findClass(java.lang.String className) throws java.lang.ClassNotFoundException
- Throws:
java.lang.ClassNotFoundException
-
hasGetterSignature
public static boolean hasGetterSignature(java.lang.reflect.Method m)
-
getRootCause
public static java.lang.Throwable getRootCause(java.lang.Throwable t)
Method that can be used to find the "root cause", innermost of chained (wrapped) exceptions.
-
throwRootCause
public static void throwRootCause(java.lang.Throwable t) throws java.lang.Exception
Method that will unwrap root causes of given Throwable, and throw the innermostException
orError
as is. This is useful in cases where mandatory wrapping is added, which is often done by Reflection API.- Throws:
java.lang.Exception
- Since:
- 1.7
-
throwAsIAE
public static void throwAsIAE(java.lang.Throwable t)
Method that will wrap 't' as anIllegalArgumentException
if it is a checked exception; otherwise (runtime exception or error) throw as is
-
throwAsIAE
public static void throwAsIAE(java.lang.Throwable t, java.lang.String msg)
Method that will wrap 't' as anIllegalArgumentException
(and with specified message) if it is a checked exception; otherwise (runtime exception or error) throw as is
-
unwrapAndThrowAsIAE
public static void unwrapAndThrowAsIAE(java.lang.Throwable t)
Method that will locate the innermost exception for given Throwable; and then wrap it as anIllegalArgumentException
if it is a checked exception; otherwise (runtime exception or error) throw as is
-
unwrapAndThrowAsIAE
public static void unwrapAndThrowAsIAE(java.lang.Throwable t, java.lang.String msg)
Method that will locate the innermost exception for given Throwable; and then wrap it as anIllegalArgumentException
if it is a checked exception; otherwise (runtime exception or error) throw as is
-
createInstance
public static <T> T createInstance(java.lang.Class<T> cls, boolean canFixAccess) throws java.lang.IllegalArgumentException
Method that can be called to try to create an instantiate of specified type. Instantiation is done using default no-argument constructor.- Parameters:
canFixAccess
- Whether it is possible to try to change access rights of the default constructor (in case it is not publicly accessible) or not.- Throws:
java.lang.IllegalArgumentException
- If instantiation fails for any reason; except for cases where constructor throws an unchecked exception (which will be passed as is)
-
findConstructor
public static <T> java.lang.reflect.Constructor<T> findConstructor(java.lang.Class<T> cls, boolean canFixAccess) throws java.lang.IllegalArgumentException
- Throws:
java.lang.IllegalArgumentException
-
defaultValue
public static java.lang.Object defaultValue(java.lang.Class<?> cls)
Helper method used to get default value for wrappers used for primitive types (0 for Integer etc)- Since:
- 1.6.1
-
wrapperType
public static java.lang.Class<?> wrapperType(java.lang.Class<?> primitiveType)
Helper method for finding wrapper type for given primitive type (why isn't there one in JDK?)- Since:
- 1.7.1
-
checkAndFixAccess
public static void checkAndFixAccess(java.lang.reflect.Member member)
Method called to check if we can use the passed method or constructor (wrt access restriction -- public methods can be called, others usually not); and if not, if there is a work-around for the problem.
-
findEnumType
public static java.lang.Class<? extends java.lang.Enum<?>> findEnumType(java.util.EnumSet<?> s)
Helper method that can be used to dynamically figure out enumeration type of givenEnumSet
, without having access to its declaration. Code is needed to work around design flaw in JDK.- Since:
- 1.5
-
findEnumType
public static java.lang.Class<? extends java.lang.Enum<?>> findEnumType(java.util.EnumMap<?,?> m)
Helper method that can be used to dynamically figure out enumeration type of givenEnumSet
, without having access to its declaration. Code is needed to work around design flaw in JDK.- Since:
- 1.5
-
findEnumType
public static java.lang.Class<? extends java.lang.Enum<?>> findEnumType(java.lang.Enum<?> en)
Helper method that can be used to dynamically figure out formal enumeration type (class) for given enumeration. This is either class of enum instance (for "simple" enumerations), or its superclass (for enums with instance fields or methods)
-
findEnumType
public static java.lang.Class<? extends java.lang.Enum<?>> findEnumType(java.lang.Class<?> cls)
Helper method that can be used to dynamically figure out formal enumeration type (class) for given class of an enumeration value. This is either class of enum instance (for "simple" enumerations), or its superclass (for enums with instance fields or methods)
-
-