jruby/docs BETA
Navigation
org.jruby.internal.runtime.methods 34
C AliasMethod
C AttrReaderMethod
C AttrWriterMethod
I CacheableMethod
E CallConfiguration
C CompiledIRMethod
C CompiledIRNoProtocolMethod
C DefineMethodMethod
C DelegatingDynamicMethod
C DescriptorInfo
C DumpingInvocationMethodFactory
C DynamicMethod
C ExitableReturn
E Framing
C HandleMethod
I IRMethodArgs
C InterpretedIRBodyMethod
C InterpretedIRMethod
C InvocationMethodFactory
C InvokeDynamicMethodFactory
C JavaMethod
I MethodArgs2
C MethodMethod
C MixedModeIRMethod
I NativeCallMethod
C NullMethod
C PartialDelegatingMethod
C ProcMethod
C ProfilingDynamicMethod
C RefinedMarker
C RefinedWrapper
E Scoping
C SynchronizedDynamicMethod
C UndefinedMethod
InvokeDynamicMethodFactory — members 9+
F VARIABLE_ARITY_SIGNATURE() Signature
F SPECIFIC_ARITY_SIGNATURES() Signature[]
C new(class_loader)
M adapt_handle(method, runtime, actual_required, required, optional, rest, ruby_name, declaring_class, is_static, has_context, has_block, frame, implementation_class) MethodHandle>
M finish_adapting(binder, implementation_class, ruby_name, method, declaring_class, runtime, is_static, frame) MethodHandle
M get_annotated_method(implementation_class, descs, name) DynamicMethod
M get_annotated_method(implementation_class, desc, name) DynamicMethod
M get_binder(specific, b1, b2, b3) SmartBinder
M pre_adapt_handle(specific_arity, is_static, has_context, has_block) SmartBinder
from InvocationMethodFactory
F ARGS_INDEX int
F BLOCK_INDEX int
F CLASS_INDEX int
F NAME_INDEX int
F RECEIVER_INDEX int
F THIS_INDEX int
F THREADCONTEXT_INDEX int
M construct_java_method(implementation_class, desc, name, c) JavaMethod
M get_annotated_method_class(descs) Class
from Opcodes
F AALOAD int
F AASTORE int
F ACC_ABSTRACT int
F ACC_ANNOTATION int
F ACC_BRIDGE int
F ACC_DEPRECATED int
F ACC_ENUM int
F ACC_FINAL int
F ACC_INTERFACE int
F ACC_MANDATED int
F ACC_MODULE int
F ACC_NATIVE int
F ACC_OPEN int
F ACC_PRIVATE int
F ACC_PROTECTED int
F ACC_PUBLIC int
F ACC_RECORD int
F ACC_STATIC int
F ACC_STATIC_PHASE int
F ACC_STRICT int
F ACC_SUPER int
F ACC_SYNCHRONIZED int
F ACC_SYNTHETIC int
F ACC_TRANSIENT int
F ACC_TRANSITIVE int
F ACC_VARARGS int
F ACC_VOLATILE int
F ACONST_NULL int
F ALOAD int
F ANEWARRAY int
F ARETURN int
F ARRAYLENGTH int
F ASM10_EXPERIMENTAL int
F ASM4 int
F ASM5 int
F ASM6 int
F ASM7 int
F ASM8 int
F ASM9 int
F ASTORE int
F ATHROW int
F BALOAD int
F BASTORE int
F BIPUSH int
F CALOAD int
F CASTORE int
F CHECKCAST int
F D2F int
F D2I int
F D2L int
F DADD int
F DALOAD int
F DASTORE int
F DCMPG int
F DCMPL int
F DCONST_0 int
F DCONST_1 int
F DDIV int
F DLOAD int
F DMUL int
F DNEG int
F DOUBLE Integer
F DREM int
F DRETURN int
F DSTORE int
F DSUB int
F DUP int
F DUP2 int
F DUP2_X1 int
F DUP2_X2 int
F DUP_X1 int
F DUP_X2 int
F F2D int
F F2I int
F F2L int
F FADD int
F FALOAD int
F FASTORE int
F FCMPG int
F FCMPL int
F FCONST_0 int
F FCONST_1 int
F FCONST_2 int
F FDIV int
F FLOAD int
F FLOAT Integer
F FMUL int
F FNEG int
F FREM int
F FRETURN int
F FSTORE int
F FSUB int
F F_APPEND int
F F_CHOP int
F F_FULL int
F F_NEW int
F F_SAME int
F F_SAME1 int
F GETFIELD int
F GETSTATIC int
F GOTO int
F H_GETFIELD int
F H_GETSTATIC int
F H_INVOKEINTERFACE int
F H_INVOKESPECIAL int
F H_INVOKESTATIC int
F H_INVOKEVIRTUAL int
F H_NEWINVOKESPECIAL int
F H_PUTFIELD int
F H_PUTSTATIC int
F I2B int
F I2C int
F I2D int
F I2F int
F I2L int
F I2S int
F IADD int
F IALOAD int
F IAND int
F IASTORE int
F ICONST_0 int
F ICONST_1 int
F ICONST_2 int
F ICONST_3 int
F ICONST_4 int
F ICONST_5 int
F ICONST_M1 int
F IDIV int
F IFEQ int
F IFGE int
F IFGT int
F IFLE int
F IFLT int
F IFNE int
F IFNONNULL int
F IFNULL int
F IF_ACMPEQ int
F IF_ACMPNE int
F IF_ICMPEQ int
F IF_ICMPGE int
F IF_ICMPGT int
F IF_ICMPLE int
F IF_ICMPLT int
F IF_ICMPNE int
F IINC int
F ILOAD int
F IMUL int
F INEG int
F INSTANCEOF int
F INTEGER Integer
F INVOKEDYNAMIC int
F INVOKEINTERFACE int
F INVOKESPECIAL int
F INVOKESTATIC int
F INVOKEVIRTUAL int
F IOR int
F IREM int
F IRETURN int
F ISHL int
F ISHR int
F ISTORE int
F ISUB int
F IUSHR int
F IXOR int
F JSR int
F L2D int
F L2F int
F L2I int
F LADD int
F LALOAD int
F LAND int
F LASTORE int
F LCMP int
F LCONST_0 int
F LCONST_1 int
F LDC int
F LDIV int
F LLOAD int
F LMUL int
F LNEG int
F LONG Integer
F LOOKUPSWITCH int
F LOR int
F LREM int
F LRETURN int
F LSHL int
F LSHR int
F LSTORE int
F LSUB int
F LUSHR int
F LXOR int
F MONITORENTER int
F MONITOREXIT int
F MULTIANEWARRAY int
F NEW int
F NEWARRAY int
F NOP int
F NULL Integer
F POP int
F POP2 int
F PUTFIELD int
F PUTSTATIC int
F RET int
F RETURN int
F SALOAD int
F SASTORE int
F SIPUSH int
F SOURCE_DEPRECATED int
F SOURCE_MASK int
F SWAP int
F TABLESWITCH int
F TOP Integer
F T_BOOLEAN int
F T_BYTE int
F T_CHAR int
F T_DOUBLE int
F T_FLOAT int
F T_INT int
F T_LONG int
F T_SHORT int
F UNINITIALIZED_THIS Integer
F V10 int
F V11 int
F V12 int
F V13 int
F V14 int
F V15 int
F V16 int
F V17 int
F V18 int
F V19 int
F V1_1 int
F V1_2 int
F V1_3 int
F V1_4 int
F V1_5 int
F V1_6 int
F V1_7 int
F V1_8 int
F V20 int
F V21 int
F V22 int
F V23 int
F V24 int
F V9 int
F V_PREVIEW int

org.jruby.internal.runtime.methods.InvokeDynamicMethodFactory

class extends InvocationMethodFactory 9 members

This invoker uses MethodHandle for all bindings to Java code, rather than generating stubs or using reflection.

Constants

constanttypenote
VARIABLE_ARITY_SIGNATURE Signature
SPECIFIC_ARITY_SIGNATURES Signature[]

Constructors

new

new ( ClassLoader class_loader )
Java: <init>(ClassLoader classLoader)

Class Methods

adapt_handle

Supplier<MethodHandle> adapt_handle ( MethodHandle method, Ruby runtime, int actual_required, int required, int optional, boolean rest, String ruby_name, Class declaring_class, boolean is_static, boolean has_context, boolean has_block, boolean frame, RubyModule implementation_class )
Java: 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)

finish_adapting

MethodHandle finish_adapting ( SmartBinder binder, RubyModule implementation_class, String ruby_name, MethodHandle method, Class declaring_class, Ruby runtime, boolean is_static, boolean frame )
Java: 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)

get_binder

SmartBinder get_binder ( int specific, boolean b1, boolean b2, boolean b3 )
Java: getBinder(int specific, boolean b1, boolean b2, boolean b3)

pre_adapt_handle

SmartBinder pre_adapt_handle ( int specific_arity, boolean is_static, boolean has_context, boolean has_block )
Java: preAdaptHandle(int specificArity, boolean isStatic, boolean hasContext, boolean hasBlock)

Instance Methods

get_annotated_method

DynamicMethod get_annotated_method ( RubyModule implementation_class, List<JavaMethodDescriptor> descs, String name )
Java: getAnnotatedMethod(org.jruby.RubyModule implementationClass, List<org.jruby.anno.JavaMethodDescriptor> descs, String name)

get_annotated_method

DynamicMethod get_annotated_method ( RubyModule implementation_class, JavaMethodDescriptor desc, String name )
Java: 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.

Inherited

from InvocationMethodFactory

fieldtypenote
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

construct_java_method

JavaMethod construct_java_method ( RubyModule implementation_class, JavaMethodDescriptor desc, String name, Class c )
Java: constructJavaMethod(org.jruby.RubyModule implementationClass, org.jruby.anno.JavaMethodDescriptor desc, String name, Class c)

get_annotated_method_class

Class get_annotated_method_class ( List<JavaMethodDescriptor> descs )
Java: 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.

from Opcodes

fieldtypenote
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
Copyright (C) 2012 The JRuby Community <www.jruby.org>