com.ibm.dtfj.java
Interface JavaReference


public interface JavaReference

Represents a Java reference.

Author:
nhardman

Field Summary
static int HEAP_ROOT_CLASSLOADER
          Classloader heap root
static int HEAP_ROOT_FINALIZABLE_OBJ
          Finalizable object heap root
static int HEAP_ROOT_JNI_GLOBAL
          JNI global reference heap root
static int HEAP_ROOT_JNI_LOCAL
          JNI local reference heap root
static int HEAP_ROOT_MONITOR
          Monitor heap root
static int HEAP_ROOT_OTHER
          Other heap root type
static int HEAP_ROOT_STACK_LOCAL
          Stack local heap root
static int HEAP_ROOT_STRINGTABLE
          Stringtable heap root
static int HEAP_ROOT_SYSTEM_CLASS
          System class heap root
static int HEAP_ROOT_THREAD
          Thread heap root
static int HEAP_ROOT_UNFINALIZED_OBJ
          Unfinalized object heap root
static int HEAP_ROOT_UNKNOWN
          Unknown heap root type
static int REACHABILITY_PHANTOM
          Reachability of target object via this reference is Phantom
static int REACHABILITY_SOFT
          Reachability of target object via this reference is Soft
static int REACHABILITY_STRONG
          Reachability of target object via this reference is Strong
static int REACHABILITY_UNKNOWN
          Reachability of target object via this reference is unknown
static int REACHABILITY_WEAK
          Reachability of target object via this reference is Weak
static int REFERENCE_ARRAY_ELEMENT
          Reference from an array to one of its elements
static int REFERENCE_CLASS
          Reference from an object to its class
static int REFERENCE_CLASS_LOADER
          Reference from a class to its class loader
static int REFERENCE_CONSTANT_POOL
          Reference from a class to a resolved entry in the constant pool
static int REFERENCE_FIELD
          Reference from an object to the value of one of its instance fields
static int REFERENCE_INTERFACE
          Reference from a class to one of its interfaces
static int REFERENCE_PROTECTION_DOMAIN
          Reference from a class to its protection domain
static int REFERENCE_SIGNERS
          Reference from a class to its signers array
static int REFERENCE_STATIC_FIELD
          Reference from a class to the value of one of its static fields
static int REFERENCE_SUPERCLASS
          Reference from a class to its superclass
static int REFERENCE_UNKNOWN
          Unknown reference type
 
Method Summary
 java.lang.String getDescription()
          Get a string describing the reference type.
 int getReachability()
          Get the reachability of the target object via this specific reference.
 int getReferenceType()
          Get the reference type, as defined in the JVMTI specification.
 int getRootType()
          Get the root type, as defined in the JVMTI specification.
 java.lang.Object getSource()
          Get the source of this reference if available.
 java.lang.Object getTarget()
          Get the object referred to by this reference.
 boolean isClassReference()
          Does this reference point to a class?
 boolean isObjectReference()
          Does this reference point to an object in the heap?
 

Field Detail

HEAP_ROOT_UNKNOWN

static final int HEAP_ROOT_UNKNOWN
Unknown heap root type

See Also:
Constant Field Values

HEAP_ROOT_JNI_GLOBAL

static final int HEAP_ROOT_JNI_GLOBAL
JNI global reference heap root

See Also:
Constant Field Values

HEAP_ROOT_SYSTEM_CLASS

static final int HEAP_ROOT_SYSTEM_CLASS
System class heap root

See Also:
Constant Field Values

HEAP_ROOT_MONITOR

static final int HEAP_ROOT_MONITOR
Monitor heap root

See Also:
Constant Field Values

HEAP_ROOT_STACK_LOCAL

static final int HEAP_ROOT_STACK_LOCAL
Stack local heap root

See Also:
Constant Field Values

HEAP_ROOT_JNI_LOCAL

static final int HEAP_ROOT_JNI_LOCAL
JNI local reference heap root

See Also:
Constant Field Values

HEAP_ROOT_THREAD

static final int HEAP_ROOT_THREAD
Thread heap root

See Also:
Constant Field Values

HEAP_ROOT_OTHER

static final int HEAP_ROOT_OTHER
Other heap root type

See Also:
Constant Field Values

HEAP_ROOT_FINALIZABLE_OBJ

static final int HEAP_ROOT_FINALIZABLE_OBJ
Finalizable object heap root

See Also:
Constant Field Values

HEAP_ROOT_UNFINALIZED_OBJ

static final int HEAP_ROOT_UNFINALIZED_OBJ
Unfinalized object heap root

See Also:
Constant Field Values

HEAP_ROOT_CLASSLOADER

static final int HEAP_ROOT_CLASSLOADER
Classloader heap root

See Also:
Constant Field Values

HEAP_ROOT_STRINGTABLE

static final int HEAP_ROOT_STRINGTABLE
Stringtable heap root

See Also:
Constant Field Values

REFERENCE_UNKNOWN

static final int REFERENCE_UNKNOWN
Unknown reference type

See Also:
Constant Field Values

REFERENCE_CLASS

static final int REFERENCE_CLASS
Reference from an object to its class

See Also:
Constant Field Values

REFERENCE_FIELD

static final int REFERENCE_FIELD
Reference from an object to the value of one of its instance fields

See Also:
Constant Field Values

REFERENCE_ARRAY_ELEMENT

static final int REFERENCE_ARRAY_ELEMENT
Reference from an array to one of its elements

See Also:
Constant Field Values

REFERENCE_CLASS_LOADER

static final int REFERENCE_CLASS_LOADER
Reference from a class to its class loader

See Also:
Constant Field Values

REFERENCE_SIGNERS

static final int REFERENCE_SIGNERS
Reference from a class to its signers array

See Also:
Constant Field Values

REFERENCE_PROTECTION_DOMAIN

static final int REFERENCE_PROTECTION_DOMAIN
Reference from a class to its protection domain

See Also:
Constant Field Values

REFERENCE_INTERFACE

static final int REFERENCE_INTERFACE
Reference from a class to one of its interfaces

See Also:
Constant Field Values

REFERENCE_STATIC_FIELD

static final int REFERENCE_STATIC_FIELD
Reference from a class to the value of one of its static fields

See Also:
Constant Field Values

REFERENCE_CONSTANT_POOL

static final int REFERENCE_CONSTANT_POOL
Reference from a class to a resolved entry in the constant pool

See Also:
Constant Field Values

REFERENCE_SUPERCLASS

static final int REFERENCE_SUPERCLASS
Reference from a class to its superclass

See Also:
Constant Field Values

REACHABILITY_UNKNOWN

static final int REACHABILITY_UNKNOWN
Reachability of target object via this reference is unknown

See Also:
Constant Field Values

REACHABILITY_STRONG

static final int REACHABILITY_STRONG
Reachability of target object via this reference is Strong

See Also:
Constant Field Values

REACHABILITY_SOFT

static final int REACHABILITY_SOFT
Reachability of target object via this reference is Soft

See Also:
Constant Field Values

REACHABILITY_WEAK

static final int REACHABILITY_WEAK
Reachability of target object via this reference is Weak

See Also:
Constant Field Values

REACHABILITY_PHANTOM

static final int REACHABILITY_PHANTOM
Reachability of target object via this reference is Phantom

See Also:
Constant Field Values
Method Detail

getRootType

int getRootType()
                throws CorruptDataException
Get the root type, as defined in the JVMTI specification.

Returns:
an integer representing the root type, see HEAP_ROOT_ statics above.
Throws:
CorruptDataException

getReferenceType

int getReferenceType()
                     throws CorruptDataException
Get the reference type, as defined in the JVMTI specification.

Returns:
an integer representing the reference type, see REFERENCE_ statics above.
Throws:
CorruptDataException

getReachability

int getReachability()
                    throws CorruptDataException
Get the reachability of the target object via this specific reference.

Returns:
an integer representing the reachability, see REACHABILITY_ statics above.
Throws:
CorruptDataException

getDescription

java.lang.String getDescription()
Get a string describing the reference type. Implementors should not depend on the contents or identity of this string. e.g. "JNI Weak global reference", "Instance field 'MyClass.value'", "Constant pool string constant"

Returns:
a String describing the reference type

isObjectReference

boolean isObjectReference()
                          throws DataUnavailable,
                                 CorruptDataException
Does this reference point to an object in the heap?

Returns:
true if the target of this root is an object
Throws:
DataUnavailable
CorruptDataException

isClassReference

boolean isClassReference()
                         throws DataUnavailable,
                                CorruptDataException
Does this reference point to a class?

Returns:
true if the target of this root is a class
Throws:
DataUnavailable
CorruptDataException

getTarget

java.lang.Object getTarget()
                           throws DataUnavailable,
                                  CorruptDataException
Get the object referred to by this reference.

Returns:
a JavaObject or a JavaClass
Throws:
DataUnavailable
CorruptDataException

getSource

java.lang.Object getSource()
                           throws DataUnavailable,
                                  CorruptDataException
Get the source of this reference if available.

Returns:
a JavaClass, JavaObject, JavaStackFrame or null if unknown
Throws:
DataUnavailable
CorruptDataException