Berkeley DB Java Edition
version 1.5.1

com.sleepycat.bind.serial
Class StoredClassCatalog

java.lang.Object
  |
  +--com.sleepycat.bind.serial.StoredClassCatalog
All Implemented Interfaces:
ClassCatalog

public class StoredClassCatalog
extends Object
implements ClassCatalog

A ClassCatalog that is stored in a Database.

A single StoredClassCatalog object is normally used along with a set of databases that stored serialized objects.

Author:
Mark Hayes

Constructor Summary
StoredClassCatalog(Database database)
          Creates a catalog based on a given database.
 
Method Summary
 void close()
          Close a catalog database and release any cached resources.
 ObjectStreamClass getClassFormat(byte[] classID)
          Return the ObjectStreamClass for the given class ID.
 ObjectStreamClass getClassFormat(String className)
          Return the ObjectStreamClass for the given class name.
 byte[] getClassID(String className)
          Return the class ID for the current version of the given class name.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StoredClassCatalog

public StoredClassCatalog(Database database)
                   throws DatabaseException,
                          IllegalArgumentException
Creates a catalog based on a given database. To save resources, only a single catalog object should be used for each unique catalog database.

Parameters:
database - an open database to use as the class catalog. It must be a BTREE database and must not allow duplicates.
Throws:
DatabaseException - if an error occurs accessing the database.
IllegalArgumentException - if the database is not a BTREE database or if it configured to allow duplicates.
Method Detail

close

public void close()
           throws DatabaseException
Description copied from interface: ClassCatalog
Close a catalog database and release any cached resources.

Specified by:
close in interface ClassCatalog
DatabaseException

getClassID

public byte[] getClassID(String className)
                  throws DatabaseException,
                         ClassNotFoundException
Description copied from interface: ClassCatalog
Return the class ID for the current version of the given class name. This is used for storing in serialization streams in place of a full class descriptor, since it is much more compact. To get back the ObjectStreamClass for a class ID, call ClassCatalog.getClassFormat(byte[]). This function causes a new class ID to be assigned if the class description has changed.

Specified by:
getClassID in interface ClassCatalog
Parameters:
className - The fully qualified class name for which to return the class ID.
Returns:
The class ID for the current version of the class.
DatabaseException
ClassNotFoundException

getClassFormat

public ObjectStreamClass getClassFormat(String className)
                                 throws DatabaseException,
                                        ClassNotFoundException
Description copied from interface: ClassCatalog
Return the ObjectStreamClass for the given class name. This is always the current class format. Calling this method is equivalent to calling java.io.ObjectStreamClass.lookup, but this method causes a new class ID to be assigned if the class description has changed.

Specified by:
getClassFormat in interface ClassCatalog
Parameters:
className - The fully qualified class name for which to return the class format.
Returns:
The class format for the current version of the class.
DatabaseException
ClassNotFoundException

getClassFormat

public ObjectStreamClass getClassFormat(byte[] classID)
                                 throws DatabaseException,
                                        ClassNotFoundException
Description copied from interface: ClassCatalog
Return the ObjectStreamClass for the given class ID. This may or may not be the current class format, depending on whether the class has changed since the class ID was generated.

Specified by:
getClassFormat in interface ClassCatalog
Parameters:
classID - The class ID for which to return the class format.
Returns:
The class format for the given class ID, which may or may not represent the current version of the class.
DatabaseException
ClassNotFoundException

Berkeley DB Java Edition
version 1.5.1

Copyright (c) 1996-2004 Sleepycat Software, Inc. - All rights reserved.