Class AddressSetViewAdapter

  • All Implemented Interfaces:
    AddressSetView, java.lang.Iterable<AddressRange>

    public class AddressSetViewAdapter
    extends java.lang.Object
    implements AddressSetView
    This class wraps an address set and provides read-only access to that set. This class is used to ensure that users can not violate the read-only access by casting the object to an address set.
    • Constructor Detail

      • AddressSetViewAdapter

        public AddressSetViewAdapter​(AddressSetView set)
        Construct an AddressSetViewAdapter for an address set.
        Parameters:
        set - the address set to wrap as a read-only object.
    • Method Detail

      • contains

        public boolean contains​(Address addr)
        Description copied from interface: AddressSetView
        Test if the address is contained within this set.

        Specified by:
        contains in interface AddressSetView
        Parameters:
        addr - address to test.
        Returns:
        true if addr exists in the set, false otherwise.
      • contains

        public boolean contains​(Address start,
                                Address end)
        Description copied from interface: AddressSetView
        Test if the given address range is contained in this set.

        Specified by:
        contains in interface AddressSetView
        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.
      • contains

        public boolean contains​(AddressSetView rangeSet)
        Description copied from interface: AddressSetView
        Test if the given address set is a subset of this set.

        Specified by:
        contains in interface AddressSetView
        Parameters:
        rangeSet - the set to test.
        Returns:
        true if the entire set is contained within this set, false otherwise.
      • isEmpty

        public boolean isEmpty()
        Specified by:
        isEmpty in interface AddressSetView
        Returns:
        true if this set is empty.
      • getMinAddress

        public Address getMinAddress()
        Specified by:
        getMinAddress in interface AddressSetView
        Returns:
        the minimum address for this set. Returns null if the set is empty.
      • getMaxAddress

        public Address getMaxAddress()
        Specified by:
        getMaxAddress in interface AddressSetView
        Returns:
        the maximum address for this set. Returns null if the set is empty.
      • getNumAddressRanges

        public int getNumAddressRanges()
        Specified by:
        getNumAddressRanges in interface AddressSetView
        Returns:
        the number of address ranges in this set.
      • iterator

        public java.util.Iterator<AddressRange> iterator()
        Description copied from interface: AddressSetView
        Returns an iterator over the address ranges in this address set.
        Specified by:
        iterator in interface AddressSetView
        Specified by:
        iterator in interface java.lang.Iterable<AddressRange>
      • getAddressRanges

        public AddressRangeIterator getAddressRanges​(boolean startAtFront)
        Description copied from interface: AddressSetView
        Returns an iterator over the ranges in the specified order
        Specified by:
        getAddressRanges in interface AddressSetView
        Parameters:
        startAtFront - the ranges are returned from lowest to highest, otherwise from highest to lowest
        Returns:
        an iterator over all the addresse ranges in the set.
      • getNumAddresses

        public long getNumAddresses()
        Specified by:
        getNumAddresses in interface AddressSetView
        Returns:
        the number of addresses in this set.
      • getAddresses

        public AddressIterator getAddresses​(boolean forward)
        Description copied from interface: AddressSetView
        Returns an iterator over all addresses in this set.
        Specified by:
        getAddresses in interface AddressSetView
        Parameters:
        forward - if true the address are return in increasing order, otherwise in decreasing order.
        Returns:
        an iterator over all addresses in this set.
      • getAddresses

        public AddressIterator getAddresses​(Address start,
                                            boolean forward)
        Description copied from interface: AddressSetView
        Returns an iterator over the addresses in this address set starting at the start address
        Specified by:
        getAddresses in interface AddressSetView
        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
      • intersects

        public boolean intersects​(AddressSetView addrSet)
        Description copied from interface: AddressSetView
        Determine if this address set intersects with the specified address set.
        Specified by:
        intersects in interface AddressSetView
        Parameters:
        addrSet - address set to check intersection with.
        Returns:
        true if this set intersects the specified addrSet else false
      • intersects

        public boolean intersects​(Address start,
                                  Address end)
        Description copied from interface: AddressSetView
        Determine if the start and end range intersects with the specified address set.
        Specified by:
        intersects in interface AddressSetView
        Parameters:
        start - start of range
        end - end of range
        Returns:
        true if the given range intersects this address set.
      • intersect

        public AddressSet intersect​(AddressSetView view)
        Description copied from interface: AddressSetView
        Computes the intersection of this address set with the given address set. This method does not modify this address set.
        Specified by:
        intersect in interface AddressSetView
        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.
      • intersectRange

        public AddressSet intersectRange​(Address start,
                                         Address end)
        Description copied from interface: AddressSetView
        Computes the intersection of this address set with the given address range. This method does not modify this address set.
        Specified by:
        intersectRange in interface AddressSetView
        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.
      • union

        public AddressSet union​(AddressSetView addrSet)
        Description copied from interface: AddressSetView
        Computes the union of this address set with the given address set. This method does not change this address set.
        Specified by:
        union in interface AddressSetView
        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.
      • subtract

        public AddressSet subtract​(AddressSetView addrSet)
        Description copied from interface: AddressSetView
        Computes 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.
        Specified by:
        subtract in interface AddressSetView
        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.
      • xor

        public AddressSet xor​(AddressSetView addrSet)
        Description copied from interface: AddressSetView
        Computes the exclusive-or of this address set with the given set. This method does not modify this address set.
        Specified by:
        xor in interface AddressSetView
        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
      • hasSameAddresses

        public boolean hasSameAddresses​(AddressSetView view)
        Description copied from interface: AddressSetView
        Returns true if the given address set contains the same set of addresses as this set.
        Specified by:
        hasSameAddresses in interface AddressSetView
        Parameters:
        view - the address set to compare.
        Returns:
        true if the given set contains the same addresses as this set.
      • getAddressRanges

        public AddressRangeIterator getAddressRanges​(Address start,
                                                     boolean forward)
        Description copied from interface: AddressSetView
        Returns 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 the first range will be the next range greater than the start address if going forward, otherwise the range less than the start address
        Specified by:
        getAddressRanges in interface AddressSetView
        Parameters:
        start - the address the the first range should contain.
        forward - true iterators forward, false backwards
        Returns:
        the AddressRange iterator
      • getFirstRange

        public AddressRange getFirstRange()
        Description copied from interface: AddressSetView
        Returns the first range in this set or null if the set is empty;
        Specified by:
        getFirstRange in interface AddressSetView
        Returns:
        the first range in this set or null if the set is empty;
      • getLastRange

        public AddressRange getLastRange()
        Description copied from interface: AddressSetView
        Returns the last range in this set or null if the set is empty;
        Specified by:
        getLastRange in interface AddressSetView
        Returns:
        the last range in this set or null if the set is empty;
      • getRangeContaining

        public AddressRange getRangeContaining​(Address address)
        Description copied from interface: AddressSetView
        Returns the range that contains the given address
        Specified by:
        getRangeContaining in interface AddressSetView
        Parameters:
        address - the address for which to find a range.
        Returns:
        the range that contains the given address.
      • iterator

        public java.util.Iterator<AddressRange> iterator​(boolean forward)
        Description copied from interface: AddressSetView
        Returns an iterator over the ranges in the specified order
        Specified by:
        iterator in interface AddressSetView
        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.
      • iterator

        public java.util.Iterator<AddressRange> iterator​(Address start,
                                                         boolean forward)
        Description copied from interface: AddressSetView
        Returns 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 the first range will be the next range greater than the start address if going forward, otherwise the range less than the start address
        Specified by:
        iterator in interface AddressSetView
        Parameters:
        start - the address the the first range should contain.
        forward - true iterators forward, false backwards
        Returns:
        the AddressRange iterator
      • findFirstAddressInCommon

        public Address findFirstAddressInCommon​(AddressSetView otherSet)
        Description copied from interface: AddressSetView
        Finds the first address in this collection that is also in the given addressSet.
        Specified by:
        findFirstAddressInCommon in interface AddressSetView
        Parameters:
        otherSet - the addressSet to search for the first (lowest) common address.
        Returns:
        the first address that is contained in this set and the given set.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object