Class DefinedDataIterator

  • All Implemented Interfaces:
    DataIterator, java.lang.Iterable<Data>, java.util.Iterator<Data>

    public class DefinedDataIterator
    extends java.lang.Object
    implements DataIterator
    Iterator that visits each defined data instance in a Program or in the footprint of a specified data element.

    Data elements that are nested inside of composites or arrays are visited, not just the parent/containing data element.

    • Method Detail

      • byDataType

        public static DefinedDataIterator byDataType​(Program program,
                                                     java.util.function.Predicate<DataType> dataTypePredicate)
        Creates a new iterator that traverses the entire Program's address space, visiting data instances that successfully match the predicate.
        Parameters:
        program - Program to search
        dataTypePredicate - Predicate that tests each data instance's DataType
        Returns:
        new iterator
      • definedStrings

        public static DefinedDataIterator definedStrings​(Program program)
        Creates a new iterator that traverses the entire Program's address space.
        Parameters:
        program - Ghidra Program to search
        Returns:
        new iterator
      • definedStrings

        public static DefinedDataIterator definedStrings​(Program program,
                                                         AddressSetView addrs)
        Creates a new iterator that traverses a portion of the Program's address space.
        Parameters:
        program - Ghidra Program to search
        addrs - addresses to limit the iteration to
        Returns:
        new iterator
      • definedStrings

        public static DefinedDataIterator definedStrings​(Data singleDataInstance)
        Creates a new iterator that traverses the address space of a single data item (ie. a composite or array data instance that needs to be recursed into).
        Parameters:
        singleDataInstance - Data instance
        Returns:
        new iterator
      • hasNext

        public boolean hasNext()
        Specified by:
        hasNext in interface DataIterator
        Specified by:
        hasNext in interface java.util.Iterator<Data>
      • next

        public Data next()
        Specified by:
        next in interface DataIterator
        Specified by:
        next in interface java.util.Iterator<Data>