Class ClassUtil

java.lang.Object
org.apache.wiki.util.ClassUtil

public final class ClassUtil
extends Object
Contains useful utilities for class file manipulation. This is a static class, so there is no need to instantiate it.
Since:
2.1.29.
  • Field Details

    • MAPPINGS

      public static final String MAPPINGS
      The location of the classmappings.xml document. It will be searched for in the classpath. It's value is ""ini/classmappings.xml"".
      See Also:
      Constant Field Values
    • MAPPINGS_EXTRA

      public static final String MAPPINGS_EXTRA
      The location of the classmappings-extra.xml document. It will be searched for in the classpath. It's value is ""ini/classmappings-extra.xml"".
      See Also:
      Constant Field Values
  • Method Details

    • findClass

      public static Class<?> 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 Class<?> 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

      public static List<String> classpathEntriesUnder​(String rootPackage)
      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 name ClassUtil.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 be null.
      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

      public static Class<?> getMappedClass​(String requestedClass) throws ClassNotFoundException
      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

      public static boolean assignable​(String srcClassName, String parentClassName)
      checks if srcClassName is a subclass of parentClassname.
      Parameters:
      srcClassName - expected subclass.
      parentClassName - expected parent class.
      Returns:
      true if srcClassName is a subclass of parentClassname, false otherwise.
    • exists

      public static boolean exists​(String className)
      Checks if a given class exists in classpath.
      Parameters:
      className - the class to check for existence.
      Returns:
      true if it exists, false otherwise.
    • getExtraClassMappings

      public static Map<String,​String> getExtraClassMappings()