Package org.jruby.java.proxies
Class JavaProxy
java.lang.Object
org.jruby.RubyBasicObject
org.jruby.RubyObject
org.jruby.java.proxies.JavaProxy
- All Implemented Interfaces:
Serializable
,Cloneable
,Comparable<IRubyObject>
,InstanceVariables
,InternalVariables
,IRubyObject
,CoreObjectType
- Direct Known Subclasses:
ArrayJavaProxy
,ConcreteJavaProxy
,InterfaceJavaProxy
- 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
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected JavaObject
asJavaObject
(Object object) Deprecated.void
protected Object
static RubyClass
createJavaProxy
(ThreadContext context, RubyClass Object, RubyModule JavaProxyMethods) final Object
Our version of Data_Get_Struct.final void
dataWrapStruct
(Object object) Our version of Data_Wrap_Struct.equal_p
(ThreadContext context, IRubyObject other) rb_obj_equal Will use Java identity equality.static IRubyObject
field_accessor
(ThreadContext context, IRubyObject self, IRubyObject[] args) static IRubyObject
field_reader
(ThreadContext context, IRubyObject self, IRubyObject[] args) static IRubyObject
field_writer
(ThreadContext context, IRubyObject self, IRubyObject[] args) Class
<?> Will return the Java interface that most closely can represent this object, when working through Java integration translations.static IRubyObject
getJavaClass
(RubyModule target) final Object
getVariable
(int index) static IRubyObject
inherited
(ThreadContext context, IRubyObject recv, IRubyObject subclass) initialize_copy
(ThreadContext context, IRubyObject original) Initializes this object as a copy of the original, that is the parameter to this object.protected int
We override RubyBasicObject.inspectHashCode to be the identity hash of the contained object, so it remains consistent across wrappers.static void
installField
(ThreadContext context, String asName, Field field, RubyModule target) static IRubyObject
java_class
(IRubyObject self) java_method
(ThreadContext context, IRubyObject rubyName) java_method
(ThreadContext context, IRubyObject rubyName, IRubyObject argTypes) java_send
(ThreadContext context, IRubyObject rubyName) java_send
(ThreadContext context, IRubyObject[] args) java_send
(ThreadContext context, IRubyObject rubyName, IRubyObject argTypes) java_send
(ThreadContext context, IRubyObject rubyName, IRubyObject argTypes, IRubyObject arg0) Deprecated.marshal_dump
(ThreadContext context) marshal_load
(ThreadContext context, IRubyObject str) static IRubyObject
new_array
(ThreadContext context, IRubyObject self, IRubyObject len) static IRubyObject
op_aref
(ThreadContext context, IRubyObject self, IRubyObject[] args) static IRubyObject
persistent
(IRubyObject clazz, IRubyObject value) static IRubyObject
persistent
(ThreadContext context, IRubyObject clazz) static void
setJavaClass
(RubyClass target, Class<?> javaClass) static void
setJavaClass
(IRubyObject target, Class<?> javaClass) Deprecated.static void
setJavaClass
(ThreadContext context, IRubyObject target, Class<?> javaClass) void
void
setVariable
(int index, Object value) static RubyClass
singleton_class
(IRubyObject self) Deprecated.static RubyClass
singleton_class
(ThreadContext context, IRubyObject self) singletonClass
(ThreadContext context) rb_singleton_class Note: this method is specialized for RubyFixnum, RubySymbol, RubyNil and RubyBoolean Will either return the existing singleton class for this object, or create a new one and return that.<T> T
Convert the object to the specified Java class, if possible.unwrap()
static IRubyObject
wrap
(ThreadContext context, IRubyObject self, IRubyObject object) Deprecated.Methods inherited from class org.jruby.RubyObject
attachToObjectSpace, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, callInit, convertToType, dig, dig1, dig2, eqlInternal, equalInternal, equals, finishObjectClass, getNativeClassIndex, hashCode, inspect, op_eqq, puts, specificEval, toRubyString, toString
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, dataGetStructChecked, decode, display, dup, dupFinalizer, dupSetup, ensureInstanceVariablesSettable, eql, eql_p, eql_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, getVariableCount, getVariableList, getVariableNameList, hash, hash, hashyInspect, hasInstanceVariable, hasInstanceVariables, hasInternalVariable, hasVariables, id, infectBy, initialize, initialize_copy, inspect, 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, 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_equal, 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, singleton_method, singleton_method, singleton_method_added, singleton_method_removed, singleton_method_undefined, singleton_methods, specificEval, specificEval, specificEval, specificEval, syncVariables, syncVariables, taint, taint, tainted_p, testFrozen, testFrozen, to_a, to_a, to_s, to_s, 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
-
Constructor Details
-
JavaProxy
-
JavaProxy
-
-
Method Details
-
createJavaProxy
public static RubyClass createJavaProxy(ThreadContext context, RubyClass Object, RubyModule JavaProxyMethods) -
wrap
@Deprecated public static IRubyObject wrap(ThreadContext context, IRubyObject self, IRubyObject object) Deprecated. -
java_class
-
getJavaClass
- Parameters:
target
- (Java) proxy module/class- Returns:
- a java.lang.Class instance proxy (e.g. a java.lang.Integer.class wrapper)
-
setJavaClass
-
setJavaClass
Deprecated. -
setJavaClass
-
dataGetStruct
Description copied from interface:IRubyObject
Our version of Data_Get_Struct. Returns a wrapped data value if there is one, otherwise returns null.- Specified by:
dataGetStruct
in interfaceIRubyObject
- Overrides:
dataGetStruct
in classRubyBasicObject
- Returns:
- the object wrapped.
- See Also:
-
dataWrapStruct
Description copied from interface:IRubyObject
Our version of Data_Wrap_Struct. This method will just set a private pointer to the object provided. This pointer is transient and will not be accessible from Ruby.- Specified by:
dataWrapStruct
in interfaceIRubyObject
- Overrides:
dataWrapStruct
in classRubyBasicObject
- Parameters:
object
- the object to wrap- See Also:
-
getObject
-
setObject
-
unwrap
-
asJavaObject
Deprecated. -
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
-
inherited
-
singleton_class
Deprecated. -
singleton_class
-
op_aref
-
new_array
-
persistent
-
persistent
-
initialize_copy
Description copied from class:RubyBasicObject
Initializes this object as a copy of the original, that is the parameter to this object. Will make sure that the argument actually has the same real class as this object. It shouldn't be possible to initialize an object with something totally different.- Overrides:
initialize_copy
in classRubyBasicObject
- Parameters:
context
- the thread contextoriginal
- the original- Returns:
- a copy unless the same thing
-
cloneObject
-
installField
public static void installField(ThreadContext context, String asName, Field field, RubyModule target) -
field_accessor
public static IRubyObject field_accessor(ThreadContext context, IRubyObject self, IRubyObject[] args) -
field_reader
-
field_writer
-
equal_p
Description copied from class:RubyBasicObject
rb_obj_equal Will use Java identity equality.- Overrides:
equal_p
in classRubyBasicObject
- Parameters:
context
- the thread contextother
- to compare with- Returns:
- are they equal?
-
java_send
-
java_send
-
java_send
public IRubyObject java_send(ThreadContext context, IRubyObject rubyName, IRubyObject argTypes, IRubyObject arg0) -
java_send
-
java_method
-
java_method
-
marshal_dump
Deprecated. -
marshal_dump
-
marshal_load
-
inspectHashCode
protected int inspectHashCode()We override RubyBasicObject.inspectHashCode to be the identity hash of the contained object, so it remains consistent across wrappers.- Overrides:
inspectHashCode
in classRubyBasicObject
- Returns:
- The identity hashcode of the wrapped object
-
toJava
Description copied from interface:IRubyObject
Convert the object to the specified Java class, if possible.- Specified by:
toJava
in interfaceIRubyObject
- Overrides:
toJava
in classRubyBasicObject
- Type Parameters:
T
- type- Parameters:
type
- The target type to which the object should be converted.- Returns:
- java type
- See Also:
-
getVariable
- Specified by:
getVariable
in interfaceIRubyObject
- Overrides:
getVariable
in classRubyBasicObject
-
setVariable
- Specified by:
setVariable
in interfaceIRubyObject
- Overrides:
setVariable
in classRubyBasicObject
-
checkVariablesOnProxy
public void checkVariablesOnProxy() -
singletonClass
rb_singleton_class Note: this method is specialized for RubyFixnum, RubySymbol, RubyNil and RubyBoolean Will either return the existing singleton class for this object, or create a new one and return that.- Specified by:
singletonClass
in interfaceIRubyObject
- Overrides:
singletonClass
in classRubyBasicObject
- Parameters:
context
- the current thread context- Returns:
- the singleton of this type
-