org.jfree.util

Class ObjectUtilities


public final class ObjectUtilities
extends java.lang.Object

A collection of useful static utility methods for handling classes and object instantiation.
Author:
Thomas Morgner

Field Summary

static String
CLASS_CONTEXT
A constant for using the ClassContext as source for the classloader.
static String
THREAD_CONTEXT
A constant for using the TheadContext as source for the classloader.

Method Summary

static Object
clone(Object object)
Returns a clone of the specified object, if it can be cloned, otherwise throws a CloneNotSupportedException.
static Collection
deepClone(Collection collection)
Returns a new collection containing clones of all the items in the specified collection.
static boolean
equal(Object o1, Object o2)
Returns true if the two objects are equal OR both null.
static ClassLoader
getClassLoader()
Returns the custom classloader or null, if no custom classloader is defined.
static ClassLoader
getClassLoader(Class c)
Returns the classloader, which was responsible for loading the given class.
static String
getClassLoaderSource()
Returns the internal configuration entry, whether the classloader of the thread context or the context classloader should be used.
static URL
getResource(String name, Class c)
Returns the resource specified by the absolute name.
static InputStream
getResourceAsStream(String name, Class context)
Returns the inputstream for the resource specified by the absolute name.
static URL
getResourceRelative(String name, Class c)
Returns the resource specified by the relative name.
static InputStream
getResourceRelativeAsStream(String name, Class context)
Returns the inputstream for the resource specified by the relative name.
static int
hashCode(Object object)
Returns a hash code for an object, or zero if the object is null.
static boolean
isJDK14()
static Object
loadAndInstantiate(String className, Class source)
Tries to create a new instance of the given class.
static void
setClassLoader(ClassLoader classLoader)
Redefines the custom classloader.
static void
setClassLoaderSource(String classLoaderSource)
Defines the internal configuration entry, whether the classloader of the thread context or the context classloader should be used.

Field Details

CLASS_CONTEXT

public static final String CLASS_CONTEXT
A constant for using the ClassContext as source for the classloader.

THREAD_CONTEXT

public static final String THREAD_CONTEXT
A constant for using the TheadContext as source for the classloader.

Method Details

clone

public static Object clone(Object object)
            throws CloneNotSupportedException
Returns a clone of the specified object, if it can be cloned, otherwise throws a CloneNotSupportedException.
Parameters:
object - the object to clone (null not permitted).
Returns:
A clone of the specified object.

deepClone

public static Collection deepClone(Collection collection)
            throws CloneNotSupportedException
Returns a new collection containing clones of all the items in the specified collection.
Parameters:
collection - the collection (null not permitted).
Returns:
A new collection containing clones of all the items in the specified collection.

equal

public static boolean equal(Object o1,
                            Object o2)
Returns true if the two objects are equal OR both null.
Parameters:
o1 - object 1 (null permitted).
o2 - object 2 (null permitted).
Returns:
true or false.

getClassLoader

public static ClassLoader getClassLoader()
Returns the custom classloader or null, if no custom classloader is defined.
Returns:
the custom classloader or null to use the default.

getClassLoader

public static ClassLoader getClassLoader(Class c)
Returns the classloader, which was responsible for loading the given class.
Parameters:
c - the classloader, either an application class loader or the boot loader.
Returns:
the classloader, never null.

getClassLoaderSource

public static String getClassLoaderSource()
Returns the internal configuration entry, whether the classloader of the thread context or the context classloader should be used.
Returns:
the classloader source, either THREAD_CONTEXT or CLASS_CONTEXT.

getResource

public static URL getResource(String name,
                              Class c)
Returns the resource specified by the absolute name.
Parameters:
name - the name of the resource
c - the source class
Returns:
the url of the resource or null, if not found.

getResourceAsStream

public static InputStream getResourceAsStream(String name,
                                              Class context)
Returns the inputstream for the resource specified by the absolute name.
Parameters:
name - the name of the resource
context - the source class
Returns:
the url of the resource or null, if not found.

getResourceRelative

public static URL getResourceRelative(String name,
                                      Class c)
Returns the resource specified by the relative name.
Parameters:
name - the name of the resource relative to the given class
c - the source class
Returns:
the url of the resource or null, if not found.

getResourceRelativeAsStream

public static InputStream getResourceRelativeAsStream(String name,
                                                      Class context)
Returns the inputstream for the resource specified by the relative name.
Parameters:
name - the name of the resource relative to the given class
context - the source class
Returns:
the url of the resource or null, if not found.

hashCode

public static int hashCode(Object object)
Returns a hash code for an object, or zero if the object is null.
Parameters:
object - the object (null permitted).
Returns:
The object's hash code (or zero if the object is null).

isJDK14

public static boolean isJDK14()

loadAndInstantiate

public static Object loadAndInstantiate(String className,
                                        Class source)
Tries to create a new instance of the given class. This is a short cut for the common bean instantiation code.
Parameters:
className - the class name as String, never null.
source - the source class, from where to get the classloader.
Returns:
the instantiated object or null, if an error occured.

setClassLoader

public static void setClassLoader(ClassLoader classLoader)
Redefines the custom classloader.
Parameters:
classLoader - the new classloader or null to use the default.

setClassLoaderSource

public static void setClassLoaderSource(String classLoaderSource)
Defines the internal configuration entry, whether the classloader of the thread context or the context classloader should be used.

This setting can only be defined using the API, there is no safe way to put this into an external configuration file.

Parameters:
classLoaderSource - the classloader source, either THREAD_CONTEXT or CLASS_CONTEXT.