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, COMPILED_BLOCK_19_INTERFACE, COMPILED_BLOCK_19_INTERFACE_NAME, 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_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 |
---|---|
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,
Visibility visibility,
StaticScope scope,
Object scriptObject,
CallConfiguration callConfig,
ISourcePosition position,
String parameterDesc,
MethodNodes methodNodes)
Use JSR292 to provide a method handle for a compiled Ruby method.
|
DynamicMethod |
getCompiledMethodLazily(RubyModule implementationClass,
String rubyName,
String javaName,
Visibility visibility,
StaticScope scope,
Object scriptObject,
CallConfiguration callConfig,
ISourcePosition position,
String parameterDesc,
MethodNodes methodNodes)
Use code generation to provide a method handle for a compiled Ruby method.
|
byte[] |
getCompiledMethodOffline(String rubyName,
String javaName,
String className,
String invokerPath,
StaticScope scope,
CallConfiguration callConfig,
String filename,
int line,
MethodNodes methodNodes)
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, safeFixedSignature
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, Visibility visibility, StaticScope scope, Object scriptObject, CallConfiguration callConfig, ISourcePosition position, String parameterDesc, MethodNodes methodNodes)
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 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.Visibility, org.jruby.parser.StaticScope, java.lang.Object, org.jruby.internal.runtime.methods.CallConfiguration, org.jruby.lexer.yacc.ISourcePosition, java.lang.String, org.jruby.internal.runtime.methods.MethodNodes)
public DynamicMethod getCompiledMethod(RubyModule implementationClass, String rubyName, String javaName, Visibility visibility, StaticScope scope, Object scriptObject, CallConfiguration callConfig, ISourcePosition position, String parameterDesc, MethodNodes methodNodes)
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 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.Visibility, org.jruby.parser.StaticScope, java.lang.Object, org.jruby.internal.runtime.methods.CallConfiguration, org.jruby.lexer.yacc.ISourcePosition, java.lang.String, org.jruby.internal.runtime.methods.MethodNodes)
public byte[] getCompiledMethodOffline(String rubyName, String javaName, String className, String invokerPath, StaticScope scope, CallConfiguration callConfig, String filename, int line, MethodNodes methodNodes)
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 generatescope
- The methods static scoping information.callConfig
- The call configuration to use for this method.filename
- The position to use when generating traceable handles.line
- The position to use when generating traceable handles.MethodFactory.getCompiledMethod(org.jruby.RubyModule, java.lang.String, java.lang.String, 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, org.jruby.internal.runtime.methods.MethodNodes)
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-2015 JRuby. All Rights Reserved.