org.jruby
Class RubyStruct

java.lang.Object
  extended by org.jruby.RubyObject
      extended by org.jruby.RubyStruct
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, InstanceVariables, InternalVariables, IRubyObject, CoreObjectType

public class RubyStruct
extends RubyObject

Author:
jpetersen
See Also:
Serialized Form

Nested Class Summary
static class RubyStruct.StructMethods
           
 
Nested classes/interfaces inherited from class org.jruby.RubyObject
RubyObject.Finalizer, RubyObject.ObjectMethods, RubyObject.VariableTableEntry
 
Field Summary
 
Fields inherited from class org.jruby.RubyObject
ALL_F, ERR_INSECURE_SET_INST_VAR, FALSE_F, FL_USHIFT, flags, FROZEN_F, metaClass, metaClassName, NEVER, NIL_F, OBJECT_ALLOCATOR, TAINTED_F, UNDEF, USER0_F, USER1_F, USER2_F, USER3_F, USER4_F, USER5_F, USER6_F, USER7_F, VARIABLE_TABLE_DEFAULT_CAPACITY, VARIABLE_TABLE_EMPTY_TABLE, VARIABLE_TABLE_LOAD_FACTOR, VARIABLE_TABLE_MAXIMUM_CAPACITY, variableTable, variableTableSize, variableTableThreshold
 
Fields inherited from interface org.jruby.runtime.builtin.IRubyObject
NULL_ARRAY
 
Constructor Summary
RubyStruct(Ruby runtime, RubyClass rubyClass)
          Constructor for RubyStruct.
 
Method Summary
 IRubyObject aref(IRubyObject key)
           
 IRubyObject aset(IRubyObject key, IRubyObject value)
           
 void copySpecialInstanceVariables(IRubyObject clone)
          Lots of MRI objects keep their state in non-lookupable ivars (e:g.
static RubyClass createStructClass(Ruby runtime)
           
 IRubyObject each_pair(ThreadContext context, Block block)
           
 IRubyObject each(ThreadContext context, Block block)
           
 IRubyObject eql_p(ThreadContext context, IRubyObject other)
           
 IRubyObject get(int index)
           
 int getNativeTypeIndex()
          This is overridden in the other concrete Java builtins to provide a fast way to determine what type they are.
 RubyFixnum hash(ThreadContext context)
           
 IRubyObject initialize_copy(IRubyObject arg)
          rb_obj_init_copy Initializes this object as a copy of the original, that is the parameter to this object.
 IRubyObject initialize(IRubyObject[] args, Block unusedBlock)
           
 IRubyObject inspect()
          rb_obj_inspect call-seq: obj.inspect => string Returns a string containing a human-readable representation of obj.
static void marshalTo(RubyStruct struct, MarshalStream output)
           
 RubyArray members()
           
static RubyArray members(IRubyObject recv, Block block)
           
static RubyClass newInstance(IRubyObject recv, IRubyObject[] args, Block block)
          Create new Struct class.
static RubyStruct newStruct(IRubyObject recv, IRubyObject[] args, Block block)
          Create new Structure.
 IRubyObject op_equal(ThreadContext context, IRubyObject other)
          rb_obj_equal Will by default use identity equality to compare objects.
 RubyArray select(ThreadContext context, Block block)
           
 IRubyObject set(IRubyObject value, int index)
           
 RubyFixnum size()
           
 RubyArray to_a()
          rb_any_to_a call-seq: obj.to_a -> anArray Returns an array representation of obj.
 IRubyObject to_s()
          rb_any_to_s call-seq: obj.to_s => string Returns a string representing obj.
static RubyStruct unmarshalFrom(UnmarshalStream input)
           
 IRubyObject values_at(IRubyObject[] args)
           
 
Methods inherited from class org.jruby.RubyObject
addFinalizer, anyToString, asJavaString, asString, attachToObjectSpace, callInit, callMethod, callMethod, callMethod, callMethod, callMethod, callMethod, callSuper, checkArrayType, checkFrozen, checkStringType, convertToArray, convertToFloat, convertToHash, convertToInteger, convertToInteger, convertToString, convertToType, createObjectClass, dataGetStruct, dataWrapStruct, display, dup, ensureInstanceVariablesSettable, eql_p, eql, eqlInternal, equal_p, equalInternal, equals, evalUnder, extend, fastGetInstanceVariable, fastGetInternalVariable, fastHasInstanceVariable, fastHasInternalVariable, fastSetInstanceVariable, fastSetInternalVariable, freeze, frozen_p, getFlag, getInstanceVariable, getInstanceVariableList, getInstanceVariableNameList, getInstanceVariables, getInternalVariable, getInternalVariableList, getInternalVariables, getJavaClass, getMetaClass, getRuntime, getSingletonClass, getSingletonClassClone, getType, getVariableCount, getVariableList, getVariableMap, getVariableNameList, hash, hashCode, hasInstanceVariable, hasInternalVariable, hasVariables, id_deprecated, id, infectBy, initialize, instance_eval, instance_exec, instance_of_p, instance_variable_defined_p, instance_variable_get, instance_variable_set, instance_variables, isClass, isFalse, isFrozen, isImmediate, isModule, isNil, isRubyVariable, isTaint, isTrue, kind_of_p, makeMetaClass, method, methods, nil_p, op_eqq, op_match, private_methods, protected_methods, public_methods, puts, rbClone, remove_instance_variable, removeFinalizers, removeInstanceVariable, removeInternalVariable, respond_to_p, respond_to_p, respondsTo, send, setFlag, setFrozen, setInstanceVariable, setInternalVariable, setMetaClass, setTaint, singleton_methods, specificEval, syncVariables, taint, tainted_p, testFrozen, toString, type_deprecated, type, untaint, validateInstanceVariable, variableTableContains, variableTableFastContains, variableTableFastFetch, variableTableFastStore, variableTableFetch, variableTableGetMap, variableTableGetMap, variableTableGetSize, variableTableGetTable, variableTableReadLocked, variableTableRehash, variableTableRemove, variableTableStore, variableTableSync
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RubyStruct

public RubyStruct(Ruby runtime,
                  RubyClass rubyClass)
Constructor for RubyStruct.

Parameters:
runtime -
rubyClass -
Method Detail

createStructClass

public static RubyClass createStructClass(Ruby runtime)

getNativeTypeIndex

public int getNativeTypeIndex()
Description copied from class: RubyObject
This is overridden in the other concrete Java builtins to provide a fast way to determine what type they are. Will generally return a value from org.jruby.runtime.ClassIndex

Specified by:
getNativeTypeIndex in interface CoreObjectType
Overrides:
getNativeTypeIndex in class RubyObject
Returns:
the ClassIndex of the native type this object was constructed from
See Also:
org.jruby.runtime.ClassInde

hash

public RubyFixnum hash(ThreadContext context)

newInstance

public static RubyClass newInstance(IRubyObject recv,
                                    IRubyObject[] args,
                                    Block block)
Create new Struct class. MRI: rb_struct_s_def / make_struct


newStruct

public static RubyStruct newStruct(IRubyObject recv,
                                   IRubyObject[] args,
                                   Block block)
Create new Structure. MRI: struct_alloc


initialize

public IRubyObject initialize(IRubyObject[] args,
                              Block unusedBlock)

members

public static RubyArray members(IRubyObject recv,
                                Block block)

members

public RubyArray members()

select

public RubyArray select(ThreadContext context,
                        Block block)

set

public IRubyObject set(IRubyObject value,
                       int index)

get

public IRubyObject get(int index)

copySpecialInstanceVariables

public void copySpecialInstanceVariables(IRubyObject clone)
Description copied from class: RubyObject
Lots of MRI objects keep their state in non-lookupable ivars (e:g. Range, Struct, etc). This method is responsible for dupping our java field equivalents

Overrides:
copySpecialInstanceVariables in class RubyObject

op_equal

public IRubyObject op_equal(ThreadContext context,
                            IRubyObject other)
Description copied from class: RubyObject
rb_obj_equal Will by default use identity equality to compare objects. This follows the Ruby semantics.

Specified by:
op_equal in interface IRubyObject
Overrides:
op_equal in class RubyObject

eql_p

public IRubyObject eql_p(ThreadContext context,
                         IRubyObject other)

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

inspect

public IRubyObject inspect()
Description copied from class: RubyObject
rb_obj_inspect call-seq: obj.inspect => string Returns a string containing a human-readable representation of obj. If not overridden, uses the to_s method to generate the string. [ 1, 2, 3..4, 'five' ].inspect #=> "[1, 2, 3..4, \"five\"]" Time.new.inspect #=> "Wed Apr 09 08:54:39 CDT 2003"

Specified by:
inspect in interface IRubyObject
Overrides:
inspect in class RubyObject
Returns:
String

to_a

public RubyArray to_a()
Description copied from class: RubyObject
rb_any_to_a call-seq: obj.to_a -> anArray Returns an array representation of obj. For objects of class Object and others that don't explicitly override the method, the return value is an array containing self. However, this latter behavior will soon be obsolete. self.to_a #=> -:1: warning: default `to_a' will be obsolete "hello".to_a #=> ["hello"] Time.new.to_a #=> [39, 54, 8, 9, 4, 2003, 3, 99, true, "CDT"] The default to_a method is deprecated.

Overrides:
to_a in class RubyObject

size

public RubyFixnum size()

each

public IRubyObject each(ThreadContext context,
                        Block block)

each_pair

public IRubyObject each_pair(ThreadContext context,
                             Block block)

aref

public IRubyObject aref(IRubyObject key)

aset

public IRubyObject aset(IRubyObject key,
                        IRubyObject value)

values_at

public IRubyObject values_at(IRubyObject[] args)

marshalTo

public static void marshalTo(RubyStruct struct,
                             MarshalStream output)
                      throws java.io.IOException
Throws:
java.io.IOException

unmarshalFrom

public static RubyStruct unmarshalFrom(UnmarshalStream input)
                                throws java.io.IOException
Throws:
java.io.IOException

initialize_copy

public IRubyObject initialize_copy(IRubyObject arg)
Description copied from class: RubyObject
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 RubyObject


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