GATE
Version 3.1-2270

gate.util.persistence
Class PersistenceManager

java.lang.Object
  extended by gate.util.persistence.PersistenceManager

public class PersistenceManager
extends Object

This class provides utility methods for saving resources through serialisation via static methods. It now supports both native and xml serialization.


Nested Class Summary
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.
 
Constructor Summary
PersistenceManager()
           
 
Method Summary
protected static Class getMostSpecificPersistentType(Class type)
          Finds the most specific persistent replacement type for a given class.
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 loadObjectFromFile(File file)
           
static Object loadObjectFromUrl(URL url)
           
static Class registerPersitentEquivalent(Class transientType, Class persistentType)
          Sets the persistent equivalent type to be used to (re)store a given type of transient objects.
static void saveObjectToFile(Object obj, File file)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PersistenceManager

public PersistenceManager()
Method Detail

getMostSpecificPersistentType

protected static Class getMostSpecificPersistentType(Class type)
Finds the most specific persistent replacement type for a given class. Look for a type that has a registered persistent equivalent starting from the provided class continuing with its superclass and implemented interfaces and their superclasses and implemented interfaces and so on until a type is found. Classes are considered to be more specific than interfaces and in situations of ambiguity the most specific types are considered to be the ones that don't belong to either java or GATE followed by the ones that belong to GATE and followed by the ones that belong to java. E.g. if there are registered persitent types for Resource and for LanguageResource than such a request for a Document will yield the registered type for LanguageResource.


getRelativePath

public 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.

Parameters:
context - the URL to be used as context.
target - the URL for which the relative path is computed.
Returns:
a String value representing the relative path. Constructing a URL from the context URL and the relative path should result in the target URL.

saveObjectToFile

public static void saveObjectToFile(Object obj,
                                    File file)
                             throws PersistenceException,
                                    IOException
Throws:
PersistenceException
IOException

loadObjectFromFile

public static Object loadObjectFromFile(File file)
                                 throws PersistenceException,
                                        IOException,
                                        ResourceInstantiationException
Throws:
PersistenceException
IOException
ResourceInstantiationException

loadObjectFromUrl

public static Object loadObjectFromUrl(URL url)
                                throws PersistenceException,
                                       IOException,
                                       ResourceInstantiationException
Throws:
PersistenceException
IOException
ResourceInstantiationException

registerPersitentEquivalent

public static Class registerPersitentEquivalent(Class transientType,
                                                Class persistentType)
                                         throws PersistenceException
Sets the persistent equivalent type to be used to (re)store a given type of transient objects.

Parameters:
transientType - the type that will be replaced during serialisation operations
persistentType - the type used to replace objects of transient type when serialising; this type needs to extend Persistence.
Returns:
the persitent type that was used before this mapping if such existed.
Throws:
PersistenceException

GATE
Version 3.1-2270