Interface Store

All Superinterfaces:
Comparable<Store>
All Known Implementing Classes:
AbstractStore, FSStore, MockStore

public interface Store extends Comparable<Store>
The Store manages the repository where document files are maintained and all general resources are stored.
Author:
Michael Scholz, Marco Meschieri
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    delete(long docId)
    Deletes all resources of a document from the store.
    void
    delete(long docId, String resource)
    Deletes a specific resource of a document from the store.
    void
    Destroy method
    boolean
    exists(long docId, String resource)
    Checks if the passed resource exists in the document's container
    byte[]
    getBytes(long docId, String resource)
    Obtains the document's raw bytes for the specified resource
    byte[]
    getBytes(long docId, String resource, long start, long length)
    Obtains the document's raw bytes for the specified resource
    int
    The unique identifier
    Implementations should return the list of the required parameters.
    Returns the map of parameters
    getResourceName(long docId, String fileVersion, String suffix)
    Computes the resource name inside the container
    getResourceName(Document doc, String fileVersion, String suffix)
    Computes the resource name inside the container
    Retrieves the stores definitions grouped by type
    getStream(long docId, String resource)
    Obtains the document's content for the specified resource
    getString(long docId, String resource)
    Obtains the document's content as string for the specified resource
    long
    Computes the total size of the documents repository(in bytes)
    void
    Initialization method
    boolean
    Tests if the store is enabled
    listResources(long docId, String fileVersion)
    Lists all resources in the document's container
    int
    moveResourcesToStore(long docId, int targetStoreId)
    Moves all the resources of a document from it's original location to a different store
    newStore(int id)
    Instantiate a new store and fully configures it.
    void
    setId(int id)
    Sets the unique identifier
    long
    size(long docId, String resource)
    Computed the size of a specific resource.
    void
    store(File file, long docId, String resource)
    Stores a file
    void
    store(InputStream stream, long docId, String resource)
    This method has to store a resource in the document's container.
    boolean
    Tests if the store can read and write
    void
    writeToFile(long docId, String resource, File out)
    Writes the specified resource in a file
    void
    writeToStream(long docId, String resource, OutputStream output)
    Writes the specified resource in an output stream
    void
    writeToStream(long docId, String resource, OutputStream output, long start, long length)
    Writes the specified resource in an output stream

    Methods inherited from interface java.lang.Comparable

    compareTo
  • Method Details

    • getId

      int getId()
      The unique identifier
      Returns:
      the store identifier
    • setId

      void setId(int id)
      Sets the unique identifier
      Parameters:
      id - the store identifier
    • store

      void store(InputStream stream, long docId, String resource) throws IOException
      This method has to store a resource in the document's container. The location where (DBMS, Filesystem, other) the document should be stored is defined by the concrete implementation. It is possible to store a new document or a new version of an existing document.
      Parameters:
      stream - Document as InputStream
      docId - The document identifier
      resource - Name of the resource to be stored
      Throws:
      IOException - the content cannot be stored
    • store

      void store(File file, long docId, String resource) throws IOException
      Stores a file
      Parameters:
      file - the file to store
      docId - identifier of the document
      resource - name of the resource
      Throws:
      IOException - the content cannot be stored
      See Also:
    • delete

      void delete(long docId)
      Deletes all resources of a document from the store.
      Parameters:
      docId - The document identifier
    • delete

      void delete(long docId, String resource)
      Deletes a specific resource of a document from the store.
      Parameters:
      docId - The document identifier
      resource - Name of the resource to be deleted
    • getResourceName

      String getResourceName(Document doc, String fileVersion, String suffix)
      Computes the resource name inside the container
      Parameters:
      doc - The document representation
      fileVersion - The file version (use null for the latest version)
      suffix - The file suffix (use null if you want the exact document file)
      Returns:
      The document's resource name
    • getResourceName

      String getResourceName(long docId, String fileVersion, String suffix)
      Computes the resource name inside the container
      Parameters:
      docId - The document identifier
      fileVersion - The file version (use null for the latest version)
      suffix - The file suffix (use null if you want the exact document file)
      Returns:
      The document's resource name
    • listResources

      List<String> listResources(long docId, String fileVersion)
      Lists all resources in the document's container
      Parameters:
      docId - The document's identifier
      fileVersion - If specified, lists the resources for that specific file version only
      Returns:
      list of resource names
    • size

      long size(long docId, String resource)
      Computed the size of a specific resource.
      Parameters:
      docId - The document's identifier
      resource - The resource
      Returns:
      the size in bytes
    • exists

      boolean exists(long docId, String resource)
      Checks if the passed resource exists in the document's container
      Parameters:
      docId - ID of the document
      resource - Name of the resource
      Returns:
      true only if the resource already exists
    • writeToFile

      void writeToFile(long docId, String resource, File out) throws IOException
      Writes the specified resource in a file
      Parameters:
      docId - The document identifier
      resource - Name of the resource
      out - File that will receive the resource's content
      Throws:
      IOException - error writing the file or reading the resource
    • writeToStream

      void writeToStream(long docId, String resource, OutputStream output, long start, long length) throws IOException
      Writes the specified resource in an output stream
      Parameters:
      docId - The document's identifier
      resource - Name of the resource
      output - The output stream
      start - Index of the starting byte
      length - Total packet length
      Throws:
      IOException - error writing the stream or reading the resource
    • writeToStream

      void writeToStream(long docId, String resource, OutputStream output) throws IOException
      Writes the specified resource in an output stream
      Parameters:
      docId - The document's identifier
      resource - Name of the resource
      output - The output stream
      Throws:
      IOException - error writing the stream or reading the resource
    • getStream

      InputStream getStream(long docId, String resource) throws IOException
      Obtains the document's content for the specified resource
      Parameters:
      docId - The document's identifier
      resource - Name of the resource
      Returns:
      The document file's content
      Throws:
      IOException - cannot open the stream
    • getBytes

      byte[] getBytes(long docId, String resource) throws IOException
      Obtains the document's raw bytes for the specified resource
      Parameters:
      docId - The document's identifier
      resource - Name of the resource
      Returns:
      The document file's bytes
      Throws:
      IOException - cannot open the resource to get the bytes
    • getBytes

      byte[] getBytes(long docId, String resource, long start, long length) throws IOException
      Obtains the document's raw bytes for the specified resource
      Parameters:
      docId - The document's identifier
      resource - Name of the resource
      start - Index of the starting byte
      length - Total packet length
      Returns:
      The document file's bytes
      Throws:
      IOException - cannot open the resource to get the bytes
    • moveResourcesToStore

      int moveResourcesToStore(long docId, int targetStoreId) throws IOException
      Moves all the resources of a document from it's original location to a different store
      Parameters:
      docId - identifier of the document to process
      targetStoreId - identifier of the store that will receive the files
      Returns:
      number of moved resources
      Throws:
      IOException - In case of error during the process
    • getString

      String getString(long docId, String resource)
      Obtains the document's content as string for the specified resource
      Parameters:
      docId - The document's identifier
      resource - Name of the resource
      Returns:
      The document file's as string representation
    • getTotalSize

      long getTotalSize()
      Computes the total size of the documents repository(in bytes)
      Returns:
      sum of the sizes of all the documents expressed in bytes
    • getParameterNames

      List<String> getParameterNames()
      Implementations should return the list of the required parameters. A parameter is stored in the context as store.id.parameter = value
      Returns:
      list of parameter names
    • getParameters

      Map<String,String> getParameters()
      Returns the map of parameters
      Returns:
      a map with settings setting_name - setting_value
    • test

      boolean test()
      Tests if the store can read and write
      Returns:
      if the store can read and write
    • isEnabled

      boolean isEnabled()
      Tests if the store is enabled
      Returns:
      if the store is enabled
    • init

      @PostConstruct void init()
      Initialization method
    • destroy

      @PreDestroy void destroy()
      Destroy method
    • newStore

      Store newStore(int id)
      Instantiate a new store and fully configures it.
      Parameters:
      id - identifier of the store to create
      Returns:
      the created instance
    • getStoreDefinitions

      Map<String,Store> getStoreDefinitions()
      Retrieves the stores definitions grouped by type
      Returns:
      a map with definitions type - store prototype