Class ClassUtil
- Since:
- 2.1.29.
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
assignable
(String srcClassName, String parentClassName) checks ifsrcClassName
is a subclass ofparentClassname
.static <T> T
buildInstance
(Class<T> from) This method is used to instantiate a given class.static <T> T
buildInstance
(Class<T> from, Object... initArgs) This method is used to instantiate a given class.static <T> T
buildInstance
(String className) This method is used to instantiate a given class.static <T> T
buildInstance
(String packageName, String className) This method is used to instantiate a given class.classpathEntriesUnder
(String rootPackage) Lists all the files in classpath under a given package.static boolean
Checks if a given class exists in classpath.static <T> Class<T>
It will first attempt to instantiate the class directly from the className, and will then try to prefix it with the packageName.static <T> Class<T>
Attempts to find a class from a collection of packages.static Class<?>
getMappedClass
(String requestedClass) Finds a mapped class from the c_classMappings list.static <T> T
getMappedObject
(String requestedClass) This method is used to locate and instantiate a mapped class.static <T> T
getMappedObject
(String requestedClass, Object... initargs) This method is used to locate and instantiate a mapped class.
-
Field Details
-
MAPPINGS
The location of the classmappings.xml document. It will be searched for in the classpath. Its value is ""ini/classmappings.xml"".- See Also:
-
MAPPINGS_EXTRA
The location of the classmappings-extra.xml document. It will be searched for in the classpath. Its value is ""ini/classmappings-extra.xml"".- See Also:
-
-
Method Details
-
findClass
public static <T> Class<T> findClass(List<String> packages, List<String> externaljars, String className) throws ClassNotFoundException Attempts to find a class from a collection of packages. This will first attempt to find the class based on just the className parameter, but should that fail, will iterate through the "packages" -list, prefixes the package name to the className, and then tries to find the class again.- Parameters:
packages
- A List of Strings, containing different package names.className
- The name of the class to find.- Returns:
- The class, if it was found.
- Throws:
ClassNotFoundException
- if this particular class cannot be found from the list.
-
findClass
public static <T> Class<T> findClass(String packageName, String className) throws ClassNotFoundException It will first attempt to instantiate the class directly from the className, and will then try to prefix it with the packageName.- Parameters:
packageName
- A package name (such as "org.apache.wiki.plugins").className
- The class name to find.- Returns:
- The class, if it was found.
- Throws:
ClassNotFoundException
- if this particular class cannot be found.
-
classpathEntriesUnder
Lists all the files in classpath under a given package.- Parameters:
rootPackage
- the base package. Can be {code null}.- Returns:
- all files entries in classpath under the given package
-
getMappedObject
public static <T> T getMappedObject(String requestedClass) throws ReflectiveOperationException, IllegalArgumentException This method is used to locate and instantiate a mapped class. You may redefine anything in the resource file which is located in your classpath under the nameClassUtil.MAPPINGS ("ini/classmappings.xml")
.This is an extremely powerful system, which allows you to remap many of the JSPWiki core classes to your own class. Please read the documentation included in the default
"ini/classmappings.xml"
file to see how this method works.- Parameters:
requestedClass
- The name of the class you wish to instantiate.- Returns:
- An instantiated Object.
- Throws:
IllegalArgumentException
- If the class cannot be found or instantiated.ReflectiveOperationException
- If the class cannot be found or instantiated.- Since:
- 2.5.40
-
getMappedObject
public static <T> T getMappedObject(String requestedClass, Object... initargs) throws ReflectiveOperationException, IllegalArgumentException This method is used to locate and instantiate a mapped class. You may redefine anything in the resource file which is located in your classpath under the name"ini/classmappings.xml"
.This is an extremely powerful system, which allows you to remap many of the JSPWiki core classes to your own class. Please read the documentation included in the default
"ini/classmappings.xml"
file to see how this method works.This method takes in an object array for the constructor arguments for classes which have more than two constructors.
- Parameters:
requestedClass
- The name of the class you wish to instantiate.initargs
- The parameters to be passed to the constructor. May benull
.- Returns:
- An instantiated Object.
- Throws:
IllegalArgumentException
- If the class cannot be found or instantiated.ReflectiveOperationException
- If the class cannot be found or instantiated.- Since:
- 2.5.40
-
getMappedClass
Finds a mapped class from the c_classMappings list. If there is no mappped class, will use the requestedClass.- Parameters:
requestedClass
- requested class.- Returns:
- A Class object which you can then instantiate.
- Throws:
ClassNotFoundException
- if the class is not found.
-
assignable
checks ifsrcClassName
is a subclass ofparentClassname
.- Parameters:
srcClassName
- expected subclass.parentClassName
- expected parent class.- Returns:
true
ifsrcClassName
is a subclass ofparentClassname
,false
otherwise.
-
exists
Checks if a given class exists in classpath.- Parameters:
className
- the class to check for existence.- Returns:
true
if it exists,false
otherwise.
-
getExtraClassMappings
-
buildInstance
This method is used to instantiate a given class.- Parameters:
className
- The name of the class you wish to instantiate.- Returns:
- An instantiated Object.
- Throws:
ReflectiveOperationException
- If the class cannot be found or instantiated.- Since:
- 2.11.1
-
buildInstance
public static <T> T buildInstance(String packageName, String className) throws ReflectiveOperationException This method is used to instantiate a given class.* It will first attempt to instantiate the class directly from the className, and will then try to prefix it with the packageName.
- Parameters:
packageName
- A package name (such as "org.apache.wiki.plugins").className
- The class name to find.- Returns:
- An instantiated Object.
- Throws:
ReflectiveOperationException
- If the class cannot be found or instantiated.- Since:
- 2.11.1
-
buildInstance
This method is used to instantiate a given class.- Parameters:
from
- The name of the class you wish to instantiate.- Returns:
- An instantiated Object.
- Throws:
ReflectiveOperationException
- If the class cannot be found or instantiated.- Since:
- 2.11.1
-
buildInstance
public static <T> T buildInstance(Class<T> from, Object... initArgs) throws ReflectiveOperationException This method is used to instantiate a given class.This method takes in an object array for the constructor arguments for classes which have more than two constructors.
- Parameters:
from
- The name of the class you wish to instantiate.initArgs
- The parameters to be passed to the constructor. May benull
.- Returns:
- An instantiated Object.
- Throws:
ReflectiveOperationException
- If the class cannot be found or instantiated.- Since:
- 2.11.1
-