public class InvokeDynamicMethodFactory extends InvocationMethodFactory
MethodFactory
MethodFactory.MethodDefiningCallback
Modifier and Type | Field and Description |
---|---|
static com.headius.invokebinder.Signature |
ARITY_CHECK_FOLD |
static com.headius.invokebinder.Signature |
ARITY_CHECK_SIGNATURE |
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
CAN_LOAD_BYTECODE, COMPILED_METHOD_PARAMS
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, 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, 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
Constructor and Description |
---|
InvokeDynamicMethodFactory(ClassLoader classLoader) |
Modifier and Type | Method and Description |
---|---|
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.
|
DynamicMethod |
getCompiledMethod(RubyModule implementationClass,
String rubyName,
String javaName,
Arity arity,
Visibility visibility,
StaticScope scope,
Object scriptObject,
CallConfiguration callConfig,
ISourcePosition position,
String parameterDesc)
Use JSR292 to provide a method handle for a compiled Ruby method.
|
DynamicMethod |
getCompiledMethodLazily(RubyModule implementationClass,
String rubyName,
String javaName,
Arity arity,
Visibility visibility,
StaticScope scope,
Object scriptObject,
CallConfiguration callConfig,
ISourcePosition position,
String parameterDesc)
Use code generation to provide a method handle for a compiled Ruby method.
|
byte[] |
getCompiledMethodOffline(String rubyName,
String javaName,
String className,
String invokerPath,
Arity arity,
StaticScope scope,
CallConfiguration callConfig,
String filename,
int line)
Use code generation to provide a method handle for a compiled Ruby method.
|
endCall, endCallOffline, endCallWithBytes, endClass, endClassOffline, endClassWithBytes, getAnnotatedMethodClass, getBlockCallback, getBlockCallback19, getBlockCallback19Offline, getBlockCallbackName, getBlockCallbackOffline, getCompiledCallbackName, getPostMethod, prepareAnnotatedMethod
createFactory
public static final com.headius.invokebinder.Signature VARIABLE_ARITY_SIGNATURE
public static final com.headius.invokebinder.Signature ARITY_CHECK_FOLD
public static final com.headius.invokebinder.Signature ARITY_CHECK_SIGNATURE
public static final com.headius.invokebinder.Signature[] SPECIFIC_ARITY_SIGNATURES
public InvokeDynamicMethodFactory(ClassLoader classLoader)
public DynamicMethod getCompiledMethodLazily(RubyModule implementationClass, String rubyName, String javaName, Arity arity, Visibility visibility, StaticScope scope, Object scriptObject, CallConfiguration callConfig, ISourcePosition position, String parameterDesc)
getCompiledMethodLazily
in class InvocationMethodFactory
implementationClass
- The class to which the method will be bound.rubyName
- The Ruby method name to which the method will bindjavaName
- The name of the methodarity
- The Arity of the methodvisibility
- The method's visibility on the target type.scope
- The methods static scoping information.scriptObject
- An instace of the target compiled method class.callConfig
- The call configuration to use for this method.MethodFactory.getCompiledMethod(org.jruby.RubyModule, java.lang.String, java.lang.String, org.jruby.runtime.Arity, org.jruby.runtime.Visibility, org.jruby.parser.StaticScope, java.lang.Object, org.jruby.internal.runtime.methods.CallConfiguration, org.jruby.lexer.yacc.ISourcePosition, java.lang.String)
public DynamicMethod getCompiledMethod(RubyModule implementationClass, String rubyName, String javaName, Arity arity, Visibility visibility, StaticScope scope, Object scriptObject, CallConfiguration callConfig, ISourcePosition position, String parameterDesc)
getCompiledMethod
in class InvocationMethodFactory
implementationClass
- The class to which the method will be bound.rubyName
- The Ruby method name to which the method will bindjavaName
- The name of the methodarity
- The Arity of the methodvisibility
- The method's visibility on the target type.scope
- The methods static scoping information.scriptObject
- An instace of the target compiled method class.callConfig
- The call configuration to use for this method.position
- The position to use when generating traceable handles.MethodFactory.getCompiledMethod(org.jruby.RubyModule, java.lang.String, java.lang.String, org.jruby.runtime.Arity, org.jruby.runtime.Visibility, org.jruby.parser.StaticScope, java.lang.Object, org.jruby.internal.runtime.methods.CallConfiguration, org.jruby.lexer.yacc.ISourcePosition, java.lang.String)
public byte[] getCompiledMethodOffline(String rubyName, String javaName, String className, String invokerPath, Arity arity, StaticScope scope, CallConfiguration callConfig, String filename, int line)
InvocationMethodFactory
getCompiledMethodOffline
in class InvocationMethodFactory
rubyName
- The Ruby method name to which the method will bindjavaName
- The name of the methodclassName
- The path-like (with / instead of .) name of the classinvokerPath
- The path-line name of the invoker to generatearity
- The Arity of the methodscope
- The methods static scoping information.callConfig
- The call configuration to use for this method.MethodFactory.getCompiledMethod(org.jruby.RubyModule, java.lang.String, java.lang.String, org.jruby.runtime.Arity, org.jruby.runtime.Visibility, org.jruby.parser.StaticScope, java.lang.Object, org.jruby.internal.runtime.methods.CallConfiguration, org.jruby.lexer.yacc.ISourcePosition, java.lang.String)
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 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>)
Copyright © 2001-2013 JRuby. All Rights Reserved.