|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jruby.runtime.MethodFactory
public abstract class MethodFactory
MethodFactory is used to generate "invokers" or "method handles" given a target class, method name, and other characteristics. In order to bind methods into Ruby's reified class hierarchy, we need a way to treat individual methods as objects. Implementers of this class provide that functionality.
Nested Class Summary | |
---|---|
static interface |
MethodFactory.MethodDefiningCallback
For batched method construction, the logic necessary to bind resulting method objects into a target module/class must be provided as a callback. |
Field Summary | |
---|---|
static java.lang.Class[] |
COMPILED_METHOD_PARAMS
A Class[] representing the signature of compiled Ruby method. |
Constructor Summary | |
---|---|
MethodFactory()
|
Method Summary | |
---|---|
static MethodFactory |
createFactory(java.lang.ClassLoader classLoader)
Based on optional properties, create a new MethodFactory. |
abstract void |
defineIndexedAnnotatedMethods(RubyModule implementationClass,
java.lang.Class containingClass,
MethodFactory.MethodDefiningCallback callback)
Add all annotated methods on the target Java class to the specified Ruby class using the semantics of getAnnotatedMethod, calling back to the specified callback for each method to allow the caller to bind each method. |
abstract DynamicMethod |
getAnnotatedMethod(RubyModule implementationClass,
JavaMethodDescriptor desc)
Based on an annotated Java method object, generate a method handle using the annotation and the target signature. |
abstract DynamicMethod |
getAnnotatedMethod(RubyModule implementationClass,
java.util.List<JavaMethodDescriptor> desc)
Based on a list of annotated Java methods, generate a method handle using the annotation and the target signatures. |
abstract DynamicMethod |
getCompiledMethod(RubyModule implementationClass,
java.lang.String method,
Arity arity,
Visibility visibility,
StaticScope scope,
java.lang.Object scriptObject,
CallConfiguration callConfig)
Get a new method handle based on the target JRuby-compiled method. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.Class[] COMPILED_METHOD_PARAMS
Constructor Detail |
---|
public MethodFactory()
Method Detail |
---|
public static MethodFactory createFactory(java.lang.ClassLoader classLoader)
classLoader
- The classloader to use for searching for and
dynamically loading code.
public abstract DynamicMethod getCompiledMethod(RubyModule implementationClass, java.lang.String method, Arity arity, Visibility visibility, StaticScope scope, java.lang.Object scriptObject, CallConfiguration callConfig)
implementationClass
- The class to which the method will be bound.method
- 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.
public abstract DynamicMethod getAnnotatedMethod(RubyModule implementationClass, java.util.List<JavaMethodDescriptor> desc)
implementationClass
- The target class or module on which the method
will be bound.descs
- A list of JavaMethodDescriptors describing the target methods
public abstract DynamicMethod getAnnotatedMethod(RubyModule implementationClass, JavaMethodDescriptor desc)
implementationClass
- The target class or module on which the method
will be bound.desc
- A JavaMethodDescriptor describing the target method
public abstract void defineIndexedAnnotatedMethods(RubyModule implementationClass, java.lang.Class containingClass, MethodFactory.MethodDefiningCallback callback)
implementationClass
- The target class or module on which the method
will be bound.containingClass
- The Java class containined annotated methods to
be bound.callback
- A callback provided by the caller which handles binding
each method.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |