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 the initialized memory of 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, returning data instances that successfully match the predicate.
        Parameters:
        program - Program to search
        dataTypePredicate - Predicate that tests each data instance's DataType
        Returns:
        new iterator
      • byDataType

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

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

        public static DefinedDataIterator definedStrings​(Program program)
        Creates a new iterator that traverses the entire Program's address space returning data instances that are strings.
        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 returning data instances that are strings.
        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>