Package com.logicaldoc.core.store
Class FSStore
java.lang.Object
com.logicaldoc.core.store.AbstractStore
com.logicaldoc.core.store.FSStore
- All Implemented Interfaces:
Store
,Comparable<Store>
- Direct Known Subclasses:
MockStore
This class is an implementation of the Store interface to persist documents
in the filesystem. From the root of the documents store, this
implementation saves all document's files into a defined directory using the
following logic. The document's id is tokenized by three chars tokens, than
the doc/ dir is appended, so if the docId=12345, the document's path will
be:123/45/doc.
- Since:
- 4.5
- Author:
- Marco Meschieri - LogicalDOC
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
delete
(long docId) Deletes all resources of a document from the store.void
Deletes a specific resource of a document from the store.boolean
Checks if the passed resource exists in the document's containerbyte[]
Obtains the document's raw bytes for the specified resourcegetContainer
(long docId) Finds the container where all document's files are storedImplementations should return the list of the required parameters.getRoot()
Obtains the document's content for the specified resourcelong
Computes the total size of the documents repository(in bytes)listResources
(long docId, String fileVersion) Lists all resources in the document's containerint
moveResourcesToStore
(long docId, int targetStoreId) Moves all the resources of a document from it's original location to a different storelong
Computed the size of a specific resource.void
Stores a filevoid
store
(InputStream stream, long docId, String resource) This method has to store a resource in the document's container.void
writeToFile
(long docId, String resource, File out) Writes the specified resource in a fileMethods inherited from class com.logicaldoc.core.store.AbstractStore
compareTo, destroy, equals, getBytes, getConfig, getId, getParameters, getResourceName, getResourceName, getStoreDefinitions, getString, hashCode, init, isEnabled, newStore, setConfig, setId, test, toString, writeToStream, writeToStream
-
Constructor Details
-
FSStore
public FSStore()
-
-
Method Details
-
delete
public void delete(long docId) Description copied from interface:Store
Deletes all resources of a document from the store.- Parameters:
docId
- The document identifier
-
delete
Description copied from interface:Store
Deletes a specific resource of a document from the store.- Parameters:
docId
- The document identifierresource
- Name of the resource to be deleted
-
getContainer
Finds the container where all document's files are stored- Parameters:
docId
- The document identifier- Returns:
- The document's container
-
getRoot
-
store
Description copied from interface:Store
Stores a file- Specified by:
store
in interfaceStore
- Overrides:
store
in classAbstractStore
- Parameters:
file
- the file to storedocId
- identifier of the documentresource
- name of the resource- Throws:
IOException
- the content cannot be stored- See Also:
-
store
Description copied from interface:Store
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 InputStreamdocId
- The document identifierresource
- Name of the resource to be stored- Throws:
IOException
- the content cannot be stored
-
writeToFile
Description copied from interface:Store
Writes the specified resource in a file- Specified by:
writeToFile
in interfaceStore
- Overrides:
writeToFile
in classAbstractStore
- Parameters:
docId
- The document identifierresource
- Name of the resourceout
- File that will receive the resource's content- Throws:
IOException
- error writing the file or reading the resource
-
getStream
Description copied from interface:Store
Obtains the document's content for the specified resource- Parameters:
docId
- The document's identifierresource
- Name of the resource- Returns:
- The document file's content
- Throws:
IOException
- cannot open the stream
-
getTotalSize
public long getTotalSize()Description copied from interface:Store
Computes the total size of the documents repository(in bytes)- Returns:
- sum of the sizes of all the documents expressed in bytes
-
getBytes
Description copied from interface:Store
Obtains the document's raw bytes for the specified resource- Parameters:
docId
- The document's identifierresource
- Name of the resourcestart
- Index of the starting bytelength
- Total packet length- Returns:
- The document file's bytes
- Throws:
IOException
- cannot open the resource to get the bytes
-
listResources
Description copied from interface:Store
Lists all resources in the document's container- Parameters:
docId
- The document's identifierfileVersion
- If specified, lists the resources for that specific file version only- Returns:
- list of resource names
-
size
Description copied from interface:Store
Computed the size of a specific resource.- Parameters:
docId
- The document's identifierresource
- The resource- Returns:
- the size in bytes
-
exists
Description copied from interface:Store
Checks if the passed resource exists in the document's container- Parameters:
docId
- ID of the documentresource
- Name of the resource- Returns:
- true only if the resource already exists
-
getParameterNames
Description copied from interface:Store
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
-
moveResourcesToStore
Description copied from interface:Store
Moves all the resources of a document from it's original location to a different store- Parameters:
docId
- identifier of the document to processtargetStoreId
- identifier of the store that will receive the files- Returns:
- number of moved resources
- Throws:
IOException
- In case of error during the process
-