Package ghidra.program.database.map

# Class AddressIndexKeyIterator

java.lang.Object
ghidra.program.database.map.AddressIndexKeyIterator

All Implemented Interfaces:
  `DBLongIterator`

public class AddressIndexKeyIterator extends Object implements DBLongIterator
Iterator of indexed fields that are addresses. The longs returned are the address longs.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `AddressIndexKeyIterator()`
  Empty iterator.
  `AddressIndexKeyIterator(Table table, int indexCol, AddressMap addrMap, boolean atStart)`
  Constructs a new AddressIndexKeyIterator.
  `AddressIndexKeyIterator(Table table, int indexCol, AddressMap addrMap, boolean absolute, AddressSetView set, boolean atStart)`
  Constructs a new AddressIndexKeyIterator for a set of addresses
  `AddressIndexKeyIterator(Table table, int indexCol, AddressMap addrMap, Address start, boolean before)`
  Constructs a new AddressIndexKeyIterator starting at a given address.
  `AddressIndexKeyIterator(Table table, int indexCol, AddressMap addrMap, Address minAddr, Address maxAddr, boolean atStart)`
  Constructs a new AddressIndexKeyIterator for a range of addresses.
  `AddressIndexKeyIterator(Table table, int indexCol, AddressMap addrMap, AddressSetView set, boolean atStart)`
  Constructs a new AddressIndexKeyIterator for a set of addresses.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `delete()`
  Delete the last record(s) associated with the last value read via the next or previous methods.
  `boolean`
  `hasNext()`
  Return true if a value is available in the forward direction.
  `boolean`
  `hasPrevious()`
  Return true if a value is available in the reverse direction
  `long`
  `next()`
  Return the next long value.
  `long`
  `previous()`
  Return the previous long value.

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

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

- ## Constructor Details

  - ### AddressIndexKeyIterator

    public AddressIndexKeyIterator()
    Empty iterator.

  - ### AddressIndexKeyIterator

    public AddressIndexKeyIterator(Table table, int indexCol, AddressMap addrMap, boolean atStart) throws IOException
    Constructs a new AddressIndexKeyIterator. Memory addresses encoded as Absolute are not included.
    Parameters:
      `table` - the database table containing indexed addresses.
      `indexCol` - the column that contains indexed addresses.
      `addrMap` - the address map
      `atStart` - if true, iterates forward, otherwise iterates backwards.
    Throws:
      `IOException` - if a database io error occurs.

  - ### AddressIndexKeyIterator

    public AddressIndexKeyIterator(Table table, int indexCol, AddressMap addrMap, Address minAddr, Address maxAddr, boolean atStart) throws IOException
    Constructs a new AddressIndexKeyIterator for a range of addresses. Memory addresses encoded as Absolute are not included.
    Parameters:
      `table` - the database table containing indexed addresses.
      `indexCol` - the column that contains indexed addresses.
      `addrMap` - the address map
      `minAddr` - the first address in the range to iterate over.
      `maxAddr` - the last address in the range to iterator over.
      `atStart` - if true, iterates forward, otherwise iterates backwards.
    Throws:
      `IOException` - if a database io error occurs.

  - ### AddressIndexKeyIterator

    public AddressIndexKeyIterator(Table table, int indexCol, AddressMap addrMap, AddressSetView set, boolean atStart) throws IOException
    Constructs a new AddressIndexKeyIterator for a set of addresses. Memory addresses encoded as Absolute are not included.
    Parameters:
      `table` - the database table containing indexed addresses.
      `indexCol` - the column that contains indexed addresses.
      `addrMap` - the address map
      `set` - the set of addresses to iterator over.
      `atStart` - if true, iterates forward, otherwise iterates backwards.
    Throws:
      `IOException` - if a database io error occurs.

  - ### AddressIndexKeyIterator

    public AddressIndexKeyIterator(Table table, int indexCol, AddressMap addrMap, boolean absolute, AddressSetView set, boolean atStart) throws IOException
    Constructs a new AddressIndexKeyIterator for a set of addresses
    Parameters:
      `table` - the database table containing indexed addresses.
      `indexCol` - the column that contains indexed addresses.
      `addrMap` - the address map
      `absolute` - if true, only absolute memory address encodings are considered, otherwise only standard/relocatable address encodings are considered.
      `set` - the set of addresses to iterator over or null for all addresses.
      `atStart` - if true, iterates forward, otherwise iterates backwards.
    Throws:
      `IOException` - if a database io error occurs.

  - ### AddressIndexKeyIterator

    public AddressIndexKeyIterator(Table table, int indexCol, AddressMap addrMap, Address start, boolean before) throws IOException
    Constructs a new AddressIndexKeyIterator starting at a given address. Memory addresses encoded as Absolute are not included.
    Parameters:
      `table` - the database table containing indexed addresses.
      `indexCol` - the column that contains indexed addresses.
      `addrMap` - the address map
      `start` - the starting address for the iterator.
      `before` - if true, positions the iterator before start, otherwise positions it after start.
    Throws:
      `IOException` - if a database io error occurs.

- ## Method Details

  - ### hasNext

    public boolean hasNext() throws IOException
    Description copied from interface: `DBLongIterator`
    Return true if a value is available in the forward direction.
    Specified by:
      `hasNext` in interface `DBLongIterator`
    Throws:
      `IOException` - thrown if an IO error occurs
    See Also:
      - `DBLongIterator.hasNext()`

  - ### hasPrevious

    public boolean hasPrevious() throws IOException
    Description copied from interface: `DBLongIterator`
    Return true if a value is available in the reverse direction
    Specified by:
      `hasPrevious` in interface `DBLongIterator`
    Throws:
      `IOException` - thrown if an IO error occurs
    See Also:
      - `DBLongIterator.hasPrevious()`

  - ### next

    public long next() throws IOException
    Description copied from interface: `DBLongIterator`
    Return the next long value.
    Specified by:
      `next` in interface `DBLongIterator`
    Throws:
      `IOException` - thrown if an IO error occurs
    See Also:
      - `DBLongIterator.next()`

  - ### previous

    public long previous() throws IOException
    Description copied from interface: `DBLongIterator`
    Return the previous long value.
    Specified by:
      `previous` in interface `DBLongIterator`
    Throws:
      `IOException` - thrown if an IO error occurs
    See Also:
      - `DBLongIterator.previous()`

  - ### delete

    public boolean delete() throws IOException
    Description copied from interface: `DBLongIterator`
    Delete the last record(s) associated with the last value read via the next or previous methods.
    Specified by:
      `delete` in interface `DBLongIterator`
    Returns:
      true if record(s) was successfully deleted.
    Throws:
      `IOException` - thrown if an IO error occurs.
    See Also:
      - `DBLongIterator.delete()`