Interface AddressSetView
- All Superinterfaces:
- Iterable<AddressRange>
- All Known Subinterfaces:
- CodeBlock,- Memory,- ProgramFragment
- All Known Implementing Classes:
- AddressSet,- AddressSetViewAdapter,- CodeBlockImpl,- ExtCodeBlockImpl,- ImmutableAddressSet,- MemoryMapDB,- NormalizedAddressSet,- ProgramSelection,- StubMemory
- 
Method SummaryModifier and TypeMethodDescriptionbooleanTest if the address is contained within this set.booleanTest if the given address range is contained in this set.booleancontains(AddressSetView rangeSet) Test if the given address set is a subset of this set.Finds the first address in this collection that is also in the given addressSet.default longgetAddressCountBefore(Address address) Returns the number of address in this address set before the given address.getAddresses(boolean forward) Returns an iterator over all addresses in this set.getAddresses(Address start, boolean forward) Returns an iterator over the addresses in this address set starting at the start addressgetAddressRanges(boolean forward) Returns an iterator over the ranges in the specified ordergetAddressRanges(Address start, boolean forward) Returns an iterator of address ranges starting with the range that contains the given address.Returns the first range in this set or null if the set is emptyReturns the last range in this set or null if the set is emptyGet the maximum address for this address set.Get the minimum address for this address set.longintgetRangeContaining(Address address) Returns the range that contains the given addressbooleanReturns true if the given address set contains the same set of addresses as this set.intersect(AddressSetView view) Computes the intersection of this address set with the given address set.intersectRange(Address start, Address end) Computes the intersection of this address set with the given address range.booleanintersects(Address start, Address end) Determine if the start and end range intersects with the specified address set.booleanintersects(AddressSetView addrSet) Determine if this address set intersects with the specified address set.booleanisEmpty()iterator()Returns an iterator over the address ranges in this address set.iterator(boolean forward) Returns an iterator over the ranges in the specified orderReturns an iterator of address ranges starting with the range that contains the given address.default Spliterator<AddressRange> default Spliterator<AddressRange> spliterator(boolean forward) Create a spliterator over the ranges, as initerator(boolean)default Spliterator<AddressRange> spliterator(Address start, boolean forward) Create a spliterator over the ranges, as initerator(boolean)default Stream<AddressRange> stream()Stream the ranges in this setdefault Stream<AddressRange> stream(boolean forward) Stream the ranges in the set forward or backwarddefault Stream<AddressRange> Stream the ranges in the set as initerator(Address, boolean)subtract(AddressSetView addrSet) Computes the difference of this address set with the given address set (this - set).static AddressSetViewtrimEnd(AddressSetView set, Address addr) Trim address set removing all addresses greater-than-or-equal to specified address based uponAddresscomparison.static AddressSetViewtrimStart(AddressSetView set, Address addr) Trim address set removing all addresses less-than-or-equal to specified address based uponAddresscomparison.union(AddressSetView addrSet) Computes the union of this address set with the given address set.xor(AddressSetView addrSet) Computes the exclusive-or of this address set with the given set.
- 
Method Details- 
containsTest if the address is contained within this set.- Parameters:
- addr- address to test.
- Returns:
- true if addr exists in the set, false otherwise.
 
- 
containsTest if the given address range is contained in this set.The specified start and end addresses must form a valid range within a single AddressSpace.- Parameters:
- start- the first address in the range.
- end- the last address in the range.
- Returns:
- true if entire range is contained within the set, false otherwise.
 
- 
containsTest if the given address set is a subset of this set.- Parameters:
- rangeSet- the set to test.
- Returns:
- true if the entire set is contained within this set, false otherwise.
 
- 
isEmptyboolean isEmpty()- Returns:
- true if this set is empty.
 
- 
getMinAddressAddress getMinAddress()Get the minimum address for this address set.NOTE: An AddressRangeshould generally not be formed using this address andgetMaxAddress()since it may span multipleAddressSpaces.- Returns:
- the minimum address for this set. Returns null if the set is empty.
 
- 
getMaxAddressAddress getMaxAddress()Get the maximum address for this address set.NOTE: An AddressRangeshould generally not be formed using this address andgetMaxAddress()since it may span multipleAddressSpaces.- Returns:
- the maximum address for this set. Returns null if the set is empty.
 
- 
getNumAddressRangesint getNumAddressRanges()- Returns:
- the number of address ranges in this set.
 
- 
getAddressRangesAddressRangeIterator getAddressRanges()- Returns:
- an iterator over the address ranges in this address set.
 
- 
getAddressRangesReturns an iterator over the ranges in the specified order- Parameters:
- forward- the ranges are returned from lowest to highest, otherwise from highest to lowest
- Returns:
- an iterator over all the addresse ranges in the set.
 
- 
getAddressRangesReturns an iterator of address ranges starting with the range that contains the given address.If there is no range containing the start address, then the first range will be the next range greater than the start address if going forward, otherwise the range less than the start address - Parameters:
- start- the address the first range should contain.
- forward- true iterators forward, false backwards
- Returns:
- the AddressRange iterator
 
- 
iteratorIterator<AddressRange> iterator()Returns an iterator over the address ranges in this address set.- Specified by:
- iteratorin interface- Iterable<AddressRange>
 
- 
spliterator- Specified by:
- spliteratorin interface- Iterable<AddressRange>
 
- 
streamStream the ranges in this set- Returns:
- the stream
 
- 
iteratorReturns an iterator over the ranges in the specified order- Parameters:
- forward- the ranges are returned from lowest to highest, otherwise from highest to lowest
- Returns:
- an iterator over all the address ranges in the set.
 
- 
spliteratorCreate a spliterator over the ranges, as initerator(boolean)- Parameters:
- forward- true to traverse lowest to highest, false for reverse
- Returns:
- a spliterator over all the address ranges in the set.
 
- 
streamStream the ranges in the set forward or backward- Parameters:
- forward- true to stream lowest to highest, false for reverse
- Returns:
- a stream over all the address ranges in the set.
 
- 
iteratorReturns an iterator of address ranges starting with the range that contains the given address.If there is no range containing the start address, then the first range will be the next range greater than the start address if going forward, otherwise the range less than the start address - Parameters:
- start- the address that the first range should contain.
- forward- true iterators forward, false backwards
- Returns:
- the AddressRange iterator
 
- 
spliteratorCreate a spliterator over the ranges, as initerator(boolean)- Parameters:
- start- the address that the first range should contain.
- forward- true to traverse lowest to highest, false for reverse
- Returns:
- a spliterator over the address ranges.
 
- 
streamStream the ranges in the set as initerator(Address, boolean)- Parameters:
- start- the address that the first range should contain.
- forward- true to stream lowest to highest, false for reverse
- Returns:
- a stream over the address ranges.
 
- 
getNumAddresseslong getNumAddresses()- Returns:
- the number of addresses in this set.
 
- 
getAddressesReturns an iterator over all addresses in this set.- Parameters:
- forward- if true the address are return in increasing order, otherwise in decreasing order.
- Returns:
- an iterator over all addresses in this set.
 
- 
getAddressesReturns an iterator over the addresses in this address set starting at the start address- Parameters:
- start- address to start iterating at in the address set
- forward- if true address are return from lowest to highest, else from highest to lowest
- Returns:
- an iterator over the addresses in this address set starting at the start address
 
- 
intersectsDetermine if this address set intersects with the specified address set.- Parameters:
- addrSet- address set to check intersection with.
- Returns:
- true if this set intersects the specified addrSet else false
 
- 
intersectsDetermine if the start and end range intersects with the specified address set.The specified start and end addresses must form a valid range within a single AddressSpace.- Parameters:
- start- start of range
- end- end of range
- Returns:
- true if the given range intersects this address set.
 
- 
intersectComputes the intersection of this address set with the given address set.This method does not modify this address set. - Parameters:
- view- the address set to intersect with.
- Returns:
- AddressSet a new address set that contains all addresses that are contained in both this set and the given set.
 
- 
intersectRangeComputes the intersection of this address set with the given address range.This method does not modify this address set. The specified start and end addresses must form a valid range within a single AddressSpace.- Parameters:
- start- start of range
- end- end of range
- Returns:
- AddressSet a new address set that contains all addresses that are contained in both this set and the given range.
 
- 
unionComputes the union of this address set with the given address set.This method does not change this address set. - Parameters:
- addrSet- The address set to be unioned with this address set.
- Returns:
- AddressSet A new address set which contains all the addresses from both this set and the given set.
 
- 
subtractComputes the difference of this address set with the given address set (this - set).Note that this is not the same as (set - this). This method does not change this address set. - Parameters:
- addrSet- the set to subtract from this set.
- Returns:
- AddressSet a new address set which contains all the addresses that are in this set, but not in the given set.
 
- 
xorComputes the exclusive-or of this address set with the given set.This method does not modify this address set. - Parameters:
- addrSet- address set to exclusive-or with.
- Returns:
- AddressSet a new address set containing all addresses that are in either this set or the given set, but not in both sets
 
- 
hasSameAddressesReturns true if the given address set contains the same set of addresses as this set.- Parameters:
- view- the address set to compare.
- Returns:
- true if the given set contains the same addresses as this set.
 
- 
getFirstRangeAddressRange getFirstRange()Returns the first range in this set or null if the set is empty- Returns:
- the first range in this set or null if the set is empty
 
- 
getLastRangeAddressRange getLastRange()Returns the last range in this set or null if the set is empty- Returns:
- the last range in this set or null if the set is empty
 
- 
getRangeContainingReturns the range that contains the given address- Parameters:
- address- the address for which to find a range.
- Returns:
- the range that contains the given address.
 
- 
findFirstAddressInCommonFinds the first address in this collection that is also in the given addressSet.- Parameters:
- set- the addressSet to search for the first (lowest) common address.
- Returns:
- the first address that is contained in this set and the given set.
 
- 
getAddressCountBeforeReturns the number of address in this address set before the given address.- Parameters:
- address- the address after the last address to be counted
- Returns:
- the number of address in this address set before the given address
 
- 
trimStartTrim address set removing all addresses less-than-or-equal to specified address based uponAddresscomparison.The address set may contain address ranges from multiple address spaces. - Parameters:
- set- address set to be trimmed
- addr- trim point. Only addresses greater than this address will be returned.
- Returns:
- trimmed address set view
 
- 
trimEndTrim address set removing all addresses greater-than-or-equal to specified address based uponAddresscomparison.The address set may contain address ranges from multiple address spaces. - Parameters:
- set- address set to be trimmed
- addr- trim point. Only addresses less than this address will be returned.
- Returns:
- trimmed address set view
 
 
-