org.qedeq.base.io
Class ResourceLoaderUtility

java.lang.Object
  extended by org.qedeq.base.io.ResourceLoaderUtility

public final class ResourceLoaderUtility
extends java.lang.Object

Utility methods for accessing classes and resources using an appropriate class loader. Adapted from org.apache.myfaces.trinidad.util.ClassLoaderUtils.

Author:
Michael Meyling

Method Summary
static java.lang.ClassLoader getContextClassLoader()
          Dynamically accesses the current context class loader.
static java.io.InputStream getResourceAsStream(java.lang.String name)
          Locates the stream resource with the specified name.
static java.io.InputStream getResourceAsStream(java.lang.String name, java.lang.ClassLoader callerClassLoader)
          Locates the resource stream with the specified name.
static java.io.File getResourceFile(java.io.File startDirectory, java.lang.String resourceDirectoryName, java.lang.String resourceName)
          Get resource file.
static java.net.URL getResourceUrl(java.lang.String name)
          Locates the resource with the specified name.
static java.net.URL getResourceUrl(java.lang.String name, java.lang.ClassLoader callerClassLoader)
          Locates the resource with the specified name.
static java.lang.Class loadClass(java.lang.String name)
          Loads the class with the specified name.
static java.lang.Class loadClass(java.lang.String name, java.lang.ClassLoader callerClassLoader)
          Loads the class with the specified name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

loadClass

public static java.lang.Class loadClass(java.lang.String name)
                                 throws java.lang.ClassNotFoundException
Loads the class with the specified name. For Java 2 callers, the current thread's context class loader is preferred, falling back on the system class loader of the caller when the current thread's context is not set, or the caller is pre Java 2.

Parameters:
name - Name of class to load.
Returns:
The resulting Class object
Throws:
java.lang.ClassNotFoundException - Class was not found.

getResourceUrl

public static java.net.URL getResourceUrl(java.lang.String name)
Locates the resource with the specified name. For Java 2 callers, the current thread's context class loader is preferred, falling back on the system class loader of the caller when the current thread's context is not set, or the caller is pre Java 2.

Parameters:
name - Resource name.
Returns:
Resulting URL object. Maybe null.

getResourceAsStream

public static java.io.InputStream getResourceAsStream(java.lang.String name)
Locates the stream resource with the specified name. For Java 2 callers, the current thread's context class loader is preferred, falling back on the system class loader of the caller when the current thread's context is not set, or the caller is pre Java 2.

Parameters:
name - the name of the resource
Returns:
the resulting InputStream object

loadClass

public static java.lang.Class loadClass(java.lang.String name,
                                        java.lang.ClassLoader callerClassLoader)
                                 throws java.lang.ClassNotFoundException
Loads the class with the specified name. For Java 2 callers, the current thread's context class loader is preferred, falling back on the class loader of the caller when the current thread's context is not set, or the caller is pre Java 2. If the callerClassLoader is null, then fall back on the system class loader.

Parameters:
name - the name of the class
callerClassLoader - the calling class loader context
Returns:
the resulting Class object
Throws:
java.lang.ClassNotFoundException - if the class was not found

getResourceUrl

public static java.net.URL getResourceUrl(java.lang.String name,
                                          java.lang.ClassLoader callerClassLoader)
Locates the resource with the specified name. For Java 2 callers, the current thread's context class loader is preferred, falling back on the class loader of the caller when the current thread's context is not set, or the caller is pre Java 2. If the callerClassLoader is null, then fall back on the system class loader.

Parameters:
name - the name of the resource
callerClassLoader - the calling class loader context
Returns:
the resulting URL object

getResourceAsStream

public static java.io.InputStream getResourceAsStream(java.lang.String name,
                                                      java.lang.ClassLoader callerClassLoader)
Locates the resource stream with the specified name. For Java 2 callers, the current thread's context class loader is preferred, falling back on the class loader of the caller when the current thread's context is not set, or the caller is pre Java 2. If the callerClassLoader is null, then fall back on the system class loader.

Parameters:
name - the name of the resource
callerClassLoader - the calling class loader context
Returns:
the resulting InputStream object

getContextClassLoader

public static java.lang.ClassLoader getContextClassLoader()
Dynamically accesses the current context class loader. Returns null if there is no per-thread context class loader. Also if the JRE is below 1.2 or something else went wrong the method returns null.

Returns:
ClassLoader.

getResourceFile

public static java.io.File getResourceFile(java.io.File startDirectory,
                                           java.lang.String resourceDirectoryName,
                                           java.lang.String resourceName)
Get resource file. The resource is located within the file system if it exists already. If not it is loaded as resource and then saved as a file.

Parameters:
startDirectory - Start looking from this directory.
resourceDirectoryName - Within this directory (relative to startDirectory).
resourceName - Look for this resource file.
Returns:
Resource file.


Copyright © 2014. All Rights Reserved.