public class InvokeDynamicMethodFactory extends InvocationMethodFactory
MethodFactory
,
HandleMethod
Modifier and Type | Field and Description |
---|---|
static com.headius.invokebinder.Signature[] |
SPECIFIC_ARITY_SIGNATURES |
static com.headius.invokebinder.Signature |
VARIABLE_ARITY_SIGNATURE |
ARGS_INDEX, BLOCK_INDEX, CLASS_INDEX, classLoader, NAME_INDEX, RECEIVER_INDEX, syncObject, THIS_INDEX, THREADCONTEXT_INDEX
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8
Constructor and Description |
---|
InvokeDynamicMethodFactory(ClassLoader classLoader) |
Modifier and Type | Method and Description |
---|---|
static Callable<java.lang.invoke.MethodHandle> |
adaptHandle(java.lang.invoke.MethodHandle method,
Ruby runtime,
int actualRequired,
int required,
int optional,
boolean rest,
String rubyName,
Class declaringClass,
boolean isStatic,
boolean hasContext,
boolean hasBlock,
boolean frame,
RubyModule implementationClass) |
static java.lang.invoke.MethodHandle |
finishAdapting(com.headius.invokebinder.SmartBinder binder,
RubyModule implementationClass,
String rubyName,
java.lang.invoke.MethodHandle method,
Class declaringClass,
Ruby runtime,
boolean isStatic,
boolean frame) |
DynamicMethod |
getAnnotatedMethod(RubyModule implementationClass,
JavaMethodDescriptor desc)
Use code generation to provide a method handle based on an annotated Java
method.
|
DynamicMethod |
getAnnotatedMethod(RubyModule implementationClass,
List<JavaMethodDescriptor> descs)
Use code generation to provide a method handle based on an annotated Java
method.
|
static com.headius.invokebinder.SmartBinder |
getBinder(int specific,
boolean b1,
boolean b2,
boolean b3) |
static com.headius.invokebinder.SmartBinder |
preAdaptHandle(int specificArity,
boolean isStatic,
boolean hasContext,
boolean hasBlock) |
endClass, getAnnotatedMethodClass, getPostMethod
createFactory
public static final com.headius.invokebinder.Signature VARIABLE_ARITY_SIGNATURE
public static final com.headius.invokebinder.Signature[] SPECIFIC_ARITY_SIGNATURES
public InvokeDynamicMethodFactory(ClassLoader classLoader)
public DynamicMethod getAnnotatedMethod(RubyModule implementationClass, List<JavaMethodDescriptor> descs)
InvocationMethodFactory
getAnnotatedMethod
in class InvocationMethodFactory
implementationClass
- The target class or module on which the method
will be bound.MethodFactory.getAnnotatedMethod(org.jruby.RubyModule, java.util.List<org.jruby.anno.JavaMethodDescriptor>)
public static com.headius.invokebinder.SmartBinder preAdaptHandle(int specificArity, boolean isStatic, boolean hasContext, boolean hasBlock)
public static java.lang.invoke.MethodHandle finishAdapting(com.headius.invokebinder.SmartBinder binder, RubyModule implementationClass, String rubyName, java.lang.invoke.MethodHandle method, Class declaringClass, Ruby runtime, boolean isStatic, boolean frame)
public static Callable<java.lang.invoke.MethodHandle> adaptHandle(java.lang.invoke.MethodHandle method, Ruby runtime, int actualRequired, int required, int optional, boolean rest, String rubyName, Class declaringClass, boolean isStatic, boolean hasContext, boolean hasBlock, boolean frame, RubyModule implementationClass)
public DynamicMethod getAnnotatedMethod(RubyModule implementationClass, JavaMethodDescriptor desc)
getAnnotatedMethod
in class InvocationMethodFactory
implementationClass
- The target class or module on which the method
will be bound.desc
- A JavaMethodDescriptor describing the target methodMethodFactory.getAnnotatedMethod(org.jruby.RubyModule, java.util.List<org.jruby.anno.JavaMethodDescriptor>)
public static com.headius.invokebinder.SmartBinder getBinder(int specific, boolean b1, boolean b2, boolean b3)
Copyright © 2001-2016 JRuby. All Rights Reserved.