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
|
DynamicMethod |
dup()
Duplicate this method, returning DynamicMethod referencing the same code
and with the same attributes.
|
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() |
Object |
getHandle()
Get the "handle" associated with this DynamicMethod.
|
RubyModule |
getImplementationClass()
Retrieve the class or module on which this method is implemented, used
for 'super' logic among others.
|
MethodData |
getMethodData()
Additional metadata about this method.
|
String |
getName()
Get the base name this method was defined as.
|
DynamicMethod.NativeCall |
getNativeCall() |
DynamicMethod.NativeCall |
getNativeCall(int args,
boolean block) |
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 |
isImplementedBy(RubyModule other) |
boolean |
isNative()
Returns true if this method is backed by native (i.e.
|
boolean |
isNotImplemented()
Whether this method is "not implemented".
|
void |
setCallConfig(CallConfiguration callConfig)
Set the CallConfiguration used for pre/post logic for this method handle.
|
void |
setHandle(Object handle)
Set the "handle" associated with this DynamicMethod.
|
void |
setImplementationClass(RubyModule implClass)
Set the class on which this method is implemented, used for 'super'
logic, among others.
|
void |
setIsBuiltin(boolean isBuiltin) |
void |
setName(String name)
Set the base name for this method.
|
void |
setNativeCall(Class nativeTarget,
String nativeName,
Class nativeReturn,
Class[] nativeSignature,
boolean statik)
Set the single-arity NativeCall for this method.
|
void |
setNativeCall(Class nativeTarget,
String nativeName,
Class nativeReturn,
Class[] nativeSignature,
boolean statik,
boolean java)
Set the single-arity NativeCall for this method.
|
void |
setNativeCall(int args,
boolean block,
DynamicMethod.NativeCall nativeCall) |
void |
setNotImplemented(boolean setNotImplemented)
Set whether this method is "not implemented".
|
void |
setVisibility(Visibility visibility)
Set the visibility of this method.
|
calculateProtectedClass, handleBreak, handleRedo, handleReturn, init, isNull, isUndefined
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 callklazz
- The Ruby class against which this method is bindingname
- The incoming name used to invoke this methodargs
- The first argument to this invocationpublic 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 callklazz
- The Ruby class against which this method is bindingname
- 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 boolean isImplementedBy(RubyModule other)
isImplementedBy
in class DynamicMethod
public CallConfiguration getCallConfig()
DynamicMethod
getCallConfig
in class DynamicMethod
public Arity getArity()
DynamicMethod
getArity
in class DynamicMethod
public String getName()
DynamicMethod
getName
in class DynamicMethod
public void setName(String name)
DynamicMethod
setName
in class DynamicMethod
name
- the name to setpublic boolean isNotImplemented()
DynamicMethod
isNotImplemented
in class DynamicMethod
public void setNotImplemented(boolean setNotImplemented)
DynamicMethod
setNotImplemented
in class DynamicMethod
public MethodData getMethodData()
DynamicMethod
getMethodData
in class DynamicMethod
public void setHandle(Object handle)
DynamicMethod
setHandle
in class DynamicMethod
handle
- the handlepublic Object getHandle()
DynamicMethod
getHandle
in class DynamicMethod
public void setNativeCall(int args, boolean block, DynamicMethod.NativeCall nativeCall)
setNativeCall
in class DynamicMethod
public DynamicMethod.NativeCall getNativeCall(int args, boolean block)
getNativeCall
in class DynamicMethod
public void setNativeCall(Class nativeTarget, String nativeName, Class nativeReturn, Class[] nativeSignature, boolean statik, boolean java)
DynamicMethod
setNativeCall
in class DynamicMethod
nativeTarget
- native method targetnativeName
- native method namenativeReturn
- native method returnnativeSignature
- native method argumentsstatik
- static?java
- plain Java method?public DynamicMethod dup()
DynamicMethod
dup
in class DynamicMethod
Copyright © 2001-2015 JRuby. All Rights Reserved.