public abstract class RubyToJavaInvoker extends JavaMethod
JavaMethod.JavaMethodN, JavaMethod.JavaMethodNBlock, JavaMethod.JavaMethodOne, JavaMethod.JavaMethodOneBlock, JavaMethod.JavaMethodOneOrN, JavaMethod.JavaMethodOneOrNBlock, JavaMethod.JavaMethodOneOrTwo, JavaMethod.JavaMethodOneOrTwoBlock, JavaMethod.JavaMethodOneOrTwoOrN, JavaMethod.JavaMethodOneOrTwoOrNBlock, JavaMethod.JavaMethodOneOrTwoOrThree, JavaMethod.JavaMethodOneOrTwoOrThreeBlock, JavaMethod.JavaMethodOneOrTwoOrThreeOrN, JavaMethod.JavaMethodOneOrTwoOrThreeOrNBlock, JavaMethod.JavaMethodThree, JavaMethod.JavaMethodThreeBlock, JavaMethod.JavaMethodThreeOrN, JavaMethod.JavaMethodThreeOrNBlock, JavaMethod.JavaMethodTwo, JavaMethod.JavaMethodTwoBlock, JavaMethod.JavaMethodTwoOrN, JavaMethod.JavaMethodTwoOrNBlock, JavaMethod.JavaMethodTwoOrThree, JavaMethod.JavaMethodTwoOrThreeBlock, JavaMethod.JavaMethodTwoOrThreeOrN, JavaMethod.JavaMethodTwoOrThreeOrNBlock, JavaMethod.JavaMethodZero, JavaMethod.JavaMethodZeroBlock, JavaMethod.JavaMethodZeroOrN, JavaMethod.JavaMethodZeroOrNBlock, JavaMethod.JavaMethodZeroOrOne, JavaMethod.JavaMethodZeroOrOneBlock, JavaMethod.JavaMethodZeroOrOneOrN, JavaMethod.JavaMethodZeroOrOneOrNBlock, JavaMethod.JavaMethodZeroOrOneOrTwo, JavaMethod.JavaMethodZeroOrOneOrTwoBlock, JavaMethod.JavaMethodZeroOrOneOrTwoOrN, JavaMethod.JavaMethodZeroOrOneOrTwoOrNBlock, JavaMethod.JavaMethodZeroOrOneOrTwoOrThree, JavaMethod.JavaMethodZeroOrOneOrTwoOrThreeBlock, JavaMethod.JavaMethodZeroOrOneOrTwoOrThreeOrN, JavaMethod.JavaMethodZeroOrOneOrTwoOrThreeOrNBlockDynamicMethod.NativeCall| Modifier and Type | Field and Description |
|---|---|
(package private) IntHashMap<JavaCallable> |
cache |
protected JavaCallable |
javaCallable |
protected JavaCallable[][] |
javaCallables |
protected JavaCallable[] |
javaVarargsCallables |
private java.lang.reflect.Member[] |
members |
protected int |
minVarargsArity |
(package private) static IntHashMap<JavaCallable> |
NULL_CACHE |
private Ruby |
runtime |
arity, BLOCK_METHODS, BLOCK_REST_METHODS, METHODS, REST_METHODS, staticScopebuiltin, callConfig, handle, implementationClass, name, nativeCall, nativeCalls, notImplemented, protectedClass, serialNumber, visibility| Constructor and Description |
|---|
RubyToJavaInvoker(RubyModule host,
java.lang.reflect.Member[] members) |
| Modifier and Type | Method and Description |
|---|---|
(package private) static JavaProxy |
castJavaProxy(IRubyObject self) |
private void |
checkCallableArity(JavaCallable callable,
int expected) |
static java.lang.Object[] |
convertArguments(ParameterTypes method,
IRubyObject[] args) |
private static java.lang.Object |
convertVarArgumentsOnly(java.lang.Class<?> varArrayType,
int varStart,
IRubyObject[] args) |
protected abstract JavaCallable |
createCallable(Ruby runtime,
java.lang.reflect.Member member) |
protected abstract JavaCallable[] |
createCallableArray(int size) |
protected abstract JavaCallable[] |
createCallableArray(JavaCallable callable) |
protected abstract JavaCallable[][] |
createCallableArrayArray(int size) |
protected JavaCallable |
findCallable(IRubyObject self,
java.lang.String name,
IRubyObject[] args,
int arity) |
protected JavaCallable |
findCallableArityFour(IRubyObject self,
java.lang.String name,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2,
IRubyObject arg3) |
protected JavaCallable |
findCallableArityOne(IRubyObject self,
java.lang.String name,
IRubyObject arg0) |
protected JavaCallable |
findCallableArityThree(IRubyObject self,
java.lang.String name,
IRubyObject arg0,
IRubyObject arg1,
IRubyObject arg2) |
protected JavaCallable |
findCallableArityTwo(IRubyObject self,
java.lang.String name,
IRubyObject arg0,
IRubyObject arg1) |
protected JavaCallable |
findCallableArityZero(IRubyObject self,
java.lang.String name) |
private static java.lang.String |
formatReceiver(IRubyObject object) |
protected java.lang.reflect.AccessibleObject[] |
getAccessibleObjects() |
private static java.lang.Class<?> |
getClass(IRubyObject object) |
protected abstract java.lang.Class[] |
getMemberParameterTypes(java.lang.reflect.Member member) |
protected java.lang.reflect.Member[] |
getMembers() |
private boolean |
isConstructor() |
protected abstract boolean |
isMemberVarArgs(java.lang.reflect.Member member) |
private JavaCallable |
matchVarArgsCallableArityN(IRubyObject self,
IRubyObject[] args) |
(package private) RaiseException |
newErrorDueArgumentTypeMismatch(IRubyObject receiver,
JavaCallable[] methods,
IRubyObject... args) |
private RaiseException |
newErrorDueNoMatchingCallable(IRubyObject receiver,
java.lang.String name) |
private boolean |
setNativeCallIfPublic(java.lang.reflect.Method method) |
private JavaCallable |
someCallable() |
(package private) static void |
trySetAccessible(java.lang.reflect.AccessibleObject... accesibles) |
callTrace, callTraceCompiled, checkArgumentCount, dup, getArity, getJavaName, getParameterList, getStaticScope, init, isNative, isSingleton, postBacktraceAndScope, postBacktraceDummyScope, postBacktraceOnly, postFrameAndScope, postFrameOnly, postNoFrameDummyScope, postNoop, postScopeOnly, preBacktraceAndScope, preBacktraceDummyScope, preBacktraceOnly, preFrameAndDummyScope, preFrameAndScope, preFrameOnly, preNoFrameDummyScope, preNoop, preScopeOnly, raiseArgumentError, returnTrace, returnTraceCompiled, setArity, setJavaName, setParameterDesc, setParameterList, setSingletoncalculateProtectedClass, call, call, call, call, call, call, call, call, call, call, getCallConfig, getHandle, getImplementationClass, getMethodData, getName, getNativeCall, getNativeCall, getProtectedClass, getRealMethod, getSerialNumber, getVisibility, handleBreak, handleRedo, handleReturn, init, isBuiltin, isCallableFrom, isNotImplemented, isUndefined, setCallConfig, setHandle, setImplementationClass, setIsBuiltin, setName, setNativeCall, setNativeCall, setNativeCall, setNotImplemented, setVisibilitystatic final IntHashMap<JavaCallable> NULL_CACHE
protected final JavaCallable javaCallable
protected final JavaCallable[][] javaCallables
protected final JavaCallable[] javaVarargsCallables
protected final int minVarargsArity
final IntHashMap<JavaCallable> cache
private final Ruby runtime
private final java.lang.reflect.Member[] members
RubyToJavaInvoker(RubyModule host, java.lang.reflect.Member[] members)
private boolean setNativeCallIfPublic(java.lang.reflect.Method method)
protected final java.lang.reflect.Member[] getMembers()
protected java.lang.reflect.AccessibleObject[] getAccessibleObjects()
protected abstract JavaCallable createCallable(Ruby runtime, java.lang.reflect.Member member)
protected abstract JavaCallable[] createCallableArray(JavaCallable callable)
protected abstract JavaCallable[] createCallableArray(int size)
protected abstract JavaCallable[][] createCallableArrayArray(int size)
protected abstract java.lang.Class[] getMemberParameterTypes(java.lang.reflect.Member member)
protected abstract boolean isMemberVarArgs(java.lang.reflect.Member member)
public static java.lang.Object[] convertArguments(ParameterTypes method, IRubyObject[] args)
private static java.lang.Object convertVarArgumentsOnly(java.lang.Class<?> varArrayType,
int varStart,
IRubyObject[] args)
static JavaProxy castJavaProxy(IRubyObject self)
static void trySetAccessible(java.lang.reflect.AccessibleObject... accesibles)
protected JavaCallable findCallable(IRubyObject self, java.lang.String name, IRubyObject[] args, int arity)
private JavaCallable matchVarArgsCallableArityN(IRubyObject self, IRubyObject[] args)
protected final JavaCallable findCallableArityZero(IRubyObject self, java.lang.String name)
protected final JavaCallable findCallableArityOne(IRubyObject self, java.lang.String name, IRubyObject arg0)
protected final JavaCallable findCallableArityTwo(IRubyObject self, java.lang.String name, IRubyObject arg0, IRubyObject arg1)
protected final JavaCallable findCallableArityThree(IRubyObject self, java.lang.String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2)
protected final JavaCallable findCallableArityFour(IRubyObject self, java.lang.String name, IRubyObject arg0, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3)
private void checkCallableArity(JavaCallable callable, int expected)
private JavaCallable someCallable()
private boolean isConstructor()
RaiseException newErrorDueArgumentTypeMismatch(IRubyObject receiver, JavaCallable[] methods, IRubyObject... args)
private RaiseException newErrorDueNoMatchingCallable(IRubyObject receiver, java.lang.String name)
private static java.lang.Class<?> getClass(IRubyObject object)
private static java.lang.String formatReceiver(IRubyObject object)