org.jruby.javasupport
Class JavaObject

java.lang.Object
  extended by org.jruby.RubyBasicObject
      extended by org.jruby.RubyObject
          extended by org.jruby.javasupport.JavaObject
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<IRubyObject>, InstanceVariables, InternalVariables, IRubyObject, CoreObjectType
Direct Known Subclasses:
JavaArray, JavaClass

public class JavaObject
extends RubyObject

Author:
jpetersen
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.ObjectMethods
 
Nested classes/interfaces inherited from class org.jruby.RubyBasicObject
RubyBasicObject.BasicObjectMethods, RubyBasicObject.Finalizer
 
Field Summary
 
Fields inherited from class org.jruby.RubyObject
OBJECT_ALLOCATOR
 
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
 
Fields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY
 
Constructor Summary
protected JavaObject(Ruby runtime, java.lang.Object value)
           
protected JavaObject(Ruby runtime, RubyClass rubyClass, java.lang.Object value)
           
 
Method Summary
 IRubyObject afill(IRubyObject beginIndex, IRubyObject endIndex, IRubyObject someValue)
           
 IRubyObject aref(IRubyObject index)
           
 IRubyObject aset(IRubyObject index, IRubyObject someValue)
           
static RubyClass createJavaObjectClass(Ruby runtime, RubyModule javaModule)
           
 java.lang.Object dataGetStruct()
          Our version of Data_Get_Struct.
 void dataWrapStruct(java.lang.Object object)
          Our version of Data_Wrap_Struct.
 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.
 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 getValue()
           
 RubyFixnum hash()
          rb_obj_id Will return the hash code of this object.
 int hashCode()
          Override the Object#hashCode method to make sure that the Ruby hash is actually used as the hashcode for Ruby objects.
 IRubyObject is_java_proxy()
           
 IRubyObject java_class()
           
 RubyString java_type()
           
 RubyFixnum length()
           
 IRubyObject marshal_dump()
           
 IRubyObject marshal_load(ThreadContext context, IRubyObject str)
           
 IRubyObject op_equal(IRubyObject other)
           
protected static void registerRubyMethods(Ruby runtime, RubyClass result)
           
 IRubyObject ruby_synchronized(ThreadContext context, Block block)
           
 IRubyObject same(IRubyObject other)
           
 IRubyObject to_s()
          rb_any_to_s call-seq: obj.to_s => string Returns a string representing obj.
static JavaObject wrap(Ruby runtime, java.lang.Object value)
           
 
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, toString, 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, 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
 

Constructor Detail

JavaObject

protected JavaObject(Ruby runtime,
                     RubyClass rubyClass,
                     java.lang.Object value)

JavaObject

protected JavaObject(Ruby runtime,
                     java.lang.Object value)
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()

wrap

public static JavaObject wrap(Ruby runtime,
                              java.lang.Object value)

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

getValue

public java.lang.Object getValue()

createJavaObjectClass

public static RubyClass createJavaObjectClass(Ruby runtime,
                                              RubyModule javaModule)

registerRubyMethods

protected static void registerRubyMethods(Ruby runtime,
                                          RubyClass result)

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 RubyObject

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 RubyObject

hash

public RubyFixnum hash()
Description copied from class: RubyObject
rb_obj_id Will return the hash code of this object. In comparison to MRI, this method will use the Java identity hash code instead of using rb_obj_id, since the usage of id in JRuby will incur the cost of some. ObjectSpace maintenance.

Overrides:
hash in class RubyObject

to_s

public IRubyObject to_s()
Description copied from class: RubyObject
rb_any_to_s call-seq: obj.to_s => string Returns a string representing obj. The default to_s prints the object's class and an encoding of the object id. As a special case, the top-level object that is the initial execution context of Ruby programs returns ``main.''

Overrides:
to_s in class RubyObject

op_equal

public IRubyObject op_equal(IRubyObject other)

same

public IRubyObject same(IRubyObject other)

java_type

public RubyString java_type()

java_class

public IRubyObject java_class()

length

public RubyFixnum length()

aref

public IRubyObject aref(IRubyObject index)

aset

public IRubyObject aset(IRubyObject index,
                        IRubyObject someValue)

afill

public IRubyObject afill(IRubyObject beginIndex,
                         IRubyObject endIndex,
                         IRubyObject someValue)

is_java_proxy

public IRubyObject is_java_proxy()

ruby_synchronized

public IRubyObject ruby_synchronized(ThreadContext context,
                                     Block block)

marshal_dump

public IRubyObject marshal_dump()

marshal_load

public IRubyObject marshal_load(ThreadContext context,
                                IRubyObject str)


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