Package com.exonum.binding.proxy
Class ProxyDestructor
- java.lang.Object
-
- com.exonum.binding.proxy.ProxyDestructor
-
- All Implemented Interfaces:
CleanAction<java.lang.Class<?>>
public final class ProxyDestructor extends java.lang.Object implements CleanAction<java.lang.Class<?>>
ProxyDestructor is a clean action that destroys a native proxy and closes its native handle.Native proxies do not implement any interface (e.g.,
CloseableNativeProxy
) and use this class so that there is no public #close method available in the interface of the proxy, making the risk of misuse smaller.All method parameters are non-null by default.
This class is not thread-safe.
-
-
Constructor Summary
Constructors Constructor Description ProxyDestructor(NativeHandle nativeHandle, java.lang.Class<?> proxyClass, java.util.function.LongConsumer destructorFunction)
Creates a new destructor of a native proxy.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clean()
Closes the native handle, so that it can no longer be accessed, and performs a clean action, passing the native handle value.static ProxyDestructor
newRegistered(Cleaner cleaner, NativeHandle nativeHandle, java.lang.Class<?> proxyClass, java.util.function.LongConsumer destructorFunction)
Creates a new destructor of a native proxy, registered in the given cleaner.java.util.Optional<java.lang.Class<?>>
resourceType()
Returns the description of the type of resource this action corresponds to.java.lang.String
toString()
-
-
-
Constructor Detail
-
ProxyDestructor
public ProxyDestructor(NativeHandle nativeHandle, java.lang.Class<?> proxyClass, java.util.function.LongConsumer destructorFunction)
Creates a new destructor of a native proxy.- Parameters:
nativeHandle
- a handle to the native objectproxyClass
- a class of the proxydestructorFunction
- a clean function to perform
-
-
Method Detail
-
newRegistered
@CanIgnoreReturnValue public static ProxyDestructor newRegistered(Cleaner cleaner, NativeHandle nativeHandle, java.lang.Class<?> proxyClass, java.util.function.LongConsumer destructorFunction)
Creates a new destructor of a native proxy, registered in the given cleaner.- Parameters:
cleaner
- a cleaner to register the destructor innativeHandle
- a handle to the native objectproxyClass
- a class of proxydestructorFunction
- a clean function to perform
-
clean
public void clean()
Closes the native handle, so that it can no longer be accessed, and performs a clean action, passing the native handle value.If native handle is not valid, does nothing.
This method is idempotent.
- Specified by:
clean
in interfaceCleanAction<java.lang.Class<?>>
-
resourceType
public java.util.Optional<java.lang.Class<?>> resourceType()
Description copied from interface:CleanAction
Returns the description of the type of resource this action corresponds to.- Specified by:
resourceType
in interfaceCleanAction<java.lang.Class<?>>
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-