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
`static String` `HPROF_HEAP_START`
`static String` `HPROF_LENGTH_PROPERTY`
`static String` `VERSION_PROPERTY`

### Constructor Summary

Constructors
`HprofHeapObjectReader()`

### Method Summary

All Methods Instance Methods Concrete Methods
`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 Detail

#### 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 Detail

#### HprofHeapObjectReader

    public HprofHeapObjectReader()

### Method Detail

#### 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`
  `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`
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`
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