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.DataNested 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_ALLOCATORFields 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, varTableStampFields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY -
Method Summary
Modifier and TypeMethodDescriptionstatic intaddStaticInitLookup(Object... objects) final RubyArrayDeprecated.final RubyArrayconstructors(ThreadContext context) static RubyClasscreateJavaProxyClassClass(ThreadContext context, RubyClass Object, RubyModule Java) static voidcreateJavaProxyClasses(ThreadContext context, RubyModule Java, RubyClass Object) static voidbooleanThis override does not do a "checked" dispatch.static StringgenerateSuperName(String className, String superName) Generate a "super" stub for the given proxy class name and super method name.static RubyObjectget_with_class(IRubyObject self, IRubyObject obj) Deprecated.static RubyObjectget_with_class(ThreadContext context, IRubyObject self, IRubyObject obj) getConstructor(Class[] args) Deprecated.Deprecated.getConstructors(ThreadContext context) Class[]final ClassWill return the Java interface that most closely can represent this object, when working through Java integration translations.static JavaProxyClassgetProxyClass(Ruby runtime, RubyClass clazz) Deprecated.static JavaProxyClassgetProxyClass(ThreadContext context, RubyClass clazz) static Object[]getStaticInitLookup(int id) getValue()inthashCode()This override does not do "checked" dispatch since Object usually has #hash defined.voidinitMethod(ThreadContext context, String name, String desc, boolean hasSuper) Deprecated.interfaces(ThreadContext context) methods()Deprecated.methods(ThreadContext context) final Stringstatic JavaProxyClasssetProxyClassReified(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, toStringMethods 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, toRubyStringMethods 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, yieldUnderMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.jruby.runtime.builtin.IRubyObject
checkStringType19, dup, marshalLiveVariables
-
Method Details
-
equals
Description copied from class:RubyObjectThis override does not do a "checked" dispatch.- Overrides:
equalsin classJavaProxyReflectionObject- Parameters:
other- object to compare- Returns:
- true if equals
- See Also:
-
hashCode
public int hashCode()Description copied from class:RubyObjectThis override does not do "checked" dispatch since Object usually has #hash defined.- Overrides:
hashCodein 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:RubyBasicObjectWill return the Java interface that most closely can represent this object, when working through Java integration translations.- Specified by:
getJavaClassin interfaceIRubyObject- Overrides:
getJavaClassin 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
-