org.jruby.javasupport.proxy
Class JavaProxyClass
java.lang.Object
org.jruby.RubyBasicObject
org.jruby.RubyObject
org.jruby.javasupport.proxy.JavaProxyReflectionObject
org.jruby.javasupport.proxy.JavaProxyClass
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<IRubyObject>, InstanceVariables, InternalVariables, IRubyObject, CoreObjectType
public class JavaProxyClass
- extends JavaProxyReflectionObject
Generalized proxy for classes and interfaces.
API looks a lot like java.lang.reflect.Proxy, except that you can specify a
super class in addition to a set of interfaces.
The main implication for users of this class is to handle the case where a
proxy method overrides an existing method, because in this case the
invocation handler should "default" to calling the super implementation
{JavaProxyMethod.invokeSuper}.
- Author:
- krab@trifork.com
- See Also:
Proxy
,
Serialized Form
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 |
Method Summary |
RubyArray |
constructors()
|
static RubyClass |
createJavaProxyClassClass(Ruby runtime,
RubyModule javaModule)
|
static void |
createJavaProxyModule(Ruby runtime)
|
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. |
static RubyObject |
get_with_class(IRubyObject recv,
IRubyObject obj)
|
static RubyObject |
get(IRubyObject recv,
IRubyObject obj)
|
JavaProxyConstructor |
getConstructor(java.lang.Class[] args)
|
JavaProxyConstructor[] |
getConstructors()
|
java.lang.Class[] |
getInterfaces()
|
java.lang.Class |
getJavaClass()
Will return the Java interface that most closely can represent
this object, when working through JAva integration
translations. |
JavaProxyMethod |
getMethod(java.lang.String name,
java.lang.Class[] parameterTypes)
|
JavaProxyMethod[] |
getMethods()
|
static JavaProxyClass |
getProxyClass(Ruby runtime,
java.lang.Class superClass,
java.lang.Class[] interfaces)
|
static JavaProxyClass |
getProxyClass(Ruby runtime,
java.lang.Class superClass,
java.lang.Class[] interfaces,
java.util.Set names)
|
java.lang.Class |
getSuperclass()
|
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. |
RubyArray |
interfaces()
|
RubyArray |
methods()
|
java.lang.String |
nameOnInspection()
|
static java.lang.Object |
newProxyInstance(Ruby runtime,
java.lang.Class superClass,
java.lang.Class[] interfaces,
java.lang.Class[] constructorParameters,
java.lang.Object[] constructorArgs,
JavaProxyInvocationHandler handler)
|
RubyObject |
superclass()
|
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, toString |
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, inspect, 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, 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 |
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
getValue
public java.lang.Object getValue()
getProxyClass
public static JavaProxyClass getProxyClass(Ruby runtime,
java.lang.Class superClass,
java.lang.Class[] interfaces,
java.util.Set names)
throws java.lang.reflect.InvocationTargetException
- Throws:
java.lang.reflect.InvocationTargetException
getProxyClass
public static JavaProxyClass getProxyClass(Ruby runtime,
java.lang.Class superClass,
java.lang.Class[] interfaces)
throws java.lang.reflect.InvocationTargetException
- Throws:
java.lang.reflect.InvocationTargetException
newProxyInstance
public static java.lang.Object newProxyInstance(Ruby runtime,
java.lang.Class superClass,
java.lang.Class[] interfaces,
java.lang.Class[] constructorParameters,
java.lang.Object[] constructorArgs,
JavaProxyInvocationHandler handler)
throws java.lang.IllegalArgumentException,
java.lang.InstantiationException,
java.lang.IllegalAccessException,
java.lang.reflect.InvocationTargetException,
java.lang.SecurityException,
java.lang.NoSuchMethodException
- Throws:
java.lang.IllegalArgumentException
java.lang.InstantiationException
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
java.lang.SecurityException
java.lang.NoSuchMethodException
getSuperclass
public java.lang.Class getSuperclass()
getInterfaces
public java.lang.Class[] getInterfaces()
getConstructors
public JavaProxyConstructor[] getConstructors()
getConstructor
public JavaProxyConstructor getConstructor(java.lang.Class[] args)
throws java.lang.SecurityException,
java.lang.NoSuchMethodException
- Throws:
java.lang.SecurityException
java.lang.NoSuchMethodException
getMethods
public JavaProxyMethod[] getMethods()
getMethod
public JavaProxyMethod getMethod(java.lang.String name,
java.lang.Class[] parameterTypes)
getJavaClass
public java.lang.Class getJavaClass()
- Description copied from class:
RubyBasicObject
- Will return the Java interface that most closely can represent
this object, when working through JAva integration
translations.
- Specified by:
getJavaClass
in interface IRubyObject
- Overrides:
getJavaClass
in class RubyBasicObject
- Returns:
- Class
createJavaProxyClassClass
public static RubyClass createJavaProxyClassClass(Ruby runtime,
RubyModule javaModule)
get
public static RubyObject get(IRubyObject recv,
IRubyObject obj)
get_with_class
public static RubyObject get_with_class(IRubyObject recv,
IRubyObject obj)
superclass
public RubyObject superclass()
methods
public RubyArray methods()
interfaces
public RubyArray interfaces()
constructors
public RubyArray constructors()
createJavaProxyModule
public static void createJavaProxyModule(Ruby runtime)
nameOnInspection
public java.lang.String nameOnInspection()
Copyright © 2002-2007 JRuby Team. All Rights Reserved.