org.jruby.java.proxies
Class JavaProxy

java.lang.Object
  extended by org.jruby.RubyBasicObject
      extended by org.jruby.RubyObject
          extended by org.jruby.java.proxies.JavaProxy
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<IRubyObject>, InstanceVariables, InternalVariables, IRubyObject, CoreObjectType
Direct Known Subclasses:
ArrayJavaProxy, ConcreteJavaProxy, InterfaceJavaProxy

public class JavaProxy
extends RubyObject

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.Data
 
Nested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.Finalizer
 
Field Summary
protected  java.lang.Object object
           
 
Fields inherited from class org.jruby.RubyObject
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, 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, USER8_F
 
Fields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY
 
Constructor Summary
JavaProxy(Ruby runtime, RubyClass klazz)
           
 
Method Summary
static RubyClass createJavaProxy(ThreadContext context)
           
 java.lang.Object dataGetStruct()
          Our version of Data_Get_Struct.
 void dataWrapStruct(java.lang.Object object)
          Our version of Data_Wrap_Struct.
 IRubyObject equal_p(ThreadContext context, IRubyObject other)
          rb_obj_equal Will use Java identity equality.
static IRubyObject field_accessor(ThreadContext context, IRubyObject recv, IRubyObject[] args)
           
static IRubyObject field_reader(ThreadContext context, IRubyObject recv, IRubyObject[] args)
           
static IRubyObject field_writer(ThreadContext context, IRubyObject recv, IRubyObject[] args)
           
 java.lang.Class getJavaClass()
          Will return the Java interface that most closely can represent this object, when working through JAva integration translations.
 java.lang.Object getObject()
           
static IRubyObject inherited(ThreadContext context, IRubyObject recv, IRubyObject subclass)
           
 IRubyObject initialize_copy(IRubyObject original)
          rb_obj_init_copy Initializes this object as a copy of the original, that is the parameter to this object.
protected  int inspectHashCode()
          We override RubyBasicObject.inspectHashCode to be the identity hash of the contained object, so it remains consistent across wrappers.
 IRubyObject java_method(ThreadContext context, IRubyObject rubyName)
           
 IRubyObject java_method(ThreadContext context, IRubyObject rubyName, IRubyObject argTypes)
           
 IRubyObject java_send(ThreadContext context, IRubyObject rubyName)
           
 IRubyObject java_send(ThreadContext context, IRubyObject[] args)
           
 IRubyObject java_send(ThreadContext context, IRubyObject rubyName, IRubyObject argTypes)
           
 IRubyObject java_send(ThreadContext context, IRubyObject rubyName, IRubyObject argTypes, IRubyObject arg0)
           
 IRubyObject marshal_dump()
           
 IRubyObject marshal_load(ThreadContext context, IRubyObject str)
           
static IRubyObject op_aref(ThreadContext context, IRubyObject recv, IRubyObject[] args)
           
 void setObject(java.lang.Object object)
           
static IRubyObject singleton_class(IRubyObject recv)
           
 java.lang.Object toJava(java.lang.Class type)
          Convert the object to the specified Java class, if possible.
 java.lang.Object unwrap()
           
 
Methods inherited from class org.jruby.RubyObject
attachToObjectSpace, callInit, callInit, callInit, callInit, callInit, convertToType, createObjectClass, eqlInternal, equalInternal, equals, getNativeTypeIndex, hashCode, initialize, op_eqq, puts, specificEval, toString
 
Methods inherited from class org.jruby.RubyBasicObject
addFinalizer, anyToString, asJavaString, asString, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkCallMethod, checkFrozen, checkStringType, checkStringType19, compareTo, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToInteger, convertToString, copyInstanceVariablesInto, copySpecialInstanceVariables, createBasicObjectClass, dataGetStructChecked, display, dup, ensureInstanceVariablesSettable, eql_p, eql, equal_p19, evalUnder, extend, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, freeze, frozen_p, getFlag, getInstanceEvalClass, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariables, getMetaClass, getObjectId, getRuntime, getSingletonClass, getSingletonClassClone, getType, getVariable, getVariableCount, getVariableList, getVariableNameList, hash, hashyInspect, hasInstanceVariable, hasInternalVariable, hasVariables, id_deprecated, id, infectBy, initialize19, initialize19, initialize19, initialize19, initialize19, initObjectId, inspect, instance_eval, instance_eval, instance_eval, instance_eval, instance_eval19, instance_eval19, instance_eval19, instance_eval19, instance_exec, instance_exec19, instance_of_p, instance_variable_defined_p, instance_variable_get, instance_variable_set, instance_variables, instance_variables19, isBuiltin, isClass, isFalse, isFrozen, isImmediate, isModule, isNil, isTaint, isTrue, isUntrusted, kind_of_p, makeMetaClass, method_missing19, method, method19, methods, methods, methods19, nil_p, op_cmp, op_equal_19, op_equal, op_match, op_match19, op_not_equal, op_not_match, op_not, private_methods, private_methods19, protected_methods, protected_methods19, public_methods, public_methods19, rbClone, remove_instance_variable, removeFinalizers, removeInstanceVariable, removeInternalVariable, respond_to_p, respond_to_p, respond_to_p19, respond_to_p19, respondsTo, respondsToMissing, respondsToMissing, send, send, send, send, send, send19, send19, send19, send19, send19, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setTaint, setUntrusted, setVariable, singleton_method_added19, singleton_method_removed19, singleton_method_undefined19, singleton_methods, singleton_methods19, specificEval, specificEval, specificEval, specificEval, syncVariables, syncVariables, taint, taint, tainted_p, testFrozen, testFrozen, to_a, to_s, trust, type_deprecated, type, untaint, untrust, untrusted_p, 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
 

Field Detail

object

protected java.lang.Object object
Constructor Detail

JavaProxy

public JavaProxy(Ruby runtime,
                 RubyClass klazz)
Method Detail

dataGetStruct

public java.lang.Object 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 interface IRubyObject
Overrides:
dataGetStruct in class RubyBasicObject
Returns:
the object wrapped.
See Also:
IRubyObject.dataGetStruct()

dataWrapStruct

public void dataWrapStruct(java.lang.Object object)
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 interface IRubyObject
Overrides:
dataWrapStruct in class RubyBasicObject
Parameters:
object - the object to wrap
See Also:
org.jruby.runtime.builtin.IRubyObject#dataWrapStruct()

getObject

public java.lang.Object getObject()

setObject

public void setObject(java.lang.Object object)

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

createJavaProxy

public static RubyClass createJavaProxy(ThreadContext context)

inherited

public static IRubyObject inherited(ThreadContext context,
                                    IRubyObject recv,
                                    IRubyObject subclass)

singleton_class

public static IRubyObject singleton_class(IRubyObject recv)

op_aref

public static IRubyObject op_aref(ThreadContext context,
                                  IRubyObject recv,
                                  IRubyObject[] args)

initialize_copy

public IRubyObject initialize_copy(IRubyObject original)
Description copied from class: RubyBasicObject
rb_obj_init_copy 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 class RubyBasicObject

field_accessor

public static IRubyObject field_accessor(ThreadContext context,
                                         IRubyObject recv,
                                         IRubyObject[] args)

field_reader

public static IRubyObject field_reader(ThreadContext context,
                                       IRubyObject recv,
                                       IRubyObject[] args)

field_writer

public static IRubyObject field_writer(ThreadContext context,
                                       IRubyObject recv,
                                       IRubyObject[] args)

equal_p

public IRubyObject equal_p(ThreadContext context,
                           IRubyObject other)
Description copied from class: RubyBasicObject
rb_obj_equal Will use Java identity equality.

Overrides:
equal_p in class RubyBasicObject

java_send

public IRubyObject java_send(ThreadContext context,
                             IRubyObject rubyName)

java_send

public IRubyObject java_send(ThreadContext context,
                             IRubyObject rubyName,
                             IRubyObject argTypes)

java_send

public IRubyObject java_send(ThreadContext context,
                             IRubyObject rubyName,
                             IRubyObject argTypes,
                             IRubyObject arg0)

java_send

public IRubyObject java_send(ThreadContext context,
                             IRubyObject[] args)

java_method

public IRubyObject java_method(ThreadContext context,
                               IRubyObject rubyName)

java_method

public IRubyObject java_method(ThreadContext context,
                               IRubyObject rubyName,
                               IRubyObject argTypes)

marshal_dump

public IRubyObject marshal_dump()

marshal_load

public IRubyObject marshal_load(ThreadContext context,
                                IRubyObject str)

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 class RubyBasicObject
Returns:
The identity hashcode of the wrapped object

toJava

public java.lang.Object toJava(java.lang.Class type)
Description copied from interface: IRubyObject
Convert the object to the specified Java class, if possible.

Specified by:
toJava in interface IRubyObject
Overrides:
toJava in class RubyBasicObject
Parameters:
type - The target type to which the object should be converted.
See Also:
IRubyObject.toJava

unwrap

public java.lang.Object unwrap()


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