Package 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:
Serializable
,Cloneable
,Comparable<IRubyObject>
,InstanceVariables
,InternalVariables
,IRubyObject
,CoreObjectType
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:
- [email protected]
- See Also:
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.Data
Nested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.Finalizer
-
Field Summary
Fields inherited from class org.jruby.RubyObject
IVAR_INSPECTING_OBJECT_ALLOCATOR, OBJECT_ALLOCATOR, REIFYING_OBJECT_ALLOCATOR
Fields inherited from class org.jruby.RubyBasicObject
ALL_F, BASICOBJECT_ALLOCATOR, COMPARE_BY_IDENTITY_F, ERR_INSECURE_SET_INST_VAR, FALSE_F, FL_USHIFT, flags, FROZEN_F, IS_OVERLAID_F, metaClass, NEVER, NIL_F, REFINED_MODULE_F, STAMP_OFFSET, TAINTED_F, UNDEF, USER0_F, USER1_F, USER2_F, USER3_F, USER4_F, USER5_F, USER6_F, USER7_F, USER8_F, USER9_F, USERA_F, VAR_TABLE_OFFSET, varTable, varTableStamp
Fields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY
-
Method Summary
Modifier and TypeMethodDescriptionstatic int
addStaticInitLookup
(Object... objects) final RubyArray
Deprecated.final RubyArray
constructors
(ThreadContext context) static RubyClass
createJavaProxyClassClass
(ThreadContext context, RubyClass Object, RubyModule Java) static void
createJavaProxyClasses
(ThreadContext context, RubyModule Java, RubyClass Object) static void
boolean
This override does not do a "checked" dispatch.static String
generateSuperName
(String className, String superName) Generate a "super" stub for the given proxy class name and super method name.static RubyObject
get_with_class
(IRubyObject self, IRubyObject obj) Deprecated.static RubyObject
get_with_class
(ThreadContext context, IRubyObject self, IRubyObject obj) getConstructor
(Class[] args) Deprecated.Deprecated.getConstructors
(ThreadContext context) Class[]
final Class
Will return the Java interface that most closely can represent this object, when working through Java integration translations.static JavaProxyClass
getProxyClass
(Ruby runtime, RubyClass clazz) Deprecated.static JavaProxyClass
getProxyClass
(ThreadContext context, RubyClass clazz) static Object[]
getStaticInitLookup
(int id) getValue()
int
hashCode()
This override does not do "checked" dispatch since Object usually has #hash defined.void
initMethod
(ThreadContext context, String name, String desc, boolean hasSuper) Deprecated.interfaces
(ThreadContext context) methods()
Deprecated.methods
(ThreadContext context) final String
static JavaProxyClass
setProxyClassReified
(ThreadContext context, RubyClass clazz, Class<? extends ReifiedJavaProxy> reified, boolean allocator) Deprecated.superclass
(ThreadContext context) Methods inherited from class org.jruby.javasupport.proxy.JavaProxyReflectionObject
aref, aref, aset, aset, hash, is_java_proxy, is_java_proxy, java_class, java_class, java_type, java_type, length, length, op_eqq, op_equal, op_equal, registerRubyMethods, same, to_s, toString
Methods inherited from class org.jruby.RubyObject
attachToObjectSpace, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, convertToType, dig, dig1, dig2, eqlInternal, equalInternal, finishObjectClass, getNativeClassIndex, inspect, puts, specificEval, toRubyString
Methods inherited from class org.jruby.RubyBasicObject
addFinalizer, addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkCallMethod, checkCallMethod, checkFrozen, checkStringType, cloneSetup, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, dataGetStruct, dataGetStructChecked, dataWrapStruct, decode, display, dup, dupFinalizer, dupSetup, ensureInstanceVariablesSettable, eql, eql_p, eql_p, equal_p, evalUnder, extend, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, finishBasicObjectClass, forEachInstanceVariable, forEachInstanceVariableName, freeze, frozen_p, getCurrentContext, getFFIHandle, getFlag, getInstanceEvalClass, getInstanceEvalClass, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariables, getMarshalVariableList, getMetaClass, getMetaClass, getNativeHandle, getNativeTypeIndex, getObjectId, getRuntime, getSingletonClass, getSingletonClassClone, getSingletonClassCloneAndAttach, getSingletonClassCloneAndAttach, getType, getVariable, getVariableCount, getVariableList, getVariableNameList, hash, hashyInspect, hasInstanceVariable, hasInstanceVariables, hasInternalVariable, hasVariables, id, infectBy, initialize, initialize_copy, initialize_copy, inspect, inspect, inspectHashCode, 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, isBuiltin, isClass, isFalse, isFrozen, isImmediate, isModule, isNil, isSpecialConst, isSpecialObject, isTaint, isTrue, isUntrusted, kind_of_p, makeMetaClass, makeMetaClass, makeMetaClassBootstrap, method, method, method, method_missing, methods, methods, nil_p, nonFixnumHashCode, nonFixnumHashCode, OBJ_INIT_COPY, objInitCopy, op_cmp, op_match, op_not, op_not_equal, op_not_match, private_methods, protected_methods, public_methods, rbClone, rbClone, rbInspect, remove_instance_variable, removeFinalizers, removeInstanceVariable, removeInternalVariable, respond_to_p, respond_to_p, respondsTo, respondsToMissing, respondsToMissing, send, send, send, send, send, setFFIHandle, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setNativeHandle, setTaint, setUntrusted, setVariable, singleton_method, singleton_method, singleton_method_added, singleton_method_removed, singleton_method_undefined, singleton_methods, singletonClass, specificEval, specificEval, specificEval, specificEval, syncVariables, syncVariables, taint, taint, tainted_p, testFrozen, testFrozen, to_a, to_a, to_s, toJava, trust, type, untaint, untrust, untrusted_p, validateInstanceVariable, validateInstanceVariable, validateInstanceVariable, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableRemove, variableTableStore, variableTableSync, yieldUnder, yieldUnder
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.jruby.runtime.builtin.IRubyObject
checkStringType19, dup, marshalLiveVariables
-
Method Details
-
equals
Description copied from class:RubyObject
This override does not do a "checked" dispatch.- Overrides:
equals
in classJavaProxyReflectionObject
- Parameters:
other
- object to compare- Returns:
- true if equals
- See Also:
-
hashCode
public int hashCode()Description copied from class:RubyObject
This override does not do "checked" dispatch since Object usually has #hash defined.- Overrides:
hashCode
in classJavaProxyReflectionObject
- Returns:
- the hash code
- See Also:
-
getValue
-
getSuperclass
-
getInterfaces
-
getConstructors
Deprecated. -
getConstructors
-
getConstructor
@Deprecated(since="10.0") public JavaProxyConstructor getConstructor(Class[] args) throws SecurityException, NoSuchMethodException Deprecated. -
getMethods
-
getMethod
-
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 interfaceIRubyObject
- Overrides:
getJavaClass
in classRubyBasicObject
- Returns:
- the true Java class of this (Ruby) object
-
initMethod
-
generateSuperName
Generate a "super" stub for the given proxy class name and super method name. This name is intended to be unique to this class and method in order to allow jumping into the super chain at any point in the hierarchy, bypassing the default behavior of virtual and reflective calls.- Parameters:
className
- the proxy class namesuperName
- the super method name- Returns:
- a unique stub method name for the given proxy class and super method
-
createJavaProxyClasses
-
createJavaProxyClassClass
public static RubyClass createJavaProxyClassClass(ThreadContext context, RubyClass Object, RubyModule Java) -
get_with_class
@Deprecated(since="10.0") public static RubyObject get_with_class(IRubyObject self, IRubyObject obj) Deprecated. -
get_with_class
-
setProxyClassReified
public static JavaProxyClass setProxyClassReified(ThreadContext context, RubyClass clazz, Class<? extends ReifiedJavaProxy> reified, boolean allocator) -
addStaticInitLookup
-
ensureStaticIntConsumed
public static void ensureStaticIntConsumed() -
getStaticInitLookup
-
getProxyClass
Deprecated. -
getProxyClass
-
superclass
Deprecated. -
superclass
-
methods
Deprecated. -
methods
-
interfaces
Deprecated. -
interfaces
-
constructors
Deprecated. -
constructors
-
nameOnInspection
-