Package org.eclipse.mat.parser.index

# Class IndexWriter.Identifier

java.lang.Object
org.eclipse.mat.parser.index.IndexWriter.Identifier

All Implemented Interfaces:
  `IIndexReader`, `IIndexReader.IOne2LongIndex`

Enclosing class:
  IndexWriter

public static class IndexWriter.Identifier extends Object implements IIndexReader.IOne2LongIndex
Used to collect the objects by address.

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.eclipse.mat.parser.index.IIndexReader

`IIndexReader.IOne2LongIndex, IIndexReader.IOne2ManyIndex, IIndexReader.IOne2ManyObjectsIndex, IIndexReader.IOne2OneIndex, IIndexReader.IOne2SizeIndex`

## Constructor Summary

Constructors
Constructor
Description
`Identifier()`

## Method Summary

Modifier and Type
Method
Description
`void`
`add(long id)`
Add an object.
`void`
`close()`
Close the backing file.
`void`
`delete()`
Delete the backing file.
`long`
`get(int index)`
Look up a long from an int in the index.
`long[]`
`getNext(int index, int length)`
Look up long from an range of int keys in the index.
`IteratorLong`
`iterator()`
Iterate through the object addresses.
`int`
`reverse(long val)`
Find the int corresponding to the long in the index value.
`int`
`size()`
Size of the index
`void`
`sort()`
Sort the addresses of the objects in order.
`void`
`unload()`
Clear the caches.

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

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

## Constructor Details

### Identifier

public Identifier()

## Method Details

### add

public void add(long id)
Add an object.

Parameters:
  `id` - the object address

### sort

public void sort()
Sort the addresses of the objects in order. Also puts all of the added addresses into an array. Makes a reverse lookup easier.

### size

public int size()
Description copied from interface: `IIndexReader`
Size of the index

Specified by:
  `size` in interface `IIndexReader`
Returns:
  number of entries

### get

public long get(int index)
Description copied from interface: `IIndexReader.IOne2LongIndex`
Look up a long from an int in the index.

Specified by:
  `get` in interface `IIndexReader.IOne2LongIndex`
Parameters:
  `index` - the key
Returns:
  the long

### reverse

public int reverse(long val)
Description copied from interface: `IIndexReader.IOne2LongIndex`
Find the int corresponding to the long in the index value. The reverse of `IIndexReader.IOne2LongIndex.get(int)`

Specified by:
  `reverse` in interface `IIndexReader.IOne2LongIndex`
Parameters:
  `val` - the value to look up
Returns:
  the correspond int key in the index

### iterator

public IteratorLong iterator()
Iterate through the object addresses.

Returns:
  the iterator

### getNext

public long[] getNext(int index, int length)
Description copied from interface: `IIndexReader.IOne2LongIndex`
Look up long from an range of int keys in the index.

Specified by:
  `getNext` in interface `IIndexReader.IOne2LongIndex`
Parameters:
  `index` - the starting point
  `length` - the number of items to look up
Returns:
  an array of longs corresponding to the input

### close

public void close() throws IOException
Description copied from interface: `IIndexReader`
Close the backing file.

Specified by:
  `close` in interface `IIndexReader`
Throws:
  `IOException`

### delete

public void delete()
Description copied from interface: `IIndexReader`
Delete the backing file.

Specified by:
  `delete` in interface `IIndexReader`

### unload

public void unload() throws IOException
Description copied from interface: `IIndexReader`
Clear the caches. Used when the indexes are not current in use and the memory needs to be reclaimed such as when building the dominator tree.

Specified by:
  `unload` in interface `IIndexReader`
Throws:
  `IOException`