Package org.eclipse.mat.parser

# Interface IObjectReader

All Known Implementing Classes:
  `DTFJHeapObjectReader`, `HprofHeapObjectReader`

public interface IObjectReader
Part of the parser which retrieves detailed information about an object

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
tidy up when snapshot no longer required
`<A> A`
`getAddon(Class<A> addon)`
Get additional information about the snapshot
`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

## Method Details

### open

void open(ISnapshot snapshot) throws SnapshotException, IOException
Open the dump file associated with the snapshot

Parameters:
  `snapshot` - the snapshot
Throws:
  `SnapshotException` - some other problem
  `IOException` - an IO problem, or corrupt indexes or unexpected data in the dump

### read

IObject read(int objectId, ISnapshot snapshot) throws SnapshotException, IOException
Get detailed information about an object

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

### readPrimitiveArrayContent

Object readPrimitiveArrayContent(PrimitiveArrayImpl array, int offset, int length) throws IOException, SnapshotException
Get detailed information about a primitive array

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:
  `SnapshotException` - some other problem such as where the object is incompatible with the snapshot
  `IOException` - an IO problem or unexpected data in the dump

### readObjectArrayContent

long[] readObjectArrayContent(ObjectArrayImpl array, int offset, int length) throws IOException, SnapshotException
Get detailed information about a object array

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

<A> A getAddon(Class<A> addon) throws SnapshotException
Get additional information about the snapshot

Type Parameters:
  `A` - used to set the return type
Parameters:
  `addon` - type of the additional information
Returns:
  the additional information or null if none available
Throws:
  `SnapshotException` - an IO problem or unexpected data in the dump

### close

void close() throws IOException
tidy up when snapshot no longer required

Throws:
  `IOException` - should not normally occur