Class TemporaryResources

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class TemporaryResources
    extends java.lang.Object
    implements java.io.Closeable
    Utility class for tracking and ultimately closing or otherwise disposing a collection of temporary resources.

    Note that this class is not thread-safe.

    Since:
    Apache Tika 0.10
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addResource​(java.io.Closeable resource)
      Adds a new resource to the set of tracked resources that will all be closed when the close() method is called.
      void close()
      Closes all tracked resources.
      java.nio.file.Path createTempFile()
      Creates a temporary file that will automatically be deleted when the close() method is called, returning its path.
      java.io.File createTemporaryFile()
      Creates and returns a temporary file that will automatically be deleted when the close() method is called.
      void dispose()
      Calls the close() method and wraps the potential IOException into a TikaException for convenience when used within Tika.
      <T extends java.io.Closeable>
      T
      getResource​(java.lang.Class<T> klass)
      Returns the latest of the tracked resources that implements or extends the given interface or class.
      void setTemporaryFileDirectory​(java.io.File tempFileDir)
      Sets the directory to be used for the temporary files created by the createTempFile() method.
      void setTemporaryFileDirectory​(java.nio.file.Path tempFileDir)
      Sets the directory to be used for the temporary files created by the createTempFile() method.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • TemporaryResources

        public TemporaryResources()
    • Method Detail

      • setTemporaryFileDirectory

        public void setTemporaryFileDirectory​(java.nio.file.Path tempFileDir)
        Sets the directory to be used for the temporary files created by the createTempFile() method.
        Parameters:
        tempFileDir - temporary file directory, or null for the system default
      • setTemporaryFileDirectory

        public void setTemporaryFileDirectory​(java.io.File tempFileDir)
        Sets the directory to be used for the temporary files created by the createTempFile() method.
        Parameters:
        tempFileDir - temporary file directory, or null for the system default
        See Also:
        setTemporaryFileDirectory(Path)
      • createTempFile

        public java.nio.file.Path createTempFile()
                                          throws java.io.IOException
        Creates a temporary file that will automatically be deleted when the close() method is called, returning its path.
        Returns:
        Path to created temporary file that will be deleted after closing
        Throws:
        java.io.IOException
      • createTemporaryFile

        public java.io.File createTemporaryFile()
                                         throws java.io.IOException
        Creates and returns a temporary file that will automatically be deleted when the close() method is called.
        Returns:
        Created temporary file that'll be deleted after closing
        Throws:
        java.io.IOException
        See Also:
        createTempFile()
      • addResource

        public void addResource​(java.io.Closeable resource)
        Adds a new resource to the set of tracked resources that will all be closed when the close() method is called.
        Parameters:
        resource - resource to be tracked
      • getResource

        public <T extends java.io.Closeable> T getResource​(java.lang.Class<T> klass)
        Returns the latest of the tracked resources that implements or extends the given interface or class.
        Parameters:
        klass - interface or class
        Returns:
        matching resource, or null if not found
      • close

        public void close()
                   throws java.io.IOException
        Closes all tracked resources. The resources are closed in reverse order from how they were added.

        Any suppressed exceptions from managed resources are collected and then added to the first thrown exception, which is re-thrown once all the resources have been closed.

        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.io.IOException - if one or more of the tracked resources could not be closed
      • dispose

        public void dispose()
                     throws TikaException
        Calls the close() method and wraps the potential IOException into a TikaException for convenience when used within Tika.
        Throws:
        TikaException - if one or more of the tracked resources could not be closed