public abstract class DelegatingDynamicMethod extends DynamicMethod
DynamicMethod.NativeCall
Modifier and Type | Field and Description |
---|---|
protected DynamicMethod |
delegate |
builtin, callConfig, handle, implementationClass, name, nativeCall, nativeCalls, notImplemented, protectedClass, serialNumber, visibility
Constructor and Description |
---|
DelegatingDynamicMethod(DynamicMethod delegate) |
Modifier and Type | Method and Description |
---|---|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule klazz,
String name)
Arity 0, no block
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule klazz,
String name,
Block block)
Arity 0, with block; calls through IRubyObject[] path
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule klazz,
String name,
IRubyObject arg)
Arity 1, no block
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule klazz,
String name,
IRubyObject[] args)
A default implementation of n-arity, non-block 'call' method,
which simply calls the n-arity, block-receiving version with
the arg list and Block.NULL_BLOCK.
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule klazz,
String name,
IRubyObject[] args,
Block block)
The minimum 'call' method required for a dynamic method handle.
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule klazz,
String name,
IRubyObject arg1,
Block block)
Arity 1, with block; calls through IRubyObject[] path
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule klazz,
String name,
IRubyObject arg1,
IRubyObject arg2)
Arity 2, no block
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule klazz,
String name,
IRubyObject arg1,
IRubyObject arg2,
Block block)
Arity 2, with block; calls through IRubyObject[] path
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule klazz,
String name,
IRubyObject arg1,
IRubyObject arg2,
IRubyObject arg3)
Arity 3, no block
|
IRubyObject |
call(ThreadContext context,
IRubyObject self,
RubyModule klazz,
String name,
IRubyObject arg1,
IRubyObject arg2,
IRubyObject arg3,
Block block)
Arity 3, with block; calls through IRubyObject[] path
|
boolean |
equals(Object other) |
Arity |
getArity()
Retrieve the arity of this method, used for reporting arity to Ruby
code.
|
CallConfiguration |
getCallConfig()
Get the CallConfiguration used for pre/post logic for this method handle.
|
DynamicMethod |
getDelegate() |
RubyModule |
getImplementationClass()
Retrieve the class or module on which this method is implemented, used
for 'super' logic among others.
|
DynamicMethod.NativeCall |
getNativeCall() |
protected RubyModule |
getProtectedClass()
Retrieve the pre-calculated "protected class" used for access checks.
|
DynamicMethod |
getRealMethod()
Get the "real" method contained within this method.
|
long |
getSerialNumber()
Get the global serial number for this method object
|
Visibility |
getVisibility()
Get the visibility of this method.
|
boolean |
isBuiltin() |
boolean |
isCallableFrom(IRubyObject caller,
CallType callType)
Determine whether this method is callable from the given object using
the given call type.
|
boolean |
isNative()
Returns true if this method is backed by native (i.e.
|
void |
setCallConfig(CallConfiguration callConfig)
Set the CallConfiguration used for pre/post logic for this method handle.
|
void |
setImplementationClass(RubyModule implClass)
Set the class on which this method is implemented, used for 'super'
logic, among others.
|
void |
setIsBuiltin(boolean isBuiltin) |
void |
setNativeCall(Class nativeTarget,
String nativeName,
Class nativeReturn,
Class[] nativeSignature,
boolean statik)
Set the single-arity NativeCall for this method.
|
void |
setVisibility(Visibility visibility)
Set the visibility of this method.
|
calculateProtectedClass, dup, getHandle, getMethodData, getName, getNativeCall, handleBreak, handleRedo, handleReturn, init, isNotImplemented, isUndefined, setHandle, setName, setNativeCall, setNativeCall, setNotImplemented
protected final DynamicMethod delegate
public DelegatingDynamicMethod(DynamicMethod delegate)
public DynamicMethod getDelegate()
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name)
DynamicMethod
call
in class DynamicMethod
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, IRubyObject arg)
DynamicMethod
call
in class DynamicMethod
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, IRubyObject arg1, IRubyObject arg2)
DynamicMethod
call
in class DynamicMethod
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3)
DynamicMethod
call
in class DynamicMethod
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, IRubyObject[] args)
DynamicMethod
call
in class DynamicMethod
context
- The thread context for the currently executing threadself
- The 'self' or 'receiver' object to use for this callname
- The incoming name used to invoke this methodpublic IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, Block block)
DynamicMethod
call
in class DynamicMethod
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, IRubyObject arg1, Block block)
DynamicMethod
call
in class DynamicMethod
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, IRubyObject arg1, IRubyObject arg2, Block block)
DynamicMethod
call
in class DynamicMethod
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, IRubyObject arg1, IRubyObject arg2, IRubyObject arg3, Block block)
DynamicMethod
call
in class DynamicMethod
public IRubyObject call(ThreadContext context, IRubyObject self, RubyModule klazz, String name, IRubyObject[] args, Block block)
DynamicMethod
call
in class DynamicMethod
context
- The thread context for the currently executing threadself
- The 'self' or 'receiver' object to use for this callname
- The incoming name used to invoke this methodargs
- The argument list to this invocationblock
- The block passed to this invocationpublic void setVisibility(Visibility visibility)
DynamicMethod
setVisibility
in class DynamicMethod
visibility
- The visibility of this methodpublic void setNativeCall(Class nativeTarget, String nativeName, Class nativeReturn, Class[] nativeSignature, boolean statik)
DynamicMethod
setNativeCall
in class DynamicMethod
nativeTarget
- native method targetnativeName
- native method namenativeReturn
- native method returnnativeSignature
- native method argumentsstatik
- static?public void setIsBuiltin(boolean isBuiltin)
setIsBuiltin
in class DynamicMethod
public void setImplementationClass(RubyModule implClass)
DynamicMethod
setImplementationClass
in class DynamicMethod
implClass
- The class on which this method is implementedpublic void setCallConfig(CallConfiguration callConfig)
DynamicMethod
setCallConfig
in class DynamicMethod
callConfig
- The CallConfiguration for this method handlepublic boolean isNative()
DynamicMethod
isNative
in class DynamicMethod
public boolean isCallableFrom(IRubyObject caller, CallType callType)
DynamicMethod
isCallableFrom
in class DynamicMethod
caller
- The calling objectcallType
- The type of callpublic boolean isBuiltin()
isBuiltin
in class DynamicMethod
public Visibility getVisibility()
DynamicMethod
getVisibility
in class DynamicMethod
public long getSerialNumber()
DynamicMethod
getSerialNumber
in class DynamicMethod
public DynamicMethod getRealMethod()
DynamicMethod
getRealMethod
in class DynamicMethod
protected RubyModule getProtectedClass()
DynamicMethod
getProtectedClass
in class DynamicMethod
public DynamicMethod.NativeCall getNativeCall()
getNativeCall
in class DynamicMethod
public RubyModule getImplementationClass()
DynamicMethod
getImplementationClass
in class DynamicMethod
public CallConfiguration getCallConfig()
DynamicMethod
getCallConfig
in class DynamicMethod
public Arity getArity()
DynamicMethod
getArity
in class DynamicMethod
Copyright © 2001-2013 JRuby. All Rights Reserved.