org.jruby.internal.runtime.methods
Class ReflectionMethodFactory
java.lang.Object
org.jruby.runtime.MethodFactory
org.jruby.internal.runtime.methods.ReflectionMethodFactory
public class ReflectionMethodFactory
- extends MethodFactory
This MethodFactory uses reflection to provide method handles. Reflection is
typically slower than code-generated handles, but it does provide a simple
mechanism for binding in environments where code-generation isn't supported.
- See Also:
org.jruby.internal.runtime.methods.MethodFactory
Method Summary |
void |
defineIndexedAnnotatedMethods(RubyModule implementationClass,
java.lang.Class type,
MethodFactory.MethodDefiningCallback callback)
Use reflection to generate a set of method handles based on all annotated
methods in the target class. |
DynamicMethod |
getAnnotatedMethod(RubyModule implementationClass,
JavaMethodDescriptor desc)
Use reflection to provide a method handle based on an annotated Java
method. |
DynamicMethod |
getAnnotatedMethod(RubyModule implementationClass,
java.util.List<JavaMethodDescriptor> descs)
Use reflection to provide a method handle based on an annotated Java
method. |
DynamicMethod |
getCompiledMethod(RubyModule implementationClass,
java.lang.String methodName,
Arity arity,
Visibility visibility,
StaticScope scope,
java.lang.Object scriptObject,
CallConfiguration callConfig)
Use reflection to provide a method handle for a compiled Ruby method. |
DynamicMethod |
getCompiledMethodLazily(RubyModule implementationClass,
java.lang.String methodName,
Arity arity,
Visibility visibility,
StaticScope scope,
java.lang.Object scriptObject,
CallConfiguration callConfig)
Use reflection to provide a method handle for a compiled Ruby method. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ReflectionMethodFactory
public ReflectionMethodFactory()
getCompiledMethodLazily
public DynamicMethod getCompiledMethodLazily(RubyModule implementationClass,
java.lang.String methodName,
Arity arity,
Visibility visibility,
StaticScope scope,
java.lang.Object scriptObject,
CallConfiguration callConfig)
- Use reflection to provide a method handle for a compiled Ruby method.
- Specified by:
getCompiledMethodLazily
in class MethodFactory
- Parameters:
implementationClass
- The class to which the method will be bound.methodName
- 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.
- Returns:
- A new method handle for the target compiled method.
- See Also:
org.jruby.internal.runtime.methods.MethodFactory#getCompiledMethod
getCompiledMethod
public DynamicMethod getCompiledMethod(RubyModule implementationClass,
java.lang.String methodName,
Arity arity,
Visibility visibility,
StaticScope scope,
java.lang.Object scriptObject,
CallConfiguration callConfig)
- Use reflection to provide a method handle for a compiled Ruby method.
- Specified by:
getCompiledMethod
in class MethodFactory
- Parameters:
implementationClass
- The class to which the method will be bound.methodName
- 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.
- Returns:
- A new method handle for the target compiled method.
- See Also:
org.jruby.internal.runtime.methods.MethodFactory#getCompiledMethod
getAnnotatedMethod
public DynamicMethod getAnnotatedMethod(RubyModule implementationClass,
JavaMethodDescriptor desc)
- Use reflection to provide a method handle based on an annotated Java
method.
- Specified by:
getAnnotatedMethod
in class MethodFactory
- Parameters:
implementationClass
- The target class or module on which the method
will be bound.desc
- A JavaMethodDescriptor describing the target method
- Returns:
- A method handle for the target object.
- See Also:
org.jruby.internal.runtime.methods.MethodFactory#getAnnotatedMethod
getAnnotatedMethod
public DynamicMethod getAnnotatedMethod(RubyModule implementationClass,
java.util.List<JavaMethodDescriptor> descs)
- Use reflection to provide a method handle based on an annotated Java
method.
- Specified by:
getAnnotatedMethod
in class MethodFactory
- Parameters:
implementationClass
- The target class or module on which the method
will be bound.
- Returns:
- A method handle for the target object.
- See Also:
org.jruby.internal.runtime.methods.MethodFactory#getAnnotatedMethod
defineIndexedAnnotatedMethods
public void defineIndexedAnnotatedMethods(RubyModule implementationClass,
java.lang.Class type,
MethodFactory.MethodDefiningCallback callback)
- Use reflection to generate a set of method handles based on all annotated
methods in the target class.
- Specified by:
defineIndexedAnnotatedMethods
in class MethodFactory
- Parameters:
implementationClass
- The target class or module on which the method
will be bound.type
- The Java class containined annotated methods to
be bound.callback
- A callback provided by the caller which handles binding
each method.- See Also:
org.jruby.internal.runtime.methods.MethodFactory#defineIndexedAnnotatedMethods
Copyright © 2002-2007 JRuby Team. All Rights Reserved.