Top Description Fields Constructors Methods
org.codehaus.groovy.vmplugin.v8

public Class TypeTransformers

extends Object
Class Inheritance
Imports
groovy.lang.Closure, .GString, .GroovyObject, groovy.util.ProxyGenerator, org.codehaus.groovy.GroovyBugError, org.codehaus.groovy.reflection.stdclasses.CachedSAMClass, org.codehaus.groovy.runtime.ConvertedClosure, org.codehaus.groovy.runtime.typehandling.DefaultTypeTransformation, org.codehaus.groovy.transform.trait.Traits, org.codehaus.groovy.vmplugin.v8.TypeHelper, java.lang.invoke.MethodHandle, .MethodHandles, .MethodType, java.lang.reflect.InvocationHandler, .Method, .Proxy, java.math.BigDecimal, .BigInteger, java.util.Collections, .List, .Map

This class contains several transformers for used during method invocation.

Field Summary

Modifier and TypeField and Description
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle
private static final MethodHandles.Lookup
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle
private static final MethodHandle

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
protected static MethodHandle
addTransformer(MethodHandle handle, int pos, Object arg, Class<?> parameter)

Adds a type transformer applied at runtime.

public static MethodHandle
applyUnsharpFilter(MethodHandle handle, int pos, MethodHandle transformer)

Apply a transformer as filter.

private static MethodHandle
createSAMTransform(Object arg, Class<?> parameter)

creates a method handle able to transform the given Closure into a SAM type if the given parameter is a SAM type

private static MethodHandle
selectNumberTransformer(Class<?> param, Object arg)

returns a transformer later applied as filter to transform one number into another

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

AS_ARRAYback to summary
private static final MethodHandle AS_ARRAY
BIG_INT_TO_BIG_DECback to summary
private static final MethodHandle BIG_INT_TO_BIG_DEC
DOUBLE_TO_BIG_DECback to summary
private static final MethodHandle DOUBLE_TO_BIG_DEC
DOUBLE_TO_BIG_DEC_WITH_CONVERSIONback to summary
private static final MethodHandle DOUBLE_TO_BIG_DEC_WITH_CONVERSION
LONG_TO_BIG_DECback to summary
private static final MethodHandle LONG_TO_BIG_DEC
LOOKUPback to summary
private static final MethodHandles.Lookup LOOKUP
TO_BIG_INTback to summary
private static final MethodHandle TO_BIG_INT
TO_BYTEback to summary
private static final MethodHandle TO_BYTE
TO_DOUBLEback to summary
private static final MethodHandle TO_DOUBLE
TO_FLOATback to summary
private static final MethodHandle TO_FLOAT
TO_GENERATED_PROXYback to summary
private static final MethodHandle TO_GENERATED_PROXY
TO_INTback to summary
private static final MethodHandle TO_INT
TO_LONGback to summary
private static final MethodHandle TO_LONG
TO_REFLECTIVE_PROXYback to summary
private static final MethodHandle TO_REFLECTIVE_PROXY
TO_SAMTRAIT_PROXYback to summary
private static final MethodHandle TO_SAMTRAIT_PROXY
TO_SHORTback to summary
private static final MethodHandle TO_SHORT
TO_STRINGback to summary
private static final MethodHandle TO_STRING

Constructor Detail

TypeTransformersback to summary
public TypeTransformers()

Method Detail

addTransformerback to summary
protected static MethodHandle addTransformer(MethodHandle handle, int pos, Object arg, Class<?> parameter)

Adds a type transformer applied at runtime. This method handles transformations to String from GString, array transformations and number based transformations

applyUnsharpFilterback to summary
public static MethodHandle applyUnsharpFilter(MethodHandle handle, int pos, MethodHandle transformer)

Apply a transformer as filter. The filter may not match exactly in the types. In this case needed additional type transformations are done by MethodHandle#asType(MethodType)

createSAMTransformback to summary
private static MethodHandle createSAMTransform(Object arg, Class<?> parameter)

creates a method handle able to transform the given Closure into a SAM type if the given parameter is a SAM type

selectNumberTransformerback to summary
private static MethodHandle selectNumberTransformer(Class<?> param, Object arg)

returns a transformer later applied as filter to transform one number into another