java.dyn
Class MethodHandles

java.lang.Object
  extended by java.dyn.MethodHandles

public class MethodHandles
extends java.lang.Object


Nested Class Summary
static class MethodHandles.Lookup
           
 
Constructor Summary
MethodHandles()
           
 
Method Summary
static MethodHandle arrayElementGetter(java.lang.Class<?> arrayClass)
           
static MethodHandle arrayElementSetter(java.lang.Class<?> arrayClass)
           
static MethodHandle catchException(MethodHandle target, java.lang.Class<? extends java.lang.Throwable> exType, MethodHandle handler)
           
static MethodHandle collectArguments(MethodHandle target, MethodType newType)
           
static MethodHandle convertArguments(MethodHandle target, MethodType newType)
           
static MethodHandle dropArguments(MethodHandle target, int pos, java.lang.Class<?>... valueTypes)
           
static MethodHandle exactInvoker(MethodType type)
           
static MethodHandle foldArguments(MethodHandle target, MethodHandle combiner)
           
static MethodHandle genericInvoker(MethodType type, int objectArgCount, boolean varargs)
           
static MethodHandle guardWithTest(MethodHandle test, MethodHandle target, MethodHandle fallback)
           
static MethodHandle insertArguments(MethodHandle target, int pos, java.lang.Object... value)
           
static java.lang.Object invoke_0(MethodHandle target)
           
static java.lang.Object invoke_1(MethodHandle target, java.lang.Object a0)
           
static java.lang.Object invoke_10(MethodHandle target, java.lang.Object a0, java.lang.Object a1, java.lang.Object a2, java.lang.Object a3, java.lang.Object a4, java.lang.Object a5, java.lang.Object a6, java.lang.Object a7, java.lang.Object a8, java.lang.Object a9)
           
static java.lang.Object invoke_2(MethodHandle target, java.lang.Object a0, java.lang.Object a1)
           
static java.lang.Object invoke_3(MethodHandle target, java.lang.Object a0, java.lang.Object a1, java.lang.Object a2)
           
static java.lang.Object invoke_4(MethodHandle target, java.lang.Object a0, java.lang.Object a1, java.lang.Object a2, java.lang.Object a3)
           
static java.lang.Object invoke_5(MethodHandle target, java.lang.Object a0, java.lang.Object a1, java.lang.Object a2, java.lang.Object a3, java.lang.Object a4)
           
static java.lang.Object invoke_6(MethodHandle target, java.lang.Object a0, java.lang.Object a1, java.lang.Object a2, java.lang.Object a3, java.lang.Object a4, java.lang.Object a5)
           
static java.lang.Object invoke_7(MethodHandle target, java.lang.Object a0, java.lang.Object a1, java.lang.Object a2, java.lang.Object a3, java.lang.Object a4, java.lang.Object a5, java.lang.Object a6)
           
static java.lang.Object invoke_8(MethodHandle target, java.lang.Object a0, java.lang.Object a1, java.lang.Object a2, java.lang.Object a3, java.lang.Object a4, java.lang.Object a5, java.lang.Object a6, java.lang.Object a7)
           
static java.lang.Object invoke_9(MethodHandle target, java.lang.Object a0, java.lang.Object a1, java.lang.Object a2, java.lang.Object a3, java.lang.Object a4, java.lang.Object a5, java.lang.Object a6, java.lang.Object a7, java.lang.Object a8)
           
static java.lang.Object invoke(MethodHandle target, java.lang.Object... arguments)
           
static MethodHandles.Lookup lookup()
           
static MethodHandle permuteArguments(MethodHandle target, MethodType newType, int[] reorder)
           
static MethodHandle spreadArguments(MethodHandle target, MethodType newType)
           
static MethodHandle throwException(java.lang.Class<?> returnType, java.lang.Class<? extends java.lang.Throwable> exType)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MethodHandles

public MethodHandles()
Method Detail

lookup

public static MethodHandles.Lookup lookup()

arrayElementGetter

public static MethodHandle arrayElementGetter(java.lang.Class<?> arrayClass)
                                       throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

arrayElementSetter

public static MethodHandle arrayElementSetter(java.lang.Class<?> arrayClass)
                                       throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

invoke

public static java.lang.Object invoke(MethodHandle target,
                                      java.lang.Object... arguments)

invoke_0

public static java.lang.Object invoke_0(MethodHandle target)
                                 throws java.lang.Throwable
Throws:
java.lang.Throwable

invoke_1

public static java.lang.Object invoke_1(MethodHandle target,
                                        java.lang.Object a0)
                                 throws java.lang.Throwable
Throws:
java.lang.Throwable

invoke_2

public static java.lang.Object invoke_2(MethodHandle target,
                                        java.lang.Object a0,
                                        java.lang.Object a1)
                                 throws java.lang.Throwable
Throws:
java.lang.Throwable

invoke_3

public static java.lang.Object invoke_3(MethodHandle target,
                                        java.lang.Object a0,
                                        java.lang.Object a1,
                                        java.lang.Object a2)
                                 throws java.lang.Throwable
Throws:
java.lang.Throwable

invoke_4

public static java.lang.Object invoke_4(MethodHandle target,
                                        java.lang.Object a0,
                                        java.lang.Object a1,
                                        java.lang.Object a2,
                                        java.lang.Object a3)
                                 throws java.lang.Throwable
Throws:
java.lang.Throwable

invoke_5

public static java.lang.Object invoke_5(MethodHandle target,
                                        java.lang.Object a0,
                                        java.lang.Object a1,
                                        java.lang.Object a2,
                                        java.lang.Object a3,
                                        java.lang.Object a4)
                                 throws java.lang.Throwable
Throws:
java.lang.Throwable

invoke_6

public static java.lang.Object invoke_6(MethodHandle target,
                                        java.lang.Object a0,
                                        java.lang.Object a1,
                                        java.lang.Object a2,
                                        java.lang.Object a3,
                                        java.lang.Object a4,
                                        java.lang.Object a5)
                                 throws java.lang.Throwable
Throws:
java.lang.Throwable

invoke_7

public static java.lang.Object invoke_7(MethodHandle target,
                                        java.lang.Object a0,
                                        java.lang.Object a1,
                                        java.lang.Object a2,
                                        java.lang.Object a3,
                                        java.lang.Object a4,
                                        java.lang.Object a5,
                                        java.lang.Object a6)
                                 throws java.lang.Throwable
Throws:
java.lang.Throwable

invoke_8

public static java.lang.Object invoke_8(MethodHandle target,
                                        java.lang.Object a0,
                                        java.lang.Object a1,
                                        java.lang.Object a2,
                                        java.lang.Object a3,
                                        java.lang.Object a4,
                                        java.lang.Object a5,
                                        java.lang.Object a6,
                                        java.lang.Object a7)
                                 throws java.lang.Throwable
Throws:
java.lang.Throwable

invoke_9

public static java.lang.Object invoke_9(MethodHandle target,
                                        java.lang.Object a0,
                                        java.lang.Object a1,
                                        java.lang.Object a2,
                                        java.lang.Object a3,
                                        java.lang.Object a4,
                                        java.lang.Object a5,
                                        java.lang.Object a6,
                                        java.lang.Object a7,
                                        java.lang.Object a8)
                                 throws java.lang.Throwable
Throws:
java.lang.Throwable

invoke_10

public static java.lang.Object invoke_10(MethodHandle target,
                                         java.lang.Object a0,
                                         java.lang.Object a1,
                                         java.lang.Object a2,
                                         java.lang.Object a3,
                                         java.lang.Object a4,
                                         java.lang.Object a5,
                                         java.lang.Object a6,
                                         java.lang.Object a7,
                                         java.lang.Object a8,
                                         java.lang.Object a9)
                                  throws java.lang.Throwable
Throws:
java.lang.Throwable

genericInvoker

public static MethodHandle genericInvoker(MethodType type,
                                          int objectArgCount,
                                          boolean varargs)

exactInvoker

public static MethodHandle exactInvoker(MethodType type)

convertArguments

public static MethodHandle convertArguments(MethodHandle target,
                                            MethodType newType)

permuteArguments

public static MethodHandle permuteArguments(MethodHandle target,
                                            MethodType newType,
                                            int[] reorder)

spreadArguments

public static MethodHandle spreadArguments(MethodHandle target,
                                           MethodType newType)

collectArguments

public static MethodHandle collectArguments(MethodHandle target,
                                            MethodType newType)

insertArguments

public static MethodHandle insertArguments(MethodHandle target,
                                           int pos,
                                           java.lang.Object... value)

dropArguments

public static MethodHandle dropArguments(MethodHandle target,
                                         int pos,
                                         java.lang.Class<?>... valueTypes)

guardWithTest

public static MethodHandle guardWithTest(MethodHandle test,
                                         MethodHandle target,
                                         MethodHandle fallback)

catchException

public static MethodHandle catchException(MethodHandle target,
                                          java.lang.Class<? extends java.lang.Throwable> exType,
                                          MethodHandle handler)

throwException

public static MethodHandle throwException(java.lang.Class<?> returnType,
                                          java.lang.Class<? extends java.lang.Throwable> exType)

foldArguments

public static MethodHandle foldArguments(MethodHandle target,
                                         MethodHandle combiner)