Package org.eclipse.mat.hprof

# Class HprofHeapObjectReader

java.lang.Object
org.eclipse.mat.hprof.HprofHeapObjectReader

All Implemented Interfaces:
  `IObjectReader`

public class HprofHeapObjectReader extends Object implements IObjectReader

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`HPROF_HEAP_START`
`static final String`
`HPROF_LENGTH_PROPERTY`
`static final String`
`VERSION_PROPERTY`

## Constructor Summary

Constructors
Constructor
Description
`HprofHeapObjectReader()`

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
tidy up when snapshot no longer required
`<A> A`
`getAddon(Class<A> addon)`
Returns extra data to be provided by `ISnapshot.getSnapshotAddons(Class addon)`.
`void`
`open(ISnapshot snapshot)`
Open the dump file associated with the snapshot
`IObject`
`read(int objectId, ISnapshot snapshot)`
Get detailed information about an object
`long[]`
`readObjectArrayContent(ObjectArrayImpl array, int offset, int length)`
Get detailed information about a object array
`Object`
`readPrimitiveArrayContent(PrimitiveArrayImpl array, int offset, int length)`
Get detailed information about a primitive array

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### VERSION_PROPERTY

public static final String VERSION_PROPERTY

See Also:
  - Constant Field Values

### HPROF_LENGTH_PROPERTY

public static final String HPROF_LENGTH_PROPERTY

See Also:
  - Constant Field Values

### HPROF_HEAP_START

public static final String HPROF_HEAP_START

See Also:
  - Constant Field Values

## Constructor Details

### HprofHeapObjectReader

public HprofHeapObjectReader()

## Method Details

### open

public void open(ISnapshot snapshot) throws IOException
Description copied from interface: `IObjectReader`
Open the dump file associated with the snapshot

Specified by:
  `open` in interface `IObjectReader`
Parameters:
  `snapshot` - the snapshot
Throws:
  `IOException` - an IO problem, or corrupt indexes or unexpected data in the dump

### readObjectArrayContent

public long[] readObjectArrayContent(ObjectArrayImpl array, int offset, int length) throws IOException, SnapshotException
Description copied from interface: `IObjectReader`
Get detailed information about a object array

Specified by:
  `readObjectArrayContent` in interface `IObjectReader`
Parameters:
  `array` - the array
  `offset` - where in the array to start
  `length` - how much to read
Returns:
  an array of object addresses, with 0 for nulls
Throws:
  `IOException` - an IO problem or unexpected data in the dump
  `SnapshotException` - some other problem such as where the object is incompatible with the snapshot

### readPrimitiveArrayContent

public Object readPrimitiveArrayContent(PrimitiveArrayImpl array, int offset, int length) throws IOException, SnapshotException
Description copied from interface: `IObjectReader`
Get detailed information about a primitive array

Specified by:
  `readPrimitiveArrayContent` in interface `IObjectReader`
Parameters:
  `array` - the array
  `offset` - where in the array to start
  `length` - how much to read
Returns:
  a byte[], short[], int[], long[], boolean[], char[], float[], double[]
Throws:
  `IOException` - an IO problem or unexpected data in the dump
  `SnapshotException` - some other problem such as where the object is incompatible with the snapshot

### read

public IObject read(int objectId, ISnapshot snapshot) throws SnapshotException, IOException
Description copied from interface: `IObjectReader`
Get detailed information about an object

Specified by:
  `read` in interface `IObjectReader`
Parameters:
  `objectId` - the object id
  `snapshot` - the snapshot
Returns:
  an IObject such as `InstanceImpl`, `ObjectArrayImpl`, `PrimitiveArrayImpl`, `ClassLoaderImpl`
Throws:
  `SnapshotException` - some other problem such as where the object is incompatible with the snapshot
  `IOException` - an IO problem or unexpected data in the dump

### getAddon

public <A> A getAddon(Class<A> addon) throws SnapshotException
Returns extra data to be provided by `ISnapshot.getSnapshotAddons(Class addon)`. Also can be returned via `Argument`.

Specified by:
  `getAddon` in interface `IObjectReader`
Type Parameters:
  `A` - used to set the return type
Parameters:
  `addon` - the type of the extra data required from the dump. HprofHeapObjectReader can be extended using an `IRuntimeEnhancer` extension to return extra data.
Returns:
  the extra data
Throws:
  `SnapshotException` - an IO problem or unexpected data in the dump
See Also:
  - `IObjectReader.getAddon(Class)`

### close

public void close() throws IOException
Description copied from interface: `IObjectReader`
tidy up when snapshot no longer required

Specified by:
  `close` in interface `IObjectReader`
Throws:
  `IOException` - should not normally occur