Class CloseableResource<T>

java.lang.Object
org.apache.beam.runners.portability.CloseableResource<T>
All Implemented Interfaces:
AutoCloseable

public class CloseableResource<T> extends Object implements AutoCloseable
An AutoCloseable that wraps a resource that needs to be cleaned up but does not implement AutoCloseable itself.

Recipients of a CloseableResource are in general responsible for cleanup. Ownership can be transferred from one context to another via transfer(). Transferring relinquishes ownership from the original resource. This allows resources to be safely constructed and transferred within a try-with-resources block. For example:

try (CloseableResource<Foo> resource = CloseableResource.of(...)) { // Do something with resource. ... // Then transfer ownership to some consumer. resourceConsumer(resource.transfer()); }

Not thread-safe.