Package de.xima.fc.common.auto_closeable
Class AutoCloseableWrapper<T,E extends Exception>
- java.lang.Object
 - 
- de.xima.fc.common.auto_closeable.AutoCloseableWrapper<T,E>
 
 
- 
- Type Parameters:
 T- The type of the object to wrap.E- The type of the exception that the close action may throw.
- All Implemented Interfaces:
 Serializable,AutoCloseable
public final class AutoCloseableWrapper<T,E extends Exception> extends Object implements AutoCloseable, Serializable
Wrapper for an object that does not itself implementAutoCloseable, but needs to be closed in a different kind of fashion. This class wraps such objects and implementsAutoCloseableto allow them to be used in try-with-resources statements.This class is serializable if the wrapped object and its close action is serializable.
- Since:
 - 8.3.0
 - Author:
 - XIMA MEDIA GmbH
 - See Also:
 - Serialized Form
 
 
- 
- 
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()static <T> AutoCloseableWrapper<T,Exception>ofObject(T wrapped)Creates a wrapper for the given object that will close the object when closed, if the object implementsAutoCloseable; and do nothing otherwise.static <T> AutoCloseableWrapper<T,RuntimeException>ofObjectQuiet(T wrapped)Creates a wrapper for the given object that will close the object when closed, if the object implementsAutoCloseable; and do nothing otherwise.static <T,E extends Exception>
AutoCloseableWrapper<T,E>withCloseAction(T wrapped, ITypedThrowingConsumer<? super T,? extends E> close)Creates a wrapper for the given object that will call the given close action when closed.Twrapped()Gets the wrapped object. 
 - 
 
- 
- 
Method Detail
- 
close
public void close() throws E extends Exception- Specified by:
 closein interfaceAutoCloseable- Throws:
 E extends Exception
 
- 
wrapped
public T wrapped()
Gets the wrapped object.- Returns:
 - The wrapped object.
 - Throws:
 IllegalStateException- If the wrapper has already been closed.
 
- 
ofObject
public static <T> AutoCloseableWrapper<T,Exception> ofObject(T wrapped)
Creates a wrapper for the given object that will close the object when closed, if the object implementsAutoCloseable; and do nothing otherwise.- Type Parameters:
 T- The type of the object to wrap.- Parameters:
 wrapped- The object to wrap.- Returns:
 - A new 
AutoCloseableWrapperthat wraps the given object and closes it if necessary. 
 
- 
ofObjectQuiet
public static <T> AutoCloseableWrapper<T,RuntimeException> ofObjectQuiet(T wrapped)
Creates a wrapper for the given object that will close the object when closed, if the object implementsAutoCloseable; and do nothing otherwise. If the close action throws an exception, it will be caught and ignored.- Type Parameters:
 T- The type of the object to wrap.- Parameters:
 wrapped- The object to wrap.- Returns:
 - A new 
AutoCloseableWrapperthat wraps the given object and closes it if necessary. 
 
- 
withCloseAction
public static <T,E extends Exception> AutoCloseableWrapper<T,E> withCloseAction(T wrapped, ITypedThrowingConsumer<? super T,? extends E> close)
Creates a wrapper for the given object that will call the given close action when closed.- Type Parameters:
 T- The type of the object to wrap.E- The type of the exception that the close action may throw.- Parameters:
 wrapped- The object to wrap.close- The action to perform when the object is closed.- Returns:
 - A new 
AutoCloseableWrapperthat wraps the given object and invokes the given action when closed. 
 
 - 
 
 -