Class BufferedRereadableContent

java.lang.Object
de.aristaflow.adept2.util.io.BufferedRereadableContent
All Implemented Interfaces:
Closeable, AutoCloseable

@Deprecated(since="15.0.0", forRemoval=true) public class BufferedRereadableContent extends Object implements Closeable
Deprecated, for removal: This API element is subject to removal in a future version.
Use RereadableContent instead.
The BufferedRereadableContent can be used when the content of an InputStream needs to be processed multiple times. Depending on its eventual size the whole content of the input stream is buffered in-memory - up to a certain threshold - or in a temporary file.

The BufferedRereadableContent as well as the provided input streams must be closed after use! This can be ensured by adhering to the following template:

 
 try (BufferedRereadableContent input = new BufferedRereadableContent(inputStream))
 {
   ...
   try (InputStream is = input.getInputStream())
   {
     ...
   }
   ...
   try (InputStream is = input.getInputStream())
   {
     ...
   }
   ...
 }
 
 
Closing this BufferedRereadableContent will also close the underlying InputStream (unless it has already been read and closed in the constructor). Also created streams that have not been closed will also be closed.
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected static final class 
    Deprecated, for removal: This API element is subject to removal in a future version.
    The clean-up task deleting the temporary file if appropriate
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Cleanup<RuntimeException>
    Deprecated, for removal: This API element is subject to removal in a future version.
    The clean-up for closing the createdStreams and the temporary file.
    protected final Collection<Closeable>
    Deprecated, for removal: This API element is subject to removal in a future version.
    All streams that have been created by this BufferedRereadableContent.
    protected static final int
    Deprecated, for removal: This API element is subject to removal in a future version.
     
    protected final long
    Deprecated, for removal: This API element is subject to removal in a future version.
    The size of the content.
    protected final Logger
    Deprecated, for removal: This API element is subject to removal in a future version.
    The logger for problems with the handling of the created input streams.
    protected static final DateTimeFormatter
    Deprecated, for removal: This API element is subject to removal in a future version.
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    Deprecated, for removal: This API element is subject to removal in a future version.
    Creates a new BufferedRereadableContent and immediately reads the given InputStream.
    BufferedRereadableContent(InputStream inputStream, int threshold, String tempFileTag, File tempDir)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Creates a new BufferedRereadableContent and immediately reads the given InputStream.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Deprecated, for removal: This API element is subject to removal in a future version.
    Releases all resources and deletes the temporary file if one has been created.
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns an input stream for the data.
    long
    Deprecated, for removal: This API element is subject to removal in a future version.
    Returns the total length of the content.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • DEFAULT_THRESHOLD

      protected static final int DEFAULT_THRESHOLD
      Deprecated, for removal: This API element is subject to removal in a future version.
      See Also:
    • TIMESTAMP_FORMATTER

      protected static final DateTimeFormatter TIMESTAMP_FORMATTER
      Deprecated, for removal: This API element is subject to removal in a future version.
    • logger

      protected final Logger logger
      Deprecated, for removal: This API element is subject to removal in a future version.
      The logger for problems with the handling of the created input streams.
    • length

      protected final long length
      Deprecated, for removal: This API element is subject to removal in a future version.
      The size of the content.
    • createdStreams

      protected final Collection<Closeable> createdStreams
      Deprecated, for removal: This API element is subject to removal in a future version.
      All streams that have been created by this BufferedRereadableContent.
    • cleanup

      protected final Cleanup<RuntimeException> cleanup
      Deprecated, for removal: This API element is subject to removal in a future version.
      The clean-up for closing the createdStreams and the temporary file.
  • Constructor Details

    • BufferedRereadableContent

      public BufferedRereadableContent(InputStream inputStream) throws IOException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates a new BufferedRereadableContent and immediately reads the given InputStream.
      Parameters:
      inputStream - The input stream to read. This will be closed when its content has been read. If it is already re-readable,it will be closed when closing this BufferedRereadableContent.
      Throws:
      IOException - if an I/O error occurs
    • BufferedRereadableContent

      public BufferedRereadableContent(InputStream inputStream, int threshold, String tempFileTag, File tempDir) throws IOException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Creates a new BufferedRereadableContent and immediately reads the given InputStream.
      Parameters:
      inputStream - The input stream to read. This will be closed when its content has been read. If it is already re-readable,it will be closed when closing this BufferedRereadableContent.
      threshold - the number of bytes after which to store the content in a file instead; negative values will result in the default threshold
      tempFileTag - an optional tag that will be incorporated into the name of the temp file if one is created; may be null
      tempDir - the directory where temp files should be created; may be null to use the default temp directory of the JVM; will be created if it doesn't exist
      Throws:
      IOException - if an I/O error occurs
  • Method Details

    • getLength

      public long getLength()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns the total length of the content.
      Returns:
      the total length of the content
    • getInputStream

      public InputStream getInputStream() throws IOException
      Deprecated, for removal: This API element is subject to removal in a future version.
      Returns an input stream for the data. This method may be called multiple times. The returned stream must be closed properly after use!
      Returns:
      an input stream for the data
      Throws:
      IOException - if an I/O error occurs
    • close

      public void close()
      Deprecated, for removal: This API element is subject to removal in a future version.
      Releases all resources and deletes the temporary file if one has been created.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable