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 voidclean()Closes the native handle, so that it can no longer be accessed, and performs a clean action, passing the native handle value.static ProxyDestructornewRegistered(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.StringtoString() 
 - 
 
- 
- 
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:
 cleanin interfaceCleanAction<java.lang.Class<?>>
 
- 
resourceType
public java.util.Optional<java.lang.Class<?>> resourceType()
Description copied from interface:CleanActionReturns the description of the type of resource this action corresponds to.- Specified by:
 resourceTypein interfaceCleanAction<java.lang.Class<?>>
 
- 
toString
public java.lang.String toString()
- Overrides:
 toStringin classjava.lang.Object
 
 - 
 
 -