|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectgate.util.persistence.PersistenceManager
public class PersistenceManager
This class provides utility methods for saving resources through serialisation via static methods. It now supports both native and xml serialization.
| Nested Class Summary | |
|---|---|
private static class |
PersistenceManager.BooleanFlag
|
static class |
PersistenceManager.ClassComparator
|
static class |
PersistenceManager.NotComparableException
Thrown by a comparator when the values provided for comparison are not comparable. |
protected static class |
PersistenceManager.ObjectHolder
A reference to an object; it uses the identity hashcode and the equals defined by object identity. |
static class |
PersistenceManager.SlashDevSlashNull
This class is used as a marker for types that should NOT be serialised when saving the state of a gate object. |
static class |
PersistenceManager.URLHolder
URLs get upset when serialised and deserialised so we need to convert them to strings for storage. |
| Field Summary | |
|---|---|
private static PersistenceManager.ClassComparator |
classComparator
|
private static boolean |
DEBUG
|
private static ThreadLocal<LinkedList<Map>> |
existingPersistentReplacements
Stores the persistent replacements created during a transaction in order to avoid creating two different persistent copies for the same object. |
private static ThreadLocal<LinkedList<Map>> |
existingTransientValues
Stores the transient values obtained from persistent replacements during a transaction in order to avoid creating two different transient copies for the same persistent replacement. |
private static ThreadLocal<LinkedList<PersistenceManager.BooleanFlag>> |
haveWarnedAboutGateHome
|
(package private) static ThreadLocal<LinkedList<File>> |
persistenceFile
The file currently used to write the persisten representation. |
(package private) static ThreadLocal<LinkedList<URL>> |
persistenceURL
The URL currently used to read the persistent representation when reading from a URL. |
private static Map |
persistentReplacementTypes
A dictionary mapping from java type (Class) to the type (Class) that can be used to store persistent data for the input type. |
private static String[] |
STARTOFXMLAPPLICATIONFILES
|
private static ThreadLocal<LinkedList<Boolean>> |
useGateHome
|
private static ThreadLocal<LinkedList<Boolean>> |
warnAboutGateHome
|
| Constructor Summary | |
|---|---|
PersistenceManager()
|
|
| Method Summary | |
|---|---|
private static void |
clearCurrentTransients()
Clear the current list of transient replacements without popping them off the stack. |
private static PersistenceManager.BooleanFlag |
currentHaveWarnedAboutGateHome()
|
private static File |
currentPersistenceFile()
Get the file currently being saved by this thread. |
private static URL |
currentPersistenceURL()
Get the URL currently being loaded by this thread. |
private static Boolean |
currentUseGateHome()
|
private static Boolean |
currentWarnAboutGateHome()
|
private static void |
finishedLoading()
Clean up the thread-local state at the end of a loading run. |
private static void |
finishedPersisting()
Clean up the thread-local state for the current persistence run. |
protected static Class |
getMostSpecificPersistentType(Class type)
Finds the most specific persistent replacement type for a given class. |
static Serializable |
getPersistentRepresentation(Object target)
Recursively traverses the provided object and replaces it and all its contents with the appropriate persistent equivalent classes. |
static String |
getRelativePath(URL context,
URL target)
Calculates the relative path for a file: URL starting from a given context which is also a file: URL. |
static Object |
getTransientRepresentation(Object target)
|
private static boolean |
isXmlApplicationFile(URL url)
Determine whether the URL contains a GATE application serialized using XML. |
static Object |
loadObjectFromFile(File file)
|
static Object |
loadObjectFromUrl(URL url)
|
static Class |
registerPersistentEquivalent(Class transientType,
Class persistentType)
Sets the persistent equivalent type to be used to (re)store a given type of transient objects. |
static Class |
registerPersitentEquivalent(Class transientType,
Class persistentType)
Deprecated. Use registerPersistentEquivalent(Class,Class) instead |
static void |
saveObjectToFile(Object obj,
File file)
|
static void |
saveObjectToFile(Object obj,
File file,
boolean usegatehome,
boolean warnaboutgatehome)
|
private static void |
startLoadingFrom(URL url)
Set up the thread-local state for the current loading run. |
private static void |
startPersistingTo(File file)
Set up the thread-local state for a new persistence run. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private static final boolean DEBUG
private static final String[] STARTOFXMLAPPLICATIONFILES
private static Map persistentReplacementTypes
private static ThreadLocal<LinkedList<Map>> existingPersistentReplacements
PersistenceManager.ObjectHolders that contain
the transient values being converted to persistent equivalents.
private static ThreadLocal<LinkedList<Map>> existingTransientValues
PersistenceManager.ObjectHolders that hold persistent equivalents. The
values are the transient values created by the persisten
equivalents.
private static PersistenceManager.ClassComparator classComparator
static ThreadLocal<LinkedList<File>> persistenceFile
static ThreadLocal<LinkedList<URL>> persistenceURL
private static ThreadLocal<LinkedList<Boolean>> useGateHome
private static ThreadLocal<LinkedList<Boolean>> warnAboutGateHome
private static ThreadLocal<LinkedList<PersistenceManager.BooleanFlag>> haveWarnedAboutGateHome
| Constructor Detail |
|---|
public PersistenceManager()
| Method Detail |
|---|
public static Serializable getPersistentRepresentation(Object target)
throws PersistenceException
target - the object to be analysed and translated into a
persistent equivalent.
PersistenceException
public static Object getTransientRepresentation(Object target)
throws PersistenceException,
ResourceInstantiationException
PersistenceException
ResourceInstantiationExceptionprotected static Class getMostSpecificPersistentType(Class type)
Resource and for LanguageResource than
such a request for a Document will yield the
registered type for LanguageResource.
public static String getRelativePath(URL context,
URL target)
context - the URL to be used as context.target - the URL for which the relative path is computed.
public static void saveObjectToFile(Object obj,
File file)
throws PersistenceException,
IOException
PersistenceException
IOException
public static void saveObjectToFile(Object obj,
File file,
boolean usegatehome,
boolean warnaboutgatehome)
throws PersistenceException,
IOException
PersistenceException
IOExceptionprivate static void startPersistingTo(File file)
private static File currentPersistenceFile()
private static Boolean currentWarnAboutGateHome()
private static Boolean currentUseGateHome()
private static PersistenceManager.BooleanFlag currentHaveWarnedAboutGateHome()
private static void finishedPersisting()
public static Object loadObjectFromFile(File file)
throws PersistenceException,
IOException,
ResourceInstantiationException
PersistenceException
IOException
ResourceInstantiationException
public static Object loadObjectFromUrl(URL url)
throws PersistenceException,
IOException,
ResourceInstantiationException
PersistenceException
IOException
ResourceInstantiationExceptionprivate static void startLoadingFrom(URL url)
private static void clearCurrentTransients()
private static URL currentPersistenceURL()
private static void finishedLoading()
private static boolean isXmlApplicationFile(URL url)
throws IOException
url - The URL to check.
IOException
public static Class registerPersitentEquivalent(Class transientType,
Class persistentType)
throws PersistenceException
registerPersistentEquivalent(Class,Class) instead
PersistenceException
public static Class registerPersistentEquivalent(Class transientType,
Class persistentType)
throws PersistenceException
transientType - the type that will be replaced during
serialisation operationspersistentType - the type used to replace objects of transient
type when serialising; this type needs to extend
Persistence.
PersistenceException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||