Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| ModeShape Distribution 3.0.0.Alpha5
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.modeshape.jcr.value.binary
Class FileSystemBinaryStore

    java.lang.Object
      org.modeshape.jcr.value.binary.AbstractBinaryStore
          org.modeshape.jcr.value.binary.FileSystemBinaryStore

All Implemented Interfaces:
  BinaryStore

Direct Known Subclasses:
  TransientBinaryStore

    @ThreadSafe
    public class FileSystemBinaryStore

extends AbstractBinaryStore

A `BinaryStore` that stores files in a directory on the file system. The store does use file locks to prevent other processes from concurrently writing the files, and it also uses an internal set of locks to prevent mulitple threads from simultaneously writing to the persisted files.

Field Summary
`protected static String` | `TRASH_DIRECTORY_NAME`

Fields inherited from class org.modeshape.jcr.value.binary.AbstractBinaryStore
`MEDIUM_BUFFER_SIZE`

Fields inherited from interface org.modeshape.jcr.value.binary.BinaryStore
`DEFAULT_MINIMUM_BINARY_SIZE_IN_BYTES`

Constructor Summary
`protected` | `FileSystemBinaryStore(File directory)`

Method Summary
`static FileSystemBinaryStore` | `create(File directory)`
`protected File` | `findFile(File directory, BinaryKey key, boolean createParentDirsIfMissing)`
`File` | `getDirectory()`
`InputStream` | `getInputStream(BinaryKey key)` Get an `InputStream` to the binary content with the supplied key.
`String` | `getMimeType(BinaryValue binary, String name)` Get the MIME type for this binary value.
`String` | `getText(BinaryValue binary)` Get the text that can be extracted from this binary content.
`protected void` | `initializeStorage(File directory)`
`protected void` | `markAsUnused(BinaryKey key)`
`void` | `markAsUnused(Iterable<BinaryKey> keys)` Mark the supplied binary keys as unused, but key them in quarantine until needed again (at which point they're removed from quarantine) or until `BinaryStore.removeValuesUnusedLongerThan(long, TimeUnit)` is called.
`protected void` | `moveFileExclusively(File original, File destination)`
`protected void` | `pruneEmptyDirectories(File directory, File removeable)` Remove any empty directories above `removeable` but below `directory`
`void` | `removeValuesUnusedLongerThan(long minimumAge, TimeUnit unit)` Remove binary values that have been `unused` for at least the specified amount of time.
`BinaryValue` | `storeValue(InputStream stream)` Store the binary value and return the JCR representation.
`protected void` | `touch(File file)`

Methods inherited from class org.modeshape.jcr.value.binary.AbstractBinaryStore
`bestBufferSize, detector, extractor, getMinimumBinarySizeInBytes, setMimeTypeDetector, setMinimumBinarySizeInBytes, setTextExtractor, shutdown, start`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### TRASH_DIRECTORY_NAME

    protected static final String TRASH_DIRECTORY_NAME

See Also:
  Constant Field Values

Constructor Detail

### FileSystemBinaryStore

    protected FileSystemBinaryStore(File directory)

Method Detail

### create

    public static FileSystemBinaryStore create(File directory)

### getDirectory

    public File getDirectory()

### storeValue

    public BinaryValue storeValue(InputStream stream)
                           throws BinaryStoreException

  Description copied from interface: `BinaryStore`
  Store the binary value and return the JCR representation. Note that if the binary content in the supplied stream is already persisted in the store, the store may simply return the binary value referencing the existing content.

  Parameters:
    `stream` - the stream containing the binary content to be stored; may not be null
  Returns:
    the binary value representing the stored binary value; never null
  Throws:
    `BinaryStoreException`

### moveFileExclusively

    protected final void moveFileExclusively(File original,
                                             File destination)
                                      throws BinaryStoreException

  Throws:
    `BinaryStoreException`

### findFile

    protected final File findFile(File directory,
                                  BinaryKey key,
                                  boolean createParentDirsIfMissing)
                           throws BinaryStoreException

  Throws:
    `BinaryStoreException`

### getInputStream

    public InputStream getInputStream(BinaryKey key)
                               throws BinaryStoreException

  Description copied from interface: `BinaryStore`
  Get an `InputStream` to the binary content with the supplied key.

  Parameters:
    `key` - the key to the binary content; never null
  Returns:
    the input stream through which the content can be read
  Throws:
    `BinaryStoreException` - if there is a problem reading the content from the store

### initializeStorage

    protected void initializeStorage(File directory)
                              throws BinaryStoreException

  Throws:
    `BinaryStoreException`

### markAsUnused

    public void markAsUnused(Iterable<BinaryKey> keys)
                      throws BinaryStoreException

  Description copied from interface: `BinaryStore`
  Mark the supplied binary keys as unused, but key them in quarantine until needed again (at which point they're removed from quarantine) or until `BinaryStore.removeValuesUnusedLongerThan(long, TimeUnit)` is called. This method ignores any keys for values not stored within this store.

  Note that the implementation must never block.

  Parameters:
    `keys` - the keys for the binary values that are no longer needed
  Throws:
    `BinaryStoreException` - if there is a problem marking any of the supplied binary values as unused

### markAsUnused

    protected void markAsUnused(BinaryKey key)
                         throws BinaryStoreException

  Throws:
    `BinaryStoreException`

### touch

    protected void touch(File file)
                  throws BinaryStoreException

  Throws:
    `BinaryStoreException`

### pruneEmptyDirectories

    protected void pruneEmptyDirectories(File directory,
                                         File removeable)

  Remove any empty directories above `removeable` but below `directory`

  Parameters:
    `directory` - the top-level directory to keep; may not be null and must be an ancestor of `removeable`
    `removeable` - the file or directory above which any empty directories can be removed; may not be null

### removeValuesUnusedLongerThan

    public void removeValuesUnusedLongerThan(long minimumAge,
                                             TimeUnit unit)
                                      throws BinaryStoreException

  Description copied from interface: `BinaryStore`
  Remove binary values that have been `unused` for at least the specified amount of time.

  Note that the implementation must never block.

  Parameters:
    `minimumAge` - the minimum time that a binary value has been `unused` before it can be removed; must be non-negative
    `unit` - the time unit for the minimum age; may not be null
  Throws:
    `BinaryStoreException` - if there is a problem removing the unused values

### getText

    public String getText(BinaryValue binary)
                   throws BinaryStoreException

  Description copied from interface: `BinaryStore`
  Get the text that can be extracted from this binary content.

  Parameters:
    `binary` - the binary content; may not be null
  Returns:
    the extracted text, or null if none could be extracted
  Throws:
    `BinaryStoreException` - if the binary content could not be accessed

### getMimeType

    public String getMimeType(BinaryValue binary,
                              String name)
                       throws IOException,
                              RepositoryException

  Description copied from interface: `BinaryStore`
  Get the MIME type for this binary value.

  Parameters:
    `binary` - the binary content; may not be null
    `name` - the name of the content, useful for determining the MIME type; may be null if not known
  Returns:
    the MIME type, or null if it cannot be determined (e.g., the Binary is empty)
  Throws:
    `IOException` - if there is a problem reading the binary content
    `RepositoryException` - if an error occurs.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| ModeShape Distribution 3.0.0.Alpha5
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2008-2012 JBoss, a division of Red Hat. All Rights Reserved.