ozone API

org.ozoneDB
Interface OzoneInterface

All Known Implementing Classes:
org.ozoneDB.AbstractDatabase

public interface OzoneInterface

Together with ExternalTransaction and OzoneCompatible this interface represents the basic API of the ozone database system.

Version:
$Revision: 1.12 $Date: 2003/04/06 13:57:32 $
Author:
SMB, Medium.net

Field Summary
static int AllLock
          Object access right.
static int AllRead
          Object access right.
static int GroupLock
          Object access right.
static int GroupRead
          Object access right.
static int Private
          Object access right.
static int Public
          Object access right.
 
Method Summary
 OzoneProxy copyObject(OzoneRemote rObj)
          Copy an object.
 OzoneProxy createObject(java.lang.Class type)
          Creates a database object of the specified class without a name and with default permissions.
 OzoneProxy createObject(java.lang.Class type, java.lang.Class[] sig, java.lang.Object[] args)
          Creates an object by calling the constructor with the specified signature with the specified parameters and default permissions.
 OzoneProxy createObject(java.lang.Class type, int access)
          Creates a database object of the specified class without a name and with the specified access rights.
 OzoneProxy createObject(java.lang.Class type, int access, java.lang.String objName)
          Creates a database object of the specified class with the specified name and the specified access rights.
 OzoneProxy createObject(java.lang.Class type, int access, java.lang.String objName, java.lang.Class[] sig, java.lang.Object[] args)
          Creates an object by calling the constructor with the specified signature with the specified parameters.
 OzoneProxy createObject(java.lang.String className)
          Creates a database object of the specified class without a name and with default permissions.
 OzoneProxy createObject(java.lang.String className, int access)
          Creates a database object of the specified class without a name and with the specified access rights.
 OzoneProxy createObject(java.lang.String className, int access, java.lang.String objName)
          Creates a database object of the specified class with the specified name and the specified access rights.
 OzoneProxy createObject(java.lang.String className, int access, java.lang.String objName, java.lang.String sig, java.lang.Object[] args)
          Creates an object by calling the constructor with the specified signature with the specified parameters.
 OzoneProxy createObject(java.lang.String className, java.lang.String sig, java.lang.Object[] args)
          Creates an object by calling the constructor with the specified signature with the specified parameters and default permissions.
 void deleteObject(OzoneRemote rObj)
          Deletes the specified database object.
 OzoneCompatible fetch(OzoneProxy rObj, int lockLevel)
          Returns the actual target of the given proxy if the actual implementation is able to do so.
 java.lang.Object invoke(OzoneProxy rObj, int methodIndex, java.lang.Object[] args, int lockLevel)
           
 java.lang.Object invoke(OzoneProxy rObj, java.lang.String methodName, java.lang.String sig, java.lang.Object[] args, int lockLevel)
          Invokes a method on the specified object.
 void nameObject(OzoneRemote rObj, java.lang.String name)
          Assigns the specified object with the specified name.
 void notifyProxyDeath(OzoneProxy proxy)
          Internal method.
 OzoneProxy objectForHandle(java.lang.String handle)
          Returns the object for the specified handle or null if there is no such object.
 OzoneProxy objectForName(java.lang.String name)
          Returns the object for the specifies name or null if there is no such object.
 java.lang.String[] objectNames()
          fetch an array of all named objects
 void reloadClasses()
          Force the database server to reload all classes which extend OzoneObject.
 void xmlForObject(OzoneRemote rObj, org.xml.sax.ContentHandler ch)
          Converts the specified object into XML.
 org.w3c.dom.Node xmlForObject(OzoneRemote rObj, org.w3c.dom.Document domFactory)
          Convert the specified object into XML.
 

Field Detail

Private

public static final int Private
Object access right.

See Also:
Constant Field Values

AllRead

public static final int AllRead
Object access right.

See Also:
Constant Field Values

AllLock

public static final int AllLock
Object access right.

See Also:
Constant Field Values

GroupRead

public static final int GroupRead
Object access right.

See Also:
Constant Field Values

GroupLock

public static final int GroupLock
Object access right.

See Also:
Constant Field Values

Public

public static final int Public
Object access right. Combines AllRead and AllLock.

See Also:
Constant Field Values
Method Detail

createObject

public OzoneProxy createObject(java.lang.String className)
                        throws java.lang.RuntimeException,
                               OzoneRemoteException
Creates a database object of the specified class without a name and with default permissions.

Parameters:
className - The fully qualified name of the class.
Returns:
A proxy object for the newly created object.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.RuntimeException - To signal an implementation specific problem, such as IOException

createObject

public OzoneProxy createObject(java.lang.String className,
                               int access)
                        throws java.lang.RuntimeException,
                               OzoneRemoteException
Creates a database object of the specified class without a name and with the specified access rights.

Parameters:
className - The fully qualified name of the class.
access - The access rights (ORed).
Returns:
proxy A proxy object for the newly created database object.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.RuntimeException - To signal an implementation specific problem, such as IOException

createObject

public OzoneProxy createObject(java.lang.String className,
                               int access,
                               java.lang.String objName)
                        throws java.lang.RuntimeException,
                               OzoneRemoteException
Creates a database object of the specified class with the specified name and the specified access rights.

Parameters:
className - The fully qualified name of the class.
access - The access right. (ORed)
objName - The name of the object. (optional)
Returns:
A proxy object for the newly created object.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.RuntimeException - To signal an implementation specific problem, such as IOException

createObject

public OzoneProxy createObject(java.lang.String className,
                               int access,
                               java.lang.String objName,
                               java.lang.String sig,
                               java.lang.Object[] args)
                        throws java.lang.RuntimeException,
                               OzoneRemoteException
Creates an object by calling the constructor with the specified signature with the specified parameters. Generated proxy objects use this method.

Parameters:
className - fully qualified name of the class
access - access right (ORed)
objName - name of the object (optional
sig - The signature string of the constructor.
args - The parameter that are passed to the constructor.
Returns:
proxy A OzoneProxy object for the newly created object.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.RuntimeException - To signal an implementation specific problem, such as IOException

createObject

public OzoneProxy createObject(java.lang.String className,
                               java.lang.String sig,
                               java.lang.Object[] args)
                        throws java.lang.RuntimeException,
                               OzoneRemoteException
Creates an object by calling the constructor with the specified signature with the specified parameters and default permissions.

Parameters:
className - fully qualified name of the class
sig - The signature string of the constructor.
args - The parameter that are passed to the constructor.
Returns:
proxy A OzoneProxy object for the newly created object.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.RuntimeException - To signal an implementation specific problem, such as IOException

createObject

public OzoneProxy createObject(java.lang.Class type)
                        throws java.lang.RuntimeException,
                               OzoneRemoteException
Creates a database object of the specified class without a name and with default permissions.

Parameters:
type - the type of the object to be created
Returns:
A proxy object for the newly created object.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.RuntimeException - To signal an implementation specific problem, such as IOException

createObject

public OzoneProxy createObject(java.lang.Class type,
                               int access)
                        throws java.lang.RuntimeException,
                               OzoneRemoteException
Creates a database object of the specified class without a name and with the specified access rights.

Parameters:
type - the type of the object to be created
access - The access rights (ORed).
Returns:
proxy A proxy object for the newly created database object.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.RuntimeException - To signal an implementation specific problem, such as IOException

createObject

public OzoneProxy createObject(java.lang.Class type,
                               int access,
                               java.lang.String objName)
                        throws java.lang.RuntimeException,
                               OzoneRemoteException
Creates a database object of the specified class with the specified name and the specified access rights.

Parameters:
type - the type of the object to be created
access - The access right. (ORed)
objName - The name of the object. (optional)
Returns:
A proxy object for the newly created object.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.RuntimeException - To signal an implementation specific problem, such as IOException

createObject

public OzoneProxy createObject(java.lang.Class type,
                               int access,
                               java.lang.String objName,
                               java.lang.Class[] sig,
                               java.lang.Object[] args)
                        throws java.lang.RuntimeException,
                               OzoneRemoteException
Creates an object by calling the constructor with the specified signature with the specified parameters. Generated proxy objects use this method.

Parameters:
type - the type of the object to be created
access - access right (ORed)
objName - name of the object (optional
sig - An array of signature params for the constructor in question.
args - The parameter that are passed to the constructor.
Returns:
proxy A OzoneProxy object for the newly created object.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.RuntimeException - To signal an implementation specific problem, such as IOException

createObject

public OzoneProxy createObject(java.lang.Class type,
                               java.lang.Class[] sig,
                               java.lang.Object[] args)
                        throws java.lang.RuntimeException,
                               OzoneRemoteException
Creates an object by calling the constructor with the specified signature with the specified parameters and default permissions.

Parameters:
type - the type of the object to be created
sig - An array of signature params for the constructor in question.
args - The parameter that are passed to the constructor.
Returns:
proxy A OzoneProxy object for the newly created object.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.RuntimeException - To signal an implementation specific problem, such as IOException

copyObject

public OzoneProxy copyObject(OzoneRemote rObj)
                      throws java.lang.Exception
Copy an object. The new objects gets its own object ID. The specified object is an instance of OzoneProxy which you may have created by createObject().

Parameters:
rObj -
Returns:
proxy for the newly created object
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.Exception - To signal an implementation specific problem, such as IOException

deleteObject

public void deleteObject(OzoneRemote rObj)
                  throws java.lang.RuntimeException,
                         OzoneRemoteException
Deletes the specified database object. The specified object is an instance of OzoneProxy which you may have created by createObject().

Parameters:
rObj -
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.RuntimeException - To signal an implementation specific problem, such as IOException

nameObject

public void nameObject(OzoneRemote rObj,
                       java.lang.String name)
                throws java.lang.Exception
Assigns the specified object with the specified name. This can also be done at object creation time. The specified object is an instance of OzoneProxy which you may have created by createObject().

Parameters:
rObj -
name -
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.Exception - To signal an implementation specific problem, such as IOException

objectForName

public OzoneProxy objectForName(java.lang.String name)
                         throws java.lang.Exception
Returns the object for the specifies name or null if there is no such object.

Parameters:
name - The name name of the object.
Returns:
A proxy object for the found object or null.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.Exception - To signal an implementation specific problem, such as IOException

objectNames

public java.lang.String[] objectNames()
                               throws java.lang.Exception
fetch an array of all named objects

Returns:
a String array of all named objects
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.Exception - To signal an implementation specific problem, such as IOException

objectForHandle

public OzoneProxy objectForHandle(java.lang.String handle)
                           throws java.lang.Exception
Returns the object for the specified handle or null if there is no such object.

Parameters:
handle - The handle of the object.
Returns:
A proxy object for the found object or null.
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.Exception - To signal an implementation specific problem, such as IOException

invoke

public java.lang.Object invoke(OzoneProxy rObj,
                               java.lang.String methodName,
                               java.lang.String sig,
                               java.lang.Object[] args,
                               int lockLevel)
                        throws java.lang.Exception
Invokes a method on the specified object. This method is called by proxy objects to route the call to the corresponding database object. A client will never call this method explicitly.

Parameters:
rObj - OzoneProxy on which to call the method
methodName -
sig - signature of the method as String
args - array of arguments
lockLevel - specifies wether this method changes the state of the object
Returns:
regular object or proxy
Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.Exception - To signal an implementation specific problem, such as IOException

invoke

public java.lang.Object invoke(OzoneProxy rObj,
                               int methodIndex,
                               java.lang.Object[] args,
                               int lockLevel)
                        throws java.lang.Exception
Throws:
java.lang.Exception

fetch

public OzoneCompatible fetch(OzoneProxy rObj,
                             int lockLevel)
                      throws java.lang.Exception,
                             ObjectNotFoundException,
                             java.io.IOException,
                             java.lang.ClassNotFoundException,
                             TransactionException,
                             org.ozoneDB.core.TransactionError
Returns the actual target of the given proxy if the actual implementation is able to do so. A client will never call this method explicitly.

Throws:
java.lang.Exception
ObjectNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
TransactionException
org.ozoneDB.core.TransactionError

reloadClasses

public void reloadClasses()
                   throws java.lang.Exception
Force the database server to reload all classes which extend OzoneObject. This is particularly useful while testing new classes.

Throws:
OzoneRemoteException - (or one of its sub-classes) to signal a ozone related problem.
java.lang.Exception - To signal an implementation specific problem, such as IOException

xmlForObject

public org.w3c.dom.Node xmlForObject(OzoneRemote rObj,
                                     org.w3c.dom.Document domFactory)
                              throws java.lang.Exception
Convert the specified object into XML. This method returns the generated XML data as DOM tree. For performance reasons you should try to use xmlForObject(OzoneRemote, ContentHandler), which returns SAX events, instead of DOM. See the doc directory of ozone for a detailed description (XML Schema) of the XML output of this method.

Parameters:
rObj - The database object to be converted.
domFactory - The factory for creating DOM nodes.
Returns:
The DOM node representing the converted object.
Throws:
java.lang.Exception

xmlForObject

public void xmlForObject(OzoneRemote rObj,
                         org.xml.sax.ContentHandler ch)
                  throws java.lang.Exception
Converts the specified object into XML. This method returns the generated XML data as SAX events. See the doc directory of ozone for a detailed description (XML Schema) of the XML output of this method.

Parameters:
rObj - The database object to be converted.
ch - The SAX ContentHandler to which the result is sent.
Throws:
java.lang.Exception

notifyProxyDeath

public void notifyProxyDeath(OzoneProxy proxy)
Internal method. This method is called by OzoneProxys when they are dying (during finalize()). This is required, as the database may track the references the database client has to objects within the database in order to properly support garbage collection. If this method is called from anyone else than from the OzoneProxy.finalize()-Method, data loss may occur!

Parameters:
proxy - the OzoneProxy object which is dying. It may call this method exactly once.

ozone API

Copyright (C) The Ozone Database Project - www.ozone-db.org. All rights reserved.