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

    Fields
    Modifier and Type
    Field
    Description
    static final String
    The name of the jar directory
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    add(String name, InputStream source)
    Add a file resource, copying from the input stream.
    getAsFile(String name, long generationId)
    Get the StorageFile for a file resource.
    char
     
    void
    remove(String name, long currentGenerationId)
    Remove the current generation of a file resource from the database.
    void
    During hard upgrade to <= 10.9, remove a jar directory (at post-commit time) from the database.
    long
    replace(String name, long currentGenerationId, InputStream source)
    Replace a file resource with a new version.
  • Field Details

  • Method Details

    • add

      long add(String name, 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(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.
    • removeJarDir

      void removeJarDir(String f) throws StandardException
      During hard upgrade to <= 10.9, remove a jar directory (at post-commit time) from the database.
      Parameters:
      f -
      Throws:
      StandardException - if an error occurs
    • replace

      long replace(String name, long currentGenerationId, 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(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.