com.ibm.dtfj.java
Interface JavaObject


public interface JavaObject

Represents a Java object


Method Summary
 void arraycopy(int srcStart, java.lang.Object dst, int dstStart, int length)
          Copies data from the image array into a local Java array.
 boolean equals(java.lang.Object obj)
           
 int getArraySize()
           
 long getHashcode()
          Fetch the basic hash code for the object.
 ImagePointer getID()
          The ID of an object is a unique address is memory which identifies the object.
 JavaClass getJavaClass()
           
 long getPersistentHashcode()
          Fetch the basic hash code of the object in the image.
 java.util.Iterator getSections()
          An object is represented in the Java runtime by one or more regions of memory.
 long getSize()
           
 int hashCode()
           
 boolean isArray()
           
 

Method Detail

getJavaClass

public JavaClass getJavaClass()
                       throws CorruptDataException
Returns:
the JavaClass instance which represents the class of this object
Throws:
CorruptDataException

isArray

public boolean isArray()
                throws CorruptDataException
Returns:
true if the receiver represents an instance of an array, or false otherwise
Throws:
CorruptDataException

getArraySize

public int getArraySize()
                 throws CorruptDataException
Returns:
the number of elements in this array

Throws:
java.lang.IllegalArgumentException - if the receiver is not an array
CorruptDataException

arraycopy

public void arraycopy(int srcStart,
                      java.lang.Object dst,
                      int dstStart,
                      int length)
               throws CorruptDataException,
                      MemoryAccessException
Copies data from the image array into a local Java array. The dst object must be an array of the appropriate type -- a base type array for base types, or a JavaObject array for reference arrays.

Parameters:
srcStart - index in the receiver to start copying from
dst - the destination array
dstStart - index in dst to start copying into
length - the number of elements to be copied
Throws:
java.lang.IllegalArgumentException - if the receiver is not an array, or if dst is not an array of the appropriate type
java.lang.IndexOutOfBoundsException - if srcStart, dstStart, or length are out of bounds in either the receiver or dst
CorruptDataException
MemoryAccessException

getSize

public long getSize()
             throws CorruptDataException
Returns:
the number of bytes of memory occupied by this object. The memory may not necessarily be contiguous
Throws:
CorruptDataException

getHashcode

public long getHashcode()
                 throws DataUnavailable,
                        CorruptDataException
Fetch the basic hash code for the object. This is the hash code which would be returned if a Java thread had requested it. Typically the hash code is based on the address of an object, and may change if the object is moved by a garbage collect cycle.

Returns:
the basic hash code of the object in the image.
Throws:
DataUnavailable - if the hash code cannot be determined
CorruptDataException
See Also:
getPersistentHashcode()

getPersistentHashcode

public long getPersistentHashcode()
                           throws DataUnavailable,
                                  CorruptDataException
Fetch the basic hash code of the object in the image. This hash code is guaranteed to be persistent between multiple snapshots of the same Image. If the hash code cannot be determined, or if the hash code for this object could change between snapshots, an exception is thrown.

If the VM uses a 'hasBeenHashed' bit, the value of this bit can be inferred by calling getPersistentHashcode(). If the persistent hash code is not available, then the 'hasBeenHashed' bit has not been set, and the hash of the object could change if the object moves between snapshots

Returns:
the basic hash code of the object in the image
Throws:
DataUnavailable - if a hash code cannot be determined, or if the hash code could change between successive snapshots
CorruptDataException
See Also:
getHashcode()

getID

public ImagePointer getID()
The ID of an object is a unique address is memory which identifies the object. The data at this memory is implementation defined. The object may be noncontiguous. Portions of the object may appear below or above this address.

Returns:
the runtime-wide unique identifier for the object

getSections

public java.util.Iterator getSections()
An object is represented in the Java runtime by one or more regions of memory. These include the object's header and the data in the object. In certain allocation strategies, an object's header and data may be allocated contiguously. In this case, this method may return an iterator for a single section. In other schemes, the header may be separate from the data or the data may be broken up into multiple regions. Additionally, this function does not guarantee that the memory used by this object is not also shared by one or more other objects. Callers should not make any assumptions about the contents of the memory.

Returns:
a collection of sections that make up this object
See Also:
ImageSection, CorruptData

equals

public boolean equals(java.lang.Object obj)
Parameters:
obj -
Returns:
True obj refers to the same Java Object in the image

hashCode

public int hashCode()