org.apache.derby.iapi.store.access
Interface FileResource

All Known Implementing Classes:
RFResource

public interface FileResource

Management of file resources within a database. Suitable for jar files, images etc.

A file resource is identified by the pair (name,generationId). Name is an arbitrary String supplied by the caller. GenerationId is a non-repeating sequence number constructed by the database. Within a database a (name,generationId) pair uniquely identifies a version of a file resource for all time. Newer generation numbers reflect newer versions of the file.

A database supports the concept of a designated current version of a fileResource. The management of the current version is transactional. The following rules apply

  1. Adding a FileResource makes the added version the current version
  2. Removing a FileResource removes the current version of the resource. After this operation the database holds no current version of the FileResoure.
  3. Replacing a FileResource removes the current version of the resource.

For the benefit of replication, a database optionally retains historic versions of stored files. These old versions are useful when processing old transactions in the stage.


Field Summary
static java.lang.String JAR_DIRECTORY_NAME
          The name of the jar directory
 
Method Summary
 long add(java.lang.String name, java.io.InputStream source)
          Add a file resource, copying from the input stream.
 StorageFile getAsFile(java.lang.String name, long generationId)
          Get the StorageFile for a file resource.
 char getSeparatorChar()
           
 void remove(java.lang.String name, long currentGenerationId)
          Remove the current generation of a file resource from the database.
 long replace(java.lang.String name, long currentGenerationId, java.io.InputStream source)
          Replace a file resource with a new version.
 

Field Detail

JAR_DIRECTORY_NAME

static final java.lang.String JAR_DIRECTORY_NAME
The name of the jar directory

See Also:
Constant Field Values
Method Detail

add

long add(java.lang.String name,
         java.io.InputStream source)
         throws StandardException
Add a file resource, copying from the input stream. The InputStream will be closed by this method.

Parameters:
name - the name of the file resource.
source - an input stream for reading the content of the file resource.
Returns:
the generationId for the file resource. This quantity increases when you replace the file resource.
Throws:
StandardException - some error occured.

remove

void remove(java.lang.String name,
            long currentGenerationId)
            throws StandardException
Remove the current generation of a file resource from the database.

Parameters:
name - the name of the fileResource to remove.
Throws:
StandardException - some error occured.

replace

long replace(java.lang.String name,
             long currentGenerationId,
             java.io.InputStream source)
             throws StandardException
Replace a file resource with a new version.

The InputStream will be closed by this method.

Parameters:
name - the name of the file resource.
source - an input stream for reading the content of the file resource.
Returns:
the generationId for the new 'current' version of the file resource.
Throws:
StandardException - some error occured.

getAsFile

StorageFile getAsFile(java.lang.String name,
                      long generationId)
Get the StorageFile for a file resource.

Parameters:
name - The name of the fileResource
generationId - the generationId of the fileResource
Returns:
A StorageFile object representing the file.

getSeparatorChar

char getSeparatorChar()
Returns:
the separator character to be used in file names.

Built on Thu 2012-03-29 21:53:33+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.