Package org.apache.tika.io
Class TemporaryResources
- java.lang.Object
-
- org.apache.tika.io.TemporaryResources
-
- All Implemented Interfaces:
Closeable
,AutoCloseable
public class TemporaryResources extends Object implements 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
-
-
Constructor Summary
Constructors Constructor Description TemporaryResources()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addResource(Closeable resource)
Adds a new resource to the set of tracked resources that will all be closed when theclose()
method is called.void
close()
Closes all tracked resources.Path
createTempFile()
Path
createTempFile(String suffix)
Creates a temporary file that will automatically be deleted when theclose()
method is called, returning its path.Path
createTempFile(Metadata metadata)
Creates a temporary file that will automatically be deleted when theclose()
method is called, returning its path.File
createTemporaryFile()
Creates and returns a temporary file that will automatically be deleted when theclose()
method is called.void
dispose()
Calls theclose()
method and wraps the potentialIOException
into aTikaException
for convenience when used within Tika.<T extends Closeable>
TgetResource(Class<T> klass)
Returns the latest of the tracked resources that implements or extends the given interface or class.void
setTemporaryFileDirectory(File tempFileDir)
Sets the directory to be used for the temporary files created by thecreateTempFile(String)
method.void
setTemporaryFileDirectory(Path tempFileDir)
Sets the directory to be used for the temporary files created by thecreateTempFile(String)
method.
-
-
-
Method Detail
-
setTemporaryFileDirectory
public void setTemporaryFileDirectory(Path tempFileDir)
Sets the directory to be used for the temporary files created by thecreateTempFile(String)
method.- Parameters:
tempFileDir
- temporary file directory, ornull
for the system default
-
setTemporaryFileDirectory
public void setTemporaryFileDirectory(File tempFileDir)
Sets the directory to be used for the temporary files created by thecreateTempFile(String)
method.- Parameters:
tempFileDir
- temporary file directory, ornull
for the system default- See Also:
setTemporaryFileDirectory(Path)
-
createTempFile
public Path createTempFile(String suffix) throws IOException
Creates a temporary file that will automatically be deleted when theclose()
method is called, returning its path.- Parameters:
suffix
- -- the suffix of the file if known, starting with "." as in ".pdf"- Returns:
- Path to created temporary file that will be deleted after closing
- Throws:
IOException
-
createTempFile
public Path createTempFile() throws IOException
- Throws:
IOException
-
createTempFile
public Path createTempFile(Metadata metadata) throws IOException
Creates a temporary file that will automatically be deleted when theclose()
method is called, returning its path.- Returns:
- Path to created temporary file that will be deleted after closing
- Throws:
IOException
-
createTemporaryFile
public File createTemporaryFile() throws IOException
Creates and returns a temporary file that will automatically be deleted when theclose()
method is called.- Returns:
- Created temporary file that'll be deleted after closing
- Throws:
IOException
- See Also:
createTempFile(String)
-
addResource
public void addResource(Closeable resource)
Adds a new resource to the set of tracked resources that will all be closed when theclose()
method is called.- Parameters:
resource
- resource to be tracked
-
getResource
public <T extends Closeable> T getResource(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 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 interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
- if one or more of the tracked resources could not be closed
-
dispose
public void dispose() throws TikaException
Calls theclose()
method and wraps the potentialIOException
into aTikaException
for convenience when used within Tika.- Throws:
TikaException
- if one or more of the tracked resources could not be closed
-
-