org.jibx.binding.classes
Class ClassCache

java.lang.Object
  extended by org.jibx.binding.classes.ClassCache

public class ClassCache
extends Object

Cache for class files being modified. Handles loading and saving of class files. Classes are loaded directly from the file system paths supplied on initialization in preference to the system class path.

Author:
Dennis M. Sosnoski

Nested Class Summary
static class ClassCache.ClassCacheLocator
          Locator using the cache.
 
Method Summary
static void addPreserveClass(String name)
          Add class name to set to be preserved without modification.
static ClassFile getClassFile(String name)
          Get class information.
static File getModifiablePath()
          Return the first modifiable directory path from the classpath in use.
static boolean hasClassFile(String name)
          Check if class information has been loaded.
static boolean isPreserveClass(String name)
          Check if a class is to be preserved without modification.
static ClassFile requireClassFile(String name)
          Get required class information.
static void setPaths(String[] paths)
          Set class paths to be searched.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

addPreserveClass

public static void addPreserveClass(String name)
Add class name to set to be preserved without modification. If the class information has already been loaded, this forces the modifiable setting to unmodifiable.

Parameters:
name - fully-qualified class name

isPreserveClass

public static boolean isPreserveClass(String name)
Check if a class is to be preserved without modification.

Parameters:
name - fully-qualified class name
Returns:
true if to be preserved, false if not

getClassFile

public static ClassFile getClassFile(String name)
                              throws JiBXException
Get class information. Looks up the class in cache, and if not already present tries to find it based on the class file search path list. If the class file is found it is loaded along with all superclasses.

Parameters:
name - fully-qualified name of class to be found
Returns:
class information, or null if class not found
Throws:
JiBXException - on any error accessing class file

requireClassFile

public static ClassFile requireClassFile(String name)
                                  throws JiBXException
Get required class information. Looks up the class in cache, and if not already present tries to find it based on the class file search path list. If the class is not found this throws a runtime exception.

Parameters:
name - fully-qualified name of class to be found
Returns:
class information, or null if class not found
Throws:
JiBXException - on any error accessing class file

hasClassFile

public static boolean hasClassFile(String name)
Check if class information has been loaded.

Parameters:
name - full-qualified name of class to be checked
Returns:
true if found

getModifiablePath

public static File getModifiablePath()
Return the first modifiable directory path from the classpath in use.

Returns:
modifiable directory, or null if none

setPaths

public static void setPaths(String[] paths)
Set class paths to be searched. Discards jar file paths and normalizes all other paths (except the empty path) to end with the system path separator character.

Parameters:
paths - ordered set of paths to be searched for class files


Copyright © 2005-2011 jibx.org. All Rights Reserved.