org.jruby.javasupport
Class JavaMethod

java.lang.Object
  extended by org.jruby.RubyBasicObject
      extended by org.jruby.RubyObject
          extended by org.jruby.javasupport.JavaAccessibleObject
              extended by org.jruby.javasupport.JavaCallable
                  extended by org.jruby.javasupport.JavaMethod
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<IRubyObject>, ParameterTypes, InstanceVariables, InternalVariables, IRubyObject, CoreObjectType

public class JavaMethod
extends JavaCallable

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.Data, RubyObject.ObjectMethods
 
Nested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.BasicObjectMethods, RubyBasicObject.Finalizer
 
Field Summary
 
Fields inherited from class org.jruby.javasupport.JavaCallable
parameterTypes
 
Fields inherited from class org.jruby.RubyObject
OBJECT_ALLOCATOR
 
Fields inherited from class org.jruby.RubyBasicObject
ALL_F, COMPARE_BY_IDENTITY_F, ERR_INSECURE_SET_INST_VAR, FALSE_F, FL_USHIFT, flags, FROZEN_F, metaClass, NEVER, NIL_F, TAINTED_F, UNDEF, UNTRUSTED_F, USER0_F, USER1_F, USER2_F, USER3_F, USER4_F, USER5_F, USER6_F, USER7_F
 
Fields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY
 
Constructor Summary
JavaMethod(Ruby runtime, java.lang.reflect.Method method)
           
 
Method Summary
protected  java.lang.reflect.AccessibleObject accessibleObject()
           
 RubyBoolean bridge_p()
           
static JavaMethod create(Ruby runtime, java.lang.Class<?> javaClass, java.lang.String methodName, java.lang.Class<?>[] argumentTypes)
           
static JavaMethod create(Ruby runtime, java.lang.reflect.Method method)
           
static JavaMethod createDeclared(Ruby runtime, java.lang.Class<?> javaClass, java.lang.String methodName, java.lang.Class<?>[] argumentTypes)
           
static RubyClass createJavaMethodClass(Ruby runtime, RubyModule javaModule)
           
 boolean equals(java.lang.Object other)
          This method is just a wrapper around the Ruby "==" method, provided so that RubyObjects can be used as keys in the Java HashMap object underlying RubyHash.
 RubyBoolean final_p()
           
 int getArity()
           
 java.lang.Class<?>[] getExceptionTypes()
           
 java.lang.reflect.Type[] getGenericExceptionTypes()
           
 java.lang.reflect.Type[] getGenericParameterTypes()
           
static JavaMethod getMatchingDeclaredMethod(Ruby runtime, java.lang.Class<?> javaClass, java.lang.String methodName, java.lang.Class<?>[] argumentTypes)
           
 int getModifiers()
           
 java.lang.annotation.Annotation[][] getParameterAnnotations()
           
 java.lang.Class<?>[] getParameterTypes()
           
 java.lang.Object getValue()
           
 int hashCode()
          Override the Object#hashCode method to make sure that the Ruby hash is actually used as the hashcode for Ruby objects.
 IRubyObject invoke_static(IRubyObject[] args)
           
 IRubyObject invoke(IRubyObject[] args)
           
 IRubyObject invokeDirect(java.lang.Object javaInvokee)
           
 IRubyObject invokeDirect(java.lang.Object javaInvokee, java.lang.Object arg0)
           
 IRubyObject invokeDirect(java.lang.Object javaInvokee, java.lang.Object[] args)
           
 IRubyObject invokeDirect(java.lang.Object javaInvokee, java.lang.Object arg0, java.lang.Object arg1)
           
 IRubyObject invokeDirect(java.lang.Object javaInvokee, java.lang.Object arg0, java.lang.Object arg1, java.lang.Object arg2)
           
 IRubyObject invokeDirect(java.lang.Object javaInvokee, java.lang.Object arg0, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
           
 IRubyObject invokeStaticDirect()
           
 IRubyObject invokeStaticDirect(java.lang.Object arg0)
           
 IRubyObject invokeStaticDirect(java.lang.Object[] args)
           
 IRubyObject invokeStaticDirect(java.lang.Object arg0, java.lang.Object arg1)
           
 IRubyObject invokeStaticDirect(java.lang.Object arg0, java.lang.Object arg1, java.lang.Object arg2)
           
 IRubyObject invokeStaticDirect(java.lang.Object arg0, java.lang.Object arg1, java.lang.Object arg2, java.lang.Object arg3)
           
 boolean isVarArgs()
           
 RubyString name()
           
protected  java.lang.String nameOnInspection()
           
static RaiseException newArgSizeMismatchError(Ruby runtime, int typeCount, int argCount)
           
static RaiseException newMethodNotFoundError(Ruby runtime, java.lang.Class target, java.lang.String prettyName, java.lang.String simpleName)
           
 RubyBoolean public_p()
           
 IRubyObject return_type()
           
 RubyBoolean static_p()
           
 java.lang.String toGenericString()
           
 IRubyObject type_parameters()
           
 
Methods inherited from class org.jruby.javasupport.JavaCallable
argument_types, arity, checkArity, dumpArgTypes, exception_types, generic_exception_types, generic_parameter_types, handleInvocationTargetEx, handleThrowable, inspect, parameter_annotations, parameter_types, registerRubyMethods, to_generic_string, varargs_p
 
Methods inherited from class org.jruby.javasupport.JavaAccessibleObject
annotation_present_p, annotation, annotations_p, annotations, declared_annotations_p, declared_annotations, declaring_class, hash, isAccessible, modifiers, op_equal, same, setAccessible, synthetic_p, to_string
 
Methods inherited from class org.jruby.RubyObject
as, attachToObjectSpace, callInit, checkFrozen, convertToType, createObjectClass, display, dup, eql_p, eqlInternal, equal_p, equalInternal, evalUnder, evalUnder, extend, freeze, frozen_p, getNativeTypeIndex, id_deprecated, id, initialize_copy, initialize, instance_eval, instance_eval, instance_eval, instance_eval, instance_eval, instance_exec, instance_of_p, instance_variable_defined_p, instance_variable_get, instance_variable_set, instance_variables, kind_of_p, method, methods, methods, methods19, nil_p, op_eqq, op_equal, op_match, op_not_match, private_methods, private_methods19, protected_methods, protected_methods19, public_methods, public_methods19, puts, rbClone, remove_instance_variable, respond_to_p, respond_to_p, send, send, send, send, send, singleton_methods, singleton_methods19, singletonMethods, specificEval, specificEval, specificEval, specificEval, specificEval, taint, tainted_p, to_a, to_java, to_s, toString, trust, type_deprecated, type, untaint, untrust, untrusted_p, validateInstanceVariable
 
Methods inherited from class org.jruby.RubyBasicObject
addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkStringType, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, createBasicObjectClass, dataGetStruct, dataGetStructChecked, dataWrapStruct, ensureInstanceVariablesSettable, eql, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, getFlag, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariables, getJavaClass, getMetaClass, getRuntime, getSingletonClass, getSingletonClassClone, getType, getVariable, getVariableCount, getVariableList, getVariableNameList, hasInstanceVariable, hasInternalVariable, hasVariables, infectBy, isClass, isFalse, isFrozen, isImmediate, isModule, isNil, isTaint, isTrue, isUntrusted, makeMetaClass, op_not_equal, op_not, removeFinalizers, removeInstanceVariable, removeInternalVariable, respondsTo, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setTaint, setUntrusted, setVariable, syncVariables, taint, testFrozen, testFrozen, toJava, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableGetSize, variableTableRemove, variableTableStore, variableTableSync
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

JavaMethod

public JavaMethod(Ruby runtime,
                  java.lang.reflect.Method method)
Method Detail

getValue

public java.lang.Object getValue()

createJavaMethodClass

public static RubyClass createJavaMethodClass(Ruby runtime,
                                              RubyModule javaModule)

create

public static JavaMethod create(Ruby runtime,
                                java.lang.reflect.Method method)

create

public static JavaMethod create(Ruby runtime,
                                java.lang.Class<?> javaClass,
                                java.lang.String methodName,
                                java.lang.Class<?>[] argumentTypes)

createDeclared

public static JavaMethod createDeclared(Ruby runtime,
                                        java.lang.Class<?> javaClass,
                                        java.lang.String methodName,
                                        java.lang.Class<?>[] argumentTypes)

getMatchingDeclaredMethod

public static JavaMethod getMatchingDeclaredMethod(Ruby runtime,
                                                   java.lang.Class<?> javaClass,
                                                   java.lang.String methodName,
                                                   java.lang.Class<?>[] argumentTypes)

equals

public boolean equals(java.lang.Object other)
Description copied from class: RubyObject
This method is just a wrapper around the Ruby "==" method, provided so that RubyObjects can be used as keys in the Java HashMap object underlying RubyHash.

Overrides:
equals in class JavaAccessibleObject

hashCode

public int hashCode()
Description copied from class: RubyObject
Override the Object#hashCode method to make sure that the Ruby hash is actually used as the hashcode for Ruby objects. If the Ruby "hash" method doesn't return a number, the Object#hashCode implementation will be used instead.

Overrides:
hashCode in class JavaAccessibleObject

name

public RubyString name()
Overrides:
name in class JavaAccessibleObject

getArity

public int getArity()
Specified by:
getArity in class JavaCallable

public_p

public RubyBoolean public_p()
Overrides:
public_p in class JavaCallable

final_p

public RubyBoolean final_p()

invoke

public IRubyObject invoke(IRubyObject[] args)

invoke_static

public IRubyObject invoke_static(IRubyObject[] args)

return_type

public IRubyObject return_type()

type_parameters

public IRubyObject type_parameters()

invokeDirect

public IRubyObject invokeDirect(java.lang.Object javaInvokee,
                                java.lang.Object[] args)

invokeDirect

public IRubyObject invokeDirect(java.lang.Object javaInvokee)

invokeDirect

public IRubyObject invokeDirect(java.lang.Object javaInvokee,
                                java.lang.Object arg0)

invokeDirect

public IRubyObject invokeDirect(java.lang.Object javaInvokee,
                                java.lang.Object arg0,
                                java.lang.Object arg1)

invokeDirect

public IRubyObject invokeDirect(java.lang.Object javaInvokee,
                                java.lang.Object arg0,
                                java.lang.Object arg1,
                                java.lang.Object arg2)

invokeDirect

public IRubyObject invokeDirect(java.lang.Object javaInvokee,
                                java.lang.Object arg0,
                                java.lang.Object arg1,
                                java.lang.Object arg2,
                                java.lang.Object arg3)

invokeStaticDirect

public IRubyObject invokeStaticDirect(java.lang.Object[] args)

invokeStaticDirect

public IRubyObject invokeStaticDirect()

invokeStaticDirect

public IRubyObject invokeStaticDirect(java.lang.Object arg0)

invokeStaticDirect

public IRubyObject invokeStaticDirect(java.lang.Object arg0,
                                      java.lang.Object arg1)

invokeStaticDirect

public IRubyObject invokeStaticDirect(java.lang.Object arg0,
                                      java.lang.Object arg1,
                                      java.lang.Object arg2)

invokeStaticDirect

public IRubyObject invokeStaticDirect(java.lang.Object arg0,
                                      java.lang.Object arg1,
                                      java.lang.Object arg2,
                                      java.lang.Object arg3)

getParameterTypes

public java.lang.Class<?>[] getParameterTypes()
Specified by:
getParameterTypes in interface ParameterTypes
Specified by:
getParameterTypes in class JavaCallable

getExceptionTypes

public java.lang.Class<?>[] getExceptionTypes()
Specified by:
getExceptionTypes in interface ParameterTypes
Specified by:
getExceptionTypes in class JavaCallable

getGenericParameterTypes

public java.lang.reflect.Type[] getGenericParameterTypes()
Specified by:
getGenericParameterTypes in class JavaCallable

getGenericExceptionTypes

public java.lang.reflect.Type[] getGenericExceptionTypes()
Specified by:
getGenericExceptionTypes in class JavaCallable

getParameterAnnotations

public java.lang.annotation.Annotation[][] getParameterAnnotations()
Specified by:
getParameterAnnotations in class JavaCallable

isVarArgs

public boolean isVarArgs()
Specified by:
isVarArgs in interface ParameterTypes
Specified by:
isVarArgs in class JavaCallable

nameOnInspection

protected java.lang.String nameOnInspection()
Specified by:
nameOnInspection in class JavaCallable
Returns:
the name used in the head of the string returned from inspect()

static_p

public RubyBoolean static_p()

bridge_p

public RubyBoolean bridge_p()

getModifiers

public int getModifiers()
Specified by:
getModifiers in class JavaCallable

toGenericString

public java.lang.String toGenericString()
Specified by:
toGenericString in class JavaCallable

accessibleObject

protected java.lang.reflect.AccessibleObject accessibleObject()
Specified by:
accessibleObject in class JavaAccessibleObject

newMethodNotFoundError

public static RaiseException newMethodNotFoundError(Ruby runtime,
                                                    java.lang.Class target,
                                                    java.lang.String prettyName,
                                                    java.lang.String simpleName)

newArgSizeMismatchError

public static RaiseException newArgSizeMismatchError(Ruby runtime,
                                                     int typeCount,
                                                     int argCount)


Copyright © 2002-2009 JRuby Team. All Rights Reserved.