|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.jrockit.memleak.value.AbstractObjectInfo
public abstract class AbstractObjectInfo
Representation of an object reference, including its class and ID.
Field Summary | |
---|---|
protected ClassInfo |
classInfo
The ClassInfo for this object, never null. |
protected int |
objectID
The object ID for this object. |
Fields inherited from interface com.jrockit.memleak.IObjectInfo |
---|
EMPTY_ARRAY |
Constructor Summary | |
---|---|
AbstractObjectInfo(int objectID,
ClassInfo classInfo)
|
Method Summary | ||
---|---|---|
boolean |
equals(AbstractObjectInfo other)
|
|
boolean |
equals(java.lang.Object other)
|
|
ClassInfo |
getClassInfo()
|
|
|
getField(java.lang.String fieldName,
java.lang.Class<T> type,
Policy policy)
Get the actual primitive wrapper or object
representation of of the most visible field that has the name
fieldName and is assignable to the class type
as per IValue.isAssignableTo(Class) in the object represented by
this IObjectInfo . |
|
IObjectInfo |
getFieldReference(java.lang.String fieldName,
Policy policy)
Get the IObjectInfo corresponding to the value of the
most visible non-primitive field with the name
fieldName in the object represented by this
IObjectInfo . |
|
IFieldValue |
getFieldValue(java.lang.String fieldName,
java.lang.Class<?> type,
Policy policy)
Get the IFieldValue of the most visible field that has
the name fieldName and is assignable to the class
type as per IValue.isAssignableTo(Class) in the
object represented by this IObjectInfo . |
|
LimitedNumber |
getKeepAliveSize(long stopAt,
Policy policy)
Get the total size of all objects held on to by this object (the transitive closure). |
|
int |
getObjectId()
|
|
int |
hashCode()
|
|
boolean |
isDiscarded()
|
|
boolean |
isValid()
Is this a valid reference to an actual object? |
|
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface com.jrockit.memleak.IObjectInfo |
---|
getFieldValues |
Field Detail |
---|
protected final int objectID
protected final ClassInfo classInfo
ClassInfo
for this object, never null.
Constructor Detail |
---|
public AbstractObjectInfo(int objectID, ClassInfo classInfo)
objectID
- classInfo
- Method Detail |
---|
public int getObjectId()
getObjectId
in interface IObjectSpecifier
public ClassInfo getClassInfo()
getClassInfo
in interface IObjectInfo
getClassInfo
in interface IClassInfoHolder
IClassInfo
for the class of this object.public boolean isDiscarded()
isDiscarded
in interface IObjectInfo
public boolean isValid()
Note that invalid references are only equals(Object)
to
themselves.
public IFieldValue getFieldValue(java.lang.String fieldName, java.lang.Class<?> type, Policy policy) throws GarbageCollectedException, NoMatchingFieldException
IObjectInfo
IFieldValue
of the most visible field that has
the name fieldName
and is assignable to the class
type
as per IValue.isAssignableTo(Class)
in the
object represented by this IObjectInfo
.
The most visible field is defined from a Java source perspective
in that it normally would be the field that is in scope from within the
actual class. More specifically, starting from the actual class and
moving up the super class hierarchy, the first non-synthetic field with
fieldName
and a matching type, is returned. If no such field
is found, the first synthetic field of that name and with a matching
type, found by looking in the same order, is returned. If no field with
that name and a matching type could be found at all,
NoMatchingFieldException
is thrown.
getFieldValue
in interface IObjectInfo
fieldName
- the name of the fieldpolicy
- the cache policy to use
IFieldValue
, unless the value is currently unavailable
according to policy
, in which case null is returned.
GarbageCollectedException
- if the object has been garbage collected.
NoMatchingFieldException
- if no field with the given name and a matching type could be
foundpublic <T> T getField(java.lang.String fieldName, java.lang.Class<T> type, Policy policy) throws GarbageCollectedException, NoMatchingFieldException
IObjectInfo
object
representation
of of the most visible field that has the name
fieldName
and is assignable to the class type
as per IValue.isAssignableTo(Class)
in the object represented by
this IObjectInfo
.
The most visible field is defined from a Java source perspective
in that it normally would be the field that is in scope from within the
actual class. More specifically, starting from the actual class and
moving up the super class hierarchy, the value of the first non-synthetic
field with fieldName
and a matching type, is returned. If no
such field is found, the value of the first synthetic field of that name
and with a matching type, found by looking in the same order, is
returned. If no field with that name and a matching type could be found
at all, NoMatchingFieldException
is thrown.
getField
in interface IObjectInfo
T
- implicitfieldName
- the name of the fieldpolicy
- the cache policy to use
T
(that is, a primitive wrapper or an
IObjectInfo
), or null
GarbageCollectedException
- if the object has been garbage collected.
NoMatchingFieldException
- if no field with the given name and a matching type could be
foundpublic IObjectInfo getFieldReference(java.lang.String fieldName, Policy policy) throws GarbageCollectedException, NoMatchingFieldException
IObjectInfo
IObjectInfo
corresponding to the value of the
most visible non-primitive field with the name
fieldName
in the object represented by this
IObjectInfo
.
The most visible field is defined from a Java source perspective
in that it normally would be the field that is in scope from within the
actual class. More specifically, starting from the actual class and
moving up the super class hierarchy, the first non-synthetic and
non-primitive field with fieldName
is returned. If no such
field is found, the first synthetic non-primitive field of that name,
found by looking in the same order, is returned. If no non-primitive
field with that name could be found at all,
NoMatchingFieldException
is thrown.
getFieldReference
in interface IObjectInfo
fieldName
- the name of the fieldpolicy
- the cache policy to use
IObjectInfo
representing the field, or null according
to policy
GarbageCollectedException
- if the object has been garbage collected.
NoMatchingFieldException
- if no non-primitive field with the given name could be foundpublic LimitedNumber getKeepAliveSize(long stopAt, Policy policy)
IObjectInfo
stopAt
>= 0 than counting will
stop if the total size is larger than stopAt
.
Note that a cached value below stopAt
will only be returned
if it is lower than the limit in effect when that value was originally
calculated. (That is, if it wasn't limited by the lower limit.)
getKeepAliveSize
in interface IObjectInfo
stopAt
- the limit in bytes for keep alive size calculation, see abovepolicy
- the Policy
to use
public java.lang.String toString()
toString
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object other)
equals
in class java.lang.Object
public boolean equals(AbstractObjectInfo other)
other
- an AbstractObjectInfo
other
represent the same object in the VM.Object.equals(Object)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |