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
`Identifier()`

### Method Summary

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

#### Identifier

    public Identifier()

### Method Detail

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