Package org.apache.myfaces.util.lang
Class ClassUtils
- java.lang.Object
-
- org.apache.myfaces.core.api.shared.lang.ClassUtils
-
- org.apache.myfaces.util.lang.ClassUtils
-
public final class ClassUtils extends ClassUtils
-
-
Field Summary
-
Fields inherited from class org.apache.myfaces.core.api.shared.lang.ClassUtils
BOOLEAN_ARRAY_CLASS, BOOLEAN_OBJECT_ARRAY_CLASS, BYTE_ARRAY_CLASS, BYTE_OBJECT_ARRAY_CLASS, CHAR_ARRAY_CLASS, CHARACTER_OBJECT_ARRAY_CLASS, COMMON_TYPES, DOUBLE_ARRAY_CLASS, DOUBLE_OBJECT_ARRAY_CLASS, EMPTY_STRING, FLOAT_ARRAY_CLASS, FLOAT_OBJECT_ARRAY_CLASS, INT_ARRAY_CLASS, INTEGER_OBJECT_ARRAY_CLASS, LONG_ARRAY_CLASS, LONG_OBJECT_ARRAY_CLASS, OBJECT_ARRAY_CLASS, PRIMITIVE_NAMES, PRIMITIVES, SHORT_ARRAY_CLASS, SHORT_OBJECT_ARRAY_CLASS, STRING_OBJECT_ARRAY_CLASS
-
-
Constructor Summary
Constructors Constructor Description ClassUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> T
buildApplicationObject(Class<T> interfaceClass, Class<? extends T> extendedInterfaceClass, Class<? extends T> extendedInterfaceWrapperClass, Collection<String> classNamesIterator, T defaultObject)
Creates ApplicationObjects like NavigationHandler or StateManager and creates the right wrapping chain of the ApplicationObjects known as the decorator pattern.static <T> T
buildApplicationObject(Class<T> interfaceClass, Collection<String> classNamesIterator, T defaultObject)
Creates ApplicationObjects like NavigationHandler or StateManager and creates the right wrapping chain of the ApplicationObjects known as the decorator pattern.static <T> Class<T>
classForName(String type)
Tries a Class.loadClass with the context class loader of the current thread first and automatically falls back to the ClassUtils class loader (i.e.static URL
getResource(String resource)
static InputStream
getResourceAsStream(String resource)
protected static String
paramString(Class<?>... types)
static Class
simpleClassForName(String type)
Same asclassForName(String)
, but throws a RuntimeException (FacesException) instead of a ClassNotFoundException.static Class
simpleClassForName(String type, boolean logException)
Same as {linksimpleClassForName(String)
, but will only log the exception and rethrow a RunTimeException if logException is true.static <T> T
wrapBackwardCompatible(Class<T> interfaceClass, Class<? extends T> extendedInterfaceClass, Class<? extends T> extendedInterfaceWrapperClass, T defaultObject, T newCurrent)
Wrap an object using a backwards compatible wrapper if available-
Methods inherited from class org.apache.myfaces.core.api.shared.lang.ClassUtils
convertToType, convertToTypeNoLogging, forName, forNamePrimitive, getContextClassLoader, getCurrentLoader, getCurrentLoader, getResources, javaDefaultTypeToClass, javaTypeToClass, newInstance, newInstance, newInstance, newInstance, newInstance, simpleJavaTypeToClass, toTypeArray, toTypeNameArray
-
-
-
-
Method Detail
-
buildApplicationObject
public static <T> T buildApplicationObject(Class<T> interfaceClass, Collection<String> classNamesIterator, T defaultObject)
Creates ApplicationObjects like NavigationHandler or StateManager and creates the right wrapping chain of the ApplicationObjects known as the decorator pattern.- Type Parameters:
T
-- Parameters:
interfaceClass
- The class from which the implementation has to inherit from.classNamesIterator
- All the class names of the actual ApplicationObject implementations from the faces-config.xml.defaultObject
- The default implementation for the given ApplicationObject.- Returns:
-
buildApplicationObject
public static <T> T buildApplicationObject(Class<T> interfaceClass, Class<? extends T> extendedInterfaceClass, Class<? extends T> extendedInterfaceWrapperClass, Collection<String> classNamesIterator, T defaultObject)
Creates ApplicationObjects like NavigationHandler or StateManager and creates the right wrapping chain of the ApplicationObjects known as the decorator pattern.- Type Parameters:
T
-- Parameters:
interfaceClass
- The class from which the implementation has to inherit from.extendedInterfaceClass
- A subclass of interfaceClass which specifies a more detailed implementation.extendedInterfaceWrapperClass
- A wrapper class for the case that you have an ApplicationObject which only implements the interfaceClass but not the extendedInterfaceClass.classNamesIterator
- All the class names of the actual ApplicationObject implementations from the faces-config.xml.defaultObject
- The default implementation for the given ApplicationObject.- Returns:
-
wrapBackwardCompatible
public static <T> T wrapBackwardCompatible(Class<T> interfaceClass, Class<? extends T> extendedInterfaceClass, Class<? extends T> extendedInterfaceWrapperClass, T defaultObject, T newCurrent)
Wrap an object using a backwards compatible wrapper if available- Parameters:
interfaceClass
- The class from which the implementation has to inherit from.extendedInterfaceClass
- A subclass of interfaceClass which specifies a more detailed implementation.extendedInterfaceWrapperClass
- A wrapper class for the case that you have an ApplicationObject which only implements the interfaceClass but not the extendedInterfaceClass.defaultObject
- The default implementation for the given ApplicationObject.newCurrent
- The new current object- Returns:
-
classForName
public static <T> Class<T> classForName(String type) throws ClassNotFoundException
Tries a Class.loadClass with the context class loader of the current thread first and automatically falls back to the ClassUtils class loader (i.e. the loader of the myfaces.jar lib) if necessary.- Parameters:
type
- fully qualified name of a non-primitive non-array class- Returns:
- the corresponding Class
- Throws:
NullPointerException
- if type is nullClassNotFoundException
-
simpleClassForName
public static Class simpleClassForName(String type)
Same asclassForName(String)
, but throws a RuntimeException (FacesException) instead of a ClassNotFoundException.- Returns:
- the corresponding Class
- Throws:
NullPointerException
- if type is nullFacesException
- if class not found
-
simpleClassForName
public static Class simpleClassForName(String type, boolean logException)
Same as {linksimpleClassForName(String)
, but will only log the exception and rethrow a RunTimeException if logException is true.- Parameters:
type
-logException
- - true to log/throw FacesException, false to avoid logging/throwing FacesException- Returns:
- the corresponding Class
- Throws:
FacesException
- if class not found and logException is true
-
getResourceAsStream
public static InputStream getResourceAsStream(String resource)
-
-