Top Description Fields Constructors Methods
jdk.dynalink.linker.support

public Class DefaultInternalObjectFilter

extends Object
implements MethodHandleTransformer
Class Inheritance
All Implemented Interfaces
jdk.dynalink.linker.MethodHandleTransformer
Imports
java.lang.invoke.MethodHandle, .MethodHandles, .MethodType, jdk.dynalink.DynamicLinkerFactory, jdk.dynalink.linker.MethodHandleTransformer

Default implementation for a DynamicLinkerFactory#setInternalObjectsFilter(MethodHandleTransformer) that delegates to a pair of filtering method handles. It takes a method handle of Object(Object) type for filtering parameter values and another one of the same type for filtering return values. It applies them as parameter and return value filters on method handles passed to its transform(MethodHandle) method, on those parameters and return values that are declared to have type Object. Also handles method handles that support variable arity calls with a last Object[] parameter. You can broadly think of the parameter filter as being a wrapping method for exposing internal runtime objects wrapped into an adapter with some public interface, and the return value filter as being its inverse unwrapping method.
Since
9

Field Summary

Modifier and TypeField and Description
private static final MethodHandle
private final MethodHandle
private final MethodHandle
private final MethodHandle

Constructor Summary

AccessConstructor and Description
public
DefaultInternalObjectFilter(final MethodHandle
the filter for method parameters. Must be of type Object(Object), or null.
parameterFilter
,
final MethodHandle
the filter for return values. Must be of type Object(Object), or null.
returnFilter
)

Creates a new filter.

Method Summary

Modifier and TypeMethod and Description
private static MethodHandle
checkHandle(final MethodHandle handle, final String handleKind)

private static Object[]
filterVarArgs(final MethodHandle parameterFilter, final Object[] args)

public MethodHandle
transform(final MethodHandle
the method handle being transformed.
target
)

Implements jdk.dynalink.linker.MethodHandleTransformer.transform.

Transforms a method handle.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

FILTER_VARARGSback to summary
private static final MethodHandle FILTER_VARARGS
parameterFilterback to summary
private final MethodHandle parameterFilter
returnFilterback to summary
private final MethodHandle returnFilter
varArgFilterback to summary
private final MethodHandle varArgFilter

Constructor Detail

DefaultInternalObjectFilterback to summary
public DefaultInternalObjectFilter(final MethodHandle parameterFilter, final MethodHandle returnFilter)

Creates a new filter.

Parameters
parameterFilter:MethodHandle

the filter for method parameters. Must be of type Object(Object), or null.

returnFilter:MethodHandle

the filter for return values. Must be of type Object(Object), or null.

Exceptions
IllegalArgumentException:
if one or both filters are not of the expected type.

Method Detail

checkHandleback to summary
private static MethodHandle checkHandle(final MethodHandle handle, final String handleKind)
filterVarArgsback to summary
private static Object[] filterVarArgs(final MethodHandle parameterFilter, final Object[] args) throws Throwable
Annotations
@SuppressWarnings:unused
transformback to summary
public MethodHandle transform(final MethodHandle target)

Implements jdk.dynalink.linker.MethodHandleTransformer.transform.

Doc from jdk.dynalink.linker.MethodHandleTransformer.transform.

Transforms a method handle.

Parameters
target:MethodHandle

the method handle being transformed.

Returns:MethodHandle

transformed method handle.

Annotations
@Override