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 Details

    • get

      static Store get()
      Gets the object available in the application context
      Returns:
      the instance of this object in the application context
    • 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, StoreResource 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
      resource - Resource to be stored, make sure to provide the right document's ID
      Throws:
      IOException - the content cannot be stored
    • store

      void store(File file, StoreResource resource) throws IOException
      Stores a file
      Parameters:
      file - the file to store
      resource - Resource to be stored, make sure to provide the right document's ID
      Throws:
      IOException - the content cannot be stored
    • delete

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

      void delete(StoreResource resource)
      Deletes a specific resource of a document from the store.
      Parameters:
      resource - The resource to be deleted
    • listResources

      List<StoreResource> 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 resources
    • size

      long size(StoreResource resource)
      Computed the size of a specific resource.
      Parameters:
      resource - The resource
      Returns:
      the size in bytes
    • exists

      boolean exists(StoreResource resource)
      Checks if the passed resource exists in the document's container
      Parameters:
      resource - The resource
      Returns:
      true only if the resource already exists
    • writeToFile

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

      void writeToStream(StoreResource resource, OutputStream output, long start, long length) throws IOException
      Writes the specified resource in an output stream
      Parameters:
      resource - 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(StoreResource resource, OutputStream output) throws IOException
      Writes the specified resource in an output stream
      Parameters:
      resource - The resource
      output - The output stream
      Throws:
      IOException - error writing the stream or reading the resource
    • getStream

      InputStream getStream(StoreResource resource) throws IOException
      Obtains the document's content for the specified resource
      Parameters:
      resource - The resource
      Returns:
      The document file's content
      Throws:
      IOException - cannot open the stream
    • getBytes

      byte[] getBytes(StoreResource resource) throws IOException
      Obtains the document's raw bytes for the specified resource
      Parameters:
      resource - The resource
      Returns:
      The document file's bytes
      Throws:
      IOException - cannot open the resource to get the bytes
    • getBytes

      byte[] getBytes(StoreResource resource, long start, long length) throws IOException
      Obtains the document's raw bytes for the specified resource
      Parameters:
      resource - 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(StoreResource resource)
      Obtains the resource's content as string for the specified resource
      Parameters:
      resource - 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