org.exist.xmldb
Class RemoteCollection

java.lang.Object
  extended byorg.exist.xmldb.RemoteCollection
All Implemented Interfaces:
Collection, CollectionImpl, Configurable

public class RemoteCollection
extends java.lang.Object
implements CollectionImpl

A remote implementation of the Collection interface. This implementation communicates with the server through the XMLRPC protocol.

Author:
wolf Updated Andy Foster - Updated code to allow child collection cache to resync with the remote collection.

Constructor Summary
RemoteCollection(org.apache.xmlrpc.XmlRpcClient client, RemoteCollection parent, XmldbURI path)
           
RemoteCollection(org.apache.xmlrpc.XmlRpcClient client, XmldbURI path)
           
 
Method Summary
 void close()
          Releases all resources consumed by the Collection.
 java.lang.String createId()
          Creates a new unique ID within the context of the Collection
 Resource createResource(java.lang.String id, java.lang.String type)
          Creates a new empty Resource with the provided id.
 Collection getChildCollection(java.lang.String name)
          Returns a Collection instance for the requested child collection if it exists.
 Collection getChildCollection(XmldbURI name)
           
 int getChildCollectionCount()
          Returns the number of child collections under this Collection or 0 if no child collections exist.
 java.lang.String[] getChildCollections()
           
 java.util.Date getCreationTime()
          Returns the time of creation of the collection.
 java.lang.String getName()
          Returns the name associated with the Collection instance.
 Collection getParentCollection()
          Returns the parent collection for this collection or null if no parent collection exists.
 java.lang.String getPath()
           
 XmldbURI getPathURI()
           
 Permission getPermissions()
           
 java.util.Properties getProperties()
           
 java.lang.String getProperty(java.lang.String property)
          Returns the value of the property identified by name.
 Resource getResource(java.lang.String name)
          Retrieves a Resource from the database.
 int getResourceCount()
          Returns the number of resources currently stored in this collection or 0 if the collection is empty.
 java.lang.String[] getResources()
           
 Service getService(java.lang.String name, java.lang.String version)
          Returns a Service instance for the requested service name and version.
 Service[] getServices()
          Provides a list of all services known to the collection.
 XmldbURI getURI()
           
 boolean isOpen()
          Returns true if the Collection is open false otherwise.
 boolean isRemoteCollection()
           
 java.lang.String[] listChildCollections()
          Returns a list of collection names naming all child collections of the current collection.
 java.lang.String[] listResources()
          Returns a list of the ids for all resources stored in the collection.
 void registerService(Service serv)
           
 void removeChildCollection(java.lang.String name)
           
 void removeChildCollection(XmldbURI name)
           
 void removeResource(Resource res)
          Removes the Resource from the database.
 void setProperty(java.lang.String property, java.lang.String value)
          Sets the property name to have the value provided in value.
 void storeResource(Resource res)
          Stores the provided resource into the database.
 void storeResource(Resource res, java.util.Date a, java.util.Date b)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RemoteCollection

public RemoteCollection(org.apache.xmlrpc.XmlRpcClient client,
                        XmldbURI path)
                 throws XMLDBException

RemoteCollection

public RemoteCollection(org.apache.xmlrpc.XmlRpcClient client,
                        RemoteCollection parent,
                        XmldbURI path)
                 throws XMLDBException
Method Detail

close

public void close()
           throws XMLDBException
Description copied from interface: Collection
Releases all resources consumed by the Collection. The close method must always be called when use of a Collection is complete. It is not safe to use a Collection after the close method has been called.

Specified by:
close in interface Collection
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.

createId

public java.lang.String createId()
                          throws XMLDBException
Description copied from interface: Collection
Creates a new unique ID within the context of the Collection

Specified by:
createId in interface Collection
Returns:
the created id as a string.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

createResource

public Resource createResource(java.lang.String id,
                               java.lang.String type)
                        throws XMLDBException
Description copied from interface: Collection
Creates a new empty Resource with the provided id. The type of Resource returned is determined by the type parameter. The XML:DB API currently defines "XMLResource" and "BinaryResource" as valid resource types. The id provided must be unique within the scope of the collection. If id is null or its value is empty then an id is generated by calling createId(). The Resource created is not stored to the database until storeResource() is called.

Specified by:
createResource in interface Collection
Parameters:
id - the unique id to associate with the created Resource.
type - the Resource type to create.
Returns:
an empty Resource instance.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.UNKNOWN_RESOURCE_TYPE if the type parameter is not a known Resource type. ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

getChildCollection

public Collection getChildCollection(java.lang.String name)
                              throws XMLDBException
Description copied from interface: Collection
Returns a Collection instance for the requested child collection if it exists.

Specified by:
getChildCollection in interface Collection
Parameters:
name - the name of the child collection to retrieve.
Returns:
the requested child collection or null if it couldn't be found.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

getChildCollection

public Collection getChildCollection(XmldbURI name)
                              throws XMLDBException
Throws:
XMLDBException

getChildCollectionCount

public int getChildCollectionCount()
                            throws XMLDBException
Description copied from interface: Collection
Returns the number of child collections under this Collection or 0 if no child collections exist.

Specified by:
getChildCollectionCount in interface Collection
Returns:
the number of child collections.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

getName

public java.lang.String getName()
                         throws XMLDBException
Description copied from interface: Collection
Returns the name associated with the Collection instance.

Specified by:
getName in interface Collection
Returns:
the name of the object.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.

getParentCollection

public Collection getParentCollection()
                               throws XMLDBException
Description copied from interface: Collection
Returns the parent collection for this collection or null if no parent collection exists.

Specified by:
getParentCollection in interface Collection
Returns:
the parent Collection instance.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

getPath

public java.lang.String getPath()
                         throws XMLDBException
Throws:
XMLDBException

getPathURI

public XmldbURI getPathURI()
Specified by:
getPathURI in interface CollectionImpl

getProperty

public java.lang.String getProperty(java.lang.String property)
                             throws XMLDBException
Description copied from interface: Configurable
Returns the value of the property identified by name.

Specified by:
getProperty in interface Configurable
Parameters:
property - the name of the property to retrieve.
Returns:
the property value or null if no property exists.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.

getProperties

public java.util.Properties getProperties()

getResourceCount

public int getResourceCount()
                     throws XMLDBException
Description copied from interface: Collection
Returns the number of resources currently stored in this collection or 0 if the collection is empty.

Specified by:
getResourceCount in interface Collection
Returns:
the number of resource in the collection.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

getService

public Service getService(java.lang.String name,
                          java.lang.String version)
                   throws XMLDBException
Description copied from interface: Collection
Returns a Service instance for the requested service name and version. If no Service exists for those parameters a null value is returned.

Specified by:
getService in interface Collection
Parameters:
name - Description of Parameter
version - Description of Parameter
Returns:
the Service instance or null if no Service could be found.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

getServices

public Service[] getServices()
                      throws XMLDBException
Description copied from interface: Collection
Provides a list of all services known to the collection. If no services are known an empty list is returned.

Specified by:
getServices in interface Collection
Returns:
An array of registered Service implementations.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

isOpen

public boolean isOpen()
               throws XMLDBException
Description copied from interface: Collection
Returns true if the Collection is open false otherwise. Calling the close method on Collection will result in isOpen returning false. It is not safe to use Collection instances that have been closed.

Specified by:
isOpen in interface Collection
Returns:
true if the Collection is open, false otherwise.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.

listChildCollections

public java.lang.String[] listChildCollections()
                                        throws XMLDBException
Returns a list of collection names naming all child collections of the current collection. Only the name of the collection is returned - not the entire path to the collection.

Specified by:
listChildCollections in interface Collection
Returns:
Description of the Return Value
Throws:
XMLDBException - Description of the Exception

getChildCollections

public java.lang.String[] getChildCollections()
                                       throws XMLDBException
Specified by:
getChildCollections in interface CollectionImpl
Throws:
XMLDBException

listResources

public java.lang.String[] listResources()
                                 throws XMLDBException
Description copied from interface: Collection
Returns a list of the ids for all resources stored in the collection.

Specified by:
listResources in interface Collection
Returns:
a string array containing the names for all Resources in the collection.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

getResources

public java.lang.String[] getResources()
                                throws XMLDBException
Specified by:
getResources in interface CollectionImpl
Throws:
XMLDBException

getResource

public Resource getResource(java.lang.String name)
                     throws XMLDBException
Description copied from interface: Collection
Retrieves a Resource from the database. If the Resource could not be located a null value will be returned.

Specified by:
getResource in interface Collection
Parameters:
name - the unique id for the requested resource.
Returns:
The retrieved Resource instance.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

registerService

public void registerService(Service serv)
                     throws XMLDBException
Throws:
XMLDBException

removeChildCollection

public void removeChildCollection(java.lang.String name)
                           throws XMLDBException
Throws:
XMLDBException

removeChildCollection

public void removeChildCollection(XmldbURI name)
                           throws XMLDBException
Throws:
XMLDBException

removeResource

public void removeResource(Resource res)
                    throws XMLDBException
Description copied from interface: Collection
Removes the Resource from the database.

Specified by:
removeResource in interface Collection
Parameters:
res - the resource to remove.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.INVALID_RESOURCE if the Resource is not valid.
ErrorCodes.NO_SUCH_RESOURCE if the Resource is not known to this Collection. ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

getCreationTime

public java.util.Date getCreationTime()
                               throws XMLDBException
Description copied from interface: CollectionImpl
Returns the time of creation of the collection.

Specified by:
getCreationTime in interface CollectionImpl
Throws:
XMLDBException

setProperty

public void setProperty(java.lang.String property,
                        java.lang.String value)
                 throws XMLDBException
Description copied from interface: Configurable
Sets the property name to have the value provided in value.

Specified by:
setProperty in interface Configurable
Parameters:
property - the name of the property to set.
value - the value to set for the property.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.

storeResource

public void storeResource(Resource res)
                   throws XMLDBException
Description copied from interface: Collection
Stores the provided resource into the database. If the resource does not already exist it will be created. If it does already exist it will be updated.

Specified by:
storeResource in interface Collection
Parameters:
res - the resource to store in the database.
Throws:
XMLDBException - with expected error codes.
ErrorCodes.VENDOR_ERROR for any vendor specific errors that occur.
ErrorCodes.INVALID_RESOURCE if the Resource is not valid. ErrorCodes.COLLECTION_CLOSED if the close method has been called on the Collection

storeResource

public void storeResource(Resource res,
                          java.util.Date a,
                          java.util.Date b)
                   throws XMLDBException
Specified by:
storeResource in interface CollectionImpl
Throws:
XMLDBException

getPermissions

public Permission getPermissions()

isRemoteCollection

public boolean isRemoteCollection()
                           throws XMLDBException
Specified by:
isRemoteCollection in interface CollectionImpl
Throws:
XMLDBException

getURI

public XmldbURI getURI()
Specified by:
getURI in interface CollectionImpl


Copyright (C) Wolfgang Meier. All rights reserved.