org.jruby.javasupport.proxy
Class JavaProxyClass.ProxyMethodImpl

java.lang.Object
  extended by org.jruby.RubyBasicObject
      extended by org.jruby.RubyObject
          extended by org.jruby.javasupport.proxy.JavaProxyReflectionObject
              extended by org.jruby.javasupport.proxy.JavaProxyClass.ProxyMethodImpl
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<IRubyObject>, ParameterTypes, JavaProxyMethod, InstanceVariables, InternalVariables, IRubyObject, CoreObjectType
Enclosing class:
JavaProxyClass

public static class JavaProxyClass.ProxyMethodImpl
extends JavaProxyReflectionObject
implements JavaProxyMethod

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.ObjectMethods
 
Nested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.BasicObjectMethods, RubyBasicObject.Finalizer
 
Field Summary
 
Fields inherited from class org.jruby.RubyObject
OBJECT_ALLOCATOR
 
Fields inherited from class org.jruby.RubyBasicObject
ALL_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
JavaProxyClass.ProxyMethodImpl(Ruby runtime, JavaProxyClass clazz, java.lang.reflect.Method m, java.lang.reflect.Method sm)
           
 
Method Summary
 RubyArray argument_types()
           
 RubyFixnum arity()
           
static RubyClass createJavaProxyMethodClass(Ruby runtime, RubyModule javaProxyModule)
           
 java.lang.Object defaultResult()
           
 IRubyObject do_invoke(IRubyObject[] nargs)
           
 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.
 JavaProxyClass getDeclaringClass()
           
 java.lang.Class<?>[] getExceptionTypes()
           
 java.lang.reflect.Method getMethod()
           
 int getModifiers()
           
 java.lang.String getName()
           
 java.lang.Class<?>[] getParameterTypes()
           
 java.lang.Class getReturnType()
           
 java.lang.Object getState()
          get state (cache target callable?) in the proxy method
 java.lang.reflect.Method getSuperMethod()
           
 int hashCode()
          Override the Object#hashCode method to make sure that the Ruby hash is actually used as the hashcode for Ruby objects.
 boolean hasSuperImplementation()
          is it possible to call the super method?
 IRubyObject inspect()
          rb_obj_inspect call-seq: obj.inspect => string Returns a string containing a human-readable representation of obj.
 java.lang.Object invoke(java.lang.Object proxy, java.lang.Object[] args)
           
 boolean isVarArgs()
           
 boolean matches(java.lang.String name, java.lang.Class[] parameterTypes)
           
 RubyObject name()
           
protected  java.lang.String nameOnInspection()
           
 void setState(java.lang.Object state)
          store state (cache target callable?) in the proxy method
 IRubyObject super_p()
           
 java.lang.String toString()
          The default toString method is just a wrapper that calls the Ruby "to_s" method.
 
Methods inherited from class org.jruby.javasupport.proxy.JavaProxyReflectionObject
aref, aset, buildRubyArray, buildRubyArray, hash, is_java_proxy, java_class, java_type, length, op_equal, registerRubyMethods, same, to_s
 
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, nil_p, op_eqq, op_equal, op_match, private_methods, protected_methods, public_methods, 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, 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, callSuper, checkArrayType, checkStringType, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, createBasicObjectClass, dataGetStruct, 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, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableGetSize, variableTableRemove, variableTableStore, variableTableSync
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jruby.runtime.builtin.IRubyObject
addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkStringType, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copySpecialInstanceVariables, dataGetStruct, dataWrapStruct, dup, eql, getInstanceVariables, getInternalVariables, getJavaClass, getMetaClass, getRuntime, getSingletonClass, getType, getVariable, getVariableCount, getVariableList, getVariableNameList, hasVariables, id, infectBy, isClass, isFrozen, isImmediate, isModule, isNil, isTaint, isTrue, isUntrusted, op_eqq, op_equal, rbClone, removeFinalizers, respondsTo, setFrozen, setTaint, setUntrusted, setVariable, syncVariables
 

Constructor Detail

JavaProxyClass.ProxyMethodImpl

public JavaProxyClass.ProxyMethodImpl(Ruby runtime,
                                      JavaProxyClass clazz,
                                      java.lang.reflect.Method m,
                                      java.lang.reflect.Method sm)
Method Detail

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 JavaProxyReflectionObject

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 JavaProxyReflectionObject

getMethod

public java.lang.reflect.Method getMethod()

getSuperMethod

public java.lang.reflect.Method getSuperMethod()
Specified by:
getSuperMethod in interface JavaProxyMethod

getModifiers

public int getModifiers()
Specified by:
getModifiers in interface JavaProxyMethod

getName

public java.lang.String getName()
Specified by:
getName in interface JavaProxyMethod

getExceptionTypes

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

getParameterTypes

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

isVarArgs

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

getState

public java.lang.Object getState()
Description copied from interface: JavaProxyMethod
get state (cache target callable?) in the proxy method

Specified by:
getState in interface JavaProxyMethod

hasSuperImplementation

public boolean hasSuperImplementation()
Description copied from interface: JavaProxyMethod
is it possible to call the super method?

Specified by:
hasSuperImplementation in interface JavaProxyMethod

invoke

public java.lang.Object invoke(java.lang.Object proxy,
                               java.lang.Object[] args)
                        throws java.lang.IllegalArgumentException,
                               java.lang.IllegalAccessException,
                               java.lang.reflect.InvocationTargetException,
                               java.lang.NoSuchMethodException
Specified by:
invoke in interface JavaProxyMethod
Returns:
Throws:
java.lang.IllegalArgumentException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
java.lang.NoSuchMethodException - if this ProxyMethod has no super implementation

setState

public void setState(java.lang.Object state)
Description copied from interface: JavaProxyMethod
store state (cache target callable?) in the proxy method

Specified by:
setState in interface JavaProxyMethod

toString

public java.lang.String toString()
Description copied from class: RubyObject
The default toString method is just a wrapper that calls the Ruby "to_s" method.

Overrides:
toString in class JavaProxyReflectionObject

defaultResult

public java.lang.Object defaultResult()
Specified by:
defaultResult in interface JavaProxyMethod

matches

public boolean matches(java.lang.String name,
                       java.lang.Class[] parameterTypes)

getReturnType

public java.lang.Class getReturnType()
Specified by:
getReturnType in interface JavaProxyMethod

createJavaProxyMethodClass

public static RubyClass createJavaProxyMethodClass(Ruby runtime,
                                                   RubyModule javaProxyModule)

name

public RubyObject name()

getDeclaringClass

public JavaProxyClass getDeclaringClass()
Specified by:
getDeclaringClass in interface JavaProxyMethod

argument_types

public RubyArray argument_types()

super_p

public IRubyObject super_p()

arity

public RubyFixnum arity()

nameOnInspection

protected java.lang.String nameOnInspection()

inspect

public IRubyObject inspect()
Description copied from class: RubyObject
rb_obj_inspect call-seq: obj.inspect => string Returns a string containing a human-readable representation of obj. If not overridden, uses the to_s method to generate the string. [ 1, 2, 3..4, 'five' ].inspect #=> "[1, 2, 3..4, \"five\"]" Time.new.inspect #=> "Wed Apr 09 08:54:39 CDT 2003"

Specified by:
inspect in interface IRubyObject
Overrides:
inspect in class RubyObject
Returns:
String

do_invoke

public IRubyObject do_invoke(IRubyObject[] nargs)


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