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
-
-