Package org.jdbi.v3.core.extension
Interface ExtensionHandler
- All Known Subinterfaces:
Handler
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Provides functionality for a single method on an extension object. Each extension handler can either
call another piece of code to return the result (e.g. the method on the underlying object) or return the
result itself.
- Since:
- 3.38.0
-
Field Summary
Modifier and TypeFieldDescriptionstatic final ExtensionHandler
Implementation for theObject.equals(Object)
method.static final ExtensionHandler
Implementation for theObject.hashCode()
method.static final ExtensionHandler
Handler that only returns null independent of any input parameters. -
Method Summary
Modifier and TypeMethodDescriptionstatic ExtensionHandler
createForMethod
(Method method) Create an extension handler and bind it to a method that will be called on the target object when invoked.static ExtensionHandler
createForMethodHandle
(MethodHandle methodHandle) Create an extension handler and bind it to aMethodHandle
instance.static ExtensionHandler
createForSpecialMethod
(Method method) Create an extension handler and bind it to a special method that will be called on the target object when invoked.invoke
(HandleSupplier handleSupplier, Object target, Object... args) Gets invoked to return a value for the method that this handler was bound to.static ExtensionHandler
missingExtensionHandler
(Method method) Returns a default handler for missing functionality.default void
warm
(ConfigRegistry config) Called after the method handler is constructed to pre-initialize any important configuration data structures.
-
Field Details
-
EQUALS_HANDLER
Implementation for theObject.equals(Object)
method. Each object using this handler is only equal to itself. -
HASHCODE_HANDLER
Implementation for theObject.hashCode()
method. -
NULL_HANDLER
Handler that only returns null independent of any input parameters.
-
-
Method Details
-
invoke
Gets invoked to return a value for the method that this handler was bound to.- Parameters:
handleSupplier
- AHandleSupplier
instance for accessing the handle and its related objectstarget
- The target object on which the handler should operateargs
- Optional arguments for the handler- Returns:
- The return value for the method that was bound to the extension handler. Can be null
- Throws:
Exception
- Any exception from the underlying code
-
warm
Called after the method handler is constructed to pre-initialize any important configuration data structures.- Parameters:
config
- the method configuration to use for warming up
-
missingExtensionHandler
Returns a default handler for missing functionality. The handler will throw an exception when invoked.- Parameters:
method
- The method to which this specific handler instance is bound- Returns:
- An
ExtensionHandler
instance
-
createForMethod
Create an extension handler and bind it to a method that will be called on the target object when invoked.- Parameters:
method
- TheMethod
to bind to- Returns:
- An
ExtensionHandler
- Throws:
IllegalAccessException
- If the method could not be unreflected
-
createForSpecialMethod
Create an extension handler and bind it to a special method that will be called on the target object when invoked. This is needed e.g. for interface default methods.- Parameters:
method
- TheMethod
to bind to- Returns:
- An
ExtensionHandler
- Throws:
IllegalAccessException
- If the method could not be unreflected
-
createForMethodHandle
Create an extension handler and bind it to aMethodHandle
instance.- Parameters:
methodHandle
- TheMethodHandle
to bind to- Returns:
- An
ExtensionHandler
-