This invoker uses MethodHandle for all bindings to Java code, rather than generating stubs or using reflection.
| constant | type | note |
|---|---|---|
| VARIABLE_ARITY_SIGNATURE | Signature | |
| SPECIFIC_ARITY_SIGNATURES | Signature[] |
<init>(ClassLoader classLoader)adaptHandle(java.lang.invoke.MethodHandle method, org.jruby.Ruby runtime, int actualRequired, int required, int optional, boolean rest, String rubyName, Class declaringClass, boolean isStatic, boolean hasContext, boolean hasBlock, boolean frame, org.jruby.RubyModule implementationClass)finishAdapting(com.headius.invokebinder.SmartBinder binder, org.jruby.RubyModule implementationClass, String rubyName, java.lang.invoke.MethodHandle method, Class declaringClass, org.jruby.Ruby runtime, boolean isStatic, boolean frame)getBinder(int specific, boolean b1, boolean b2, boolean b3)preAdaptHandle(int specificArity, boolean isStatic, boolean hasContext, boolean hasBlock)getAnnotatedMethod(org.jruby.RubyModule implementationClass, List<org.jruby.anno.JavaMethodDescriptor> descs, String name)getAnnotatedMethod(org.jruby.RubyModule implementationClass, org.jruby.anno.JavaMethodDescriptor desc, String name)Use code generation to provide a method handle based on an annotated Java method.
| field | type | note |
|---|---|---|
| ARGS_INDEX | int | The lvar index of the method args on the call |
| BLOCK_INDEX | int | The lvar index of the passed-in Block on the call |
| CLASS_INDEX | int | The lvar index of the RubyClass being invoked against |
| NAME_INDEX | int | The lvar index method name being invoked |
| RECEIVER_INDEX | int | The lvar index of the method-receiving object |
| THIS_INDEX | int | The lvar index of "this" |
| THREADCONTEXT_INDEX | int | The lvar index of the passed-in ThreadContext |
constructJavaMethod(org.jruby.RubyModule implementationClass, org.jruby.anno.JavaMethodDescriptor desc, String name, Class c)getAnnotatedMethodClass(List<org.jruby.anno.JavaMethodDescriptor> descs)Use code generation to provide a method handle based on an annotated Java method. Return the resulting generated or loaded class.
| field | type | note |
|---|---|---|
| AALOAD | int | |
| AASTORE | int | |
| ACC_ABSTRACT | int | |
| ACC_ANNOTATION | int | |
| ACC_BRIDGE | int | |
| ACC_DEPRECATED | int | |
| ACC_ENUM | int | |
| ACC_FINAL | int | |
| ACC_INTERFACE | int | |
| ACC_MANDATED | int | |
| ACC_MODULE | int | |
| ACC_NATIVE | int | |
| ACC_OPEN | int | |
| ACC_PRIVATE | int | |
| ACC_PROTECTED | int | |
| ACC_PUBLIC | int | |
| ACC_RECORD | int | |
| ACC_STATIC | int | |
| ACC_STATIC_PHASE | int | |
| ACC_STRICT | int | |
| ACC_SUPER | int | |
| ACC_SYNCHRONIZED | int | |
| ACC_SYNTHETIC | int | |
| ACC_TRANSIENT | int | |
| ACC_TRANSITIVE | int | |
| ACC_VARARGS | int | |
| ACC_VOLATILE | int | |
| ACONST_NULL | int | |
| ALOAD | int | |
| ANEWARRAY | int | |
| ARETURN | int | |
| ARRAYLENGTH | int | |
| ASM10_EXPERIMENTAL | int | |
| ASM4 | int | |
| ASM5 | int | |
| ASM6 | int | |
| ASM7 | int | |
| ASM8 | int | |
| ASM9 | int | |
| ASTORE | int | |
| ATHROW | int | |
| BALOAD | int | |
| BASTORE | int | |
| BIPUSH | int | |
| CALOAD | int | |
| CASTORE | int | |
| CHECKCAST | int | |
| D2F | int | |
| D2I | int | |
| D2L | int | |
| DADD | int | |
| DALOAD | int | |
| DASTORE | int | |
| DCMPG | int | |
| DCMPL | int | |
| DCONST_0 | int | |
| DCONST_1 | int | |
| DDIV | int | |
| DLOAD | int | |
| DMUL | int | |
| DNEG | int | |
| DOUBLE | Integer | |
| DREM | int | |
| DRETURN | int | |
| DSTORE | int | |
| DSUB | int | |
| DUP | int | |
| DUP2 | int | |
| DUP2_X1 | int | |
| DUP2_X2 | int | |
| DUP_X1 | int | |
| DUP_X2 | int | |
| F2D | int | |
| F2I | int | |
| F2L | int | |
| FADD | int | |
| FALOAD | int | |
| FASTORE | int | |
| FCMPG | int | |
| FCMPL | int | |
| FCONST_0 | int | |
| FCONST_1 | int | |
| FCONST_2 | int | |
| FDIV | int | |
| FLOAD | int | |
| FLOAT | Integer | |
| FMUL | int | |
| FNEG | int | |
| FREM | int | |
| FRETURN | int | |
| FSTORE | int | |
| FSUB | int | |
| F_APPEND | int | |
| F_CHOP | int | |
| F_FULL | int | |
| F_NEW | int | |
| F_SAME | int | |
| F_SAME1 | int | |
| GETFIELD | int | |
| GETSTATIC | int | |
| GOTO | int | |
| H_GETFIELD | int | |
| H_GETSTATIC | int | |
| H_INVOKEINTERFACE | int | |
| H_INVOKESPECIAL | int | |
| H_INVOKESTATIC | int | |
| H_INVOKEVIRTUAL | int | |
| H_NEWINVOKESPECIAL | int | |
| H_PUTFIELD | int | |
| H_PUTSTATIC | int | |
| I2B | int | |
| I2C | int | |
| I2D | int | |
| I2F | int | |
| I2L | int | |
| I2S | int | |
| IADD | int | |
| IALOAD | int | |
| IAND | int | |
| IASTORE | int | |
| ICONST_0 | int | |
| ICONST_1 | int | |
| ICONST_2 | int | |
| ICONST_3 | int | |
| ICONST_4 | int | |
| ICONST_5 | int | |
| ICONST_M1 | int | |
| IDIV | int | |
| IFEQ | int | |
| IFGE | int | |
| IFGT | int | |
| IFLE | int | |
| IFLT | int | |
| IFNE | int | |
| IFNONNULL | int | |
| IFNULL | int | |
| IF_ACMPEQ | int | |
| IF_ACMPNE | int | |
| IF_ICMPEQ | int | |
| IF_ICMPGE | int | |
| IF_ICMPGT | int | |
| IF_ICMPLE | int | |
| IF_ICMPLT | int | |
| IF_ICMPNE | int | |
| IINC | int | |
| ILOAD | int | |
| IMUL | int | |
| INEG | int | |
| INSTANCEOF | int | |
| INTEGER | Integer | |
| INVOKEDYNAMIC | int | |
| INVOKEINTERFACE | int | |
| INVOKESPECIAL | int | |
| INVOKESTATIC | int | |
| INVOKEVIRTUAL | int | |
| IOR | int | |
| IREM | int | |
| IRETURN | int | |
| ISHL | int | |
| ISHR | int | |
| ISTORE | int | |
| ISUB | int | |
| IUSHR | int | |
| IXOR | int | |
| JSR | int | |
| L2D | int | |
| L2F | int | |
| L2I | int | |
| LADD | int | |
| LALOAD | int | |
| LAND | int | |
| LASTORE | int | |
| LCMP | int | |
| LCONST_0 | int | |
| LCONST_1 | int | |
| LDC | int | |
| LDIV | int | |
| LLOAD | int | |
| LMUL | int | |
| LNEG | int | |
| LONG | Integer | |
| LOOKUPSWITCH | int | |
| LOR | int | |
| LREM | int | |
| LRETURN | int | |
| LSHL | int | |
| LSHR | int | |
| LSTORE | int | |
| LSUB | int | |
| LUSHR | int | |
| LXOR | int | |
| MONITORENTER | int | |
| MONITOREXIT | int | |
| MULTIANEWARRAY | int | |
| NEW | int | |
| NEWARRAY | int | |
| NOP | int | |
| NULL | Integer | |
| POP | int | |
| POP2 | int | |
| PUTFIELD | int | |
| PUTSTATIC | int | |
| RET | int | |
| RETURN | int | |
| SALOAD | int | |
| SASTORE | int | |
| SIPUSH | int | |
| SOURCE_DEPRECATED | int | |
| SOURCE_MASK | int | |
| SWAP | int | |
| TABLESWITCH | int | |
| TOP | Integer | |
| T_BOOLEAN | int | |
| T_BYTE | int | |
| T_CHAR | int | |
| T_DOUBLE | int | |
| T_FLOAT | int | |
| T_INT | int | |
| T_LONG | int | |
| T_SHORT | int | |
| UNINITIALIZED_THIS | Integer | |
| V10 | int | |
| V11 | int | |
| V12 | int | |
| V13 | int | |
| V14 | int | |
| V15 | int | |
| V16 | int | |
| V17 | int | |
| V18 | int | |
| V19 | int | |
| V1_1 | int | |
| V1_2 | int | |
| V1_3 | int | |
| V1_4 | int | |
| V1_5 | int | |
| V1_6 | int | |
| V1_7 | int | |
| V1_8 | int | |
| V20 | int | |
| V21 | int | |
| V22 | int | |
| V23 | int | |
| V24 | int | |
| V9 | int | |
| V_PREVIEW | int |