Class SynchronizedAddressSetCollection

  • All Implemented Interfaces:
    AddressSetCollection

    public class SynchronizedAddressSetCollection
    extends java.lang.Object
    implements AddressSetCollection
    Implementation of AddressSetCollection used by ProgramChangeSet. It contains the actual instances of the addressSets used by the ProgramChangeSet and protects access to them by synchronizing on the ProgramChangeSet. Because these objects use the actual addressSets within the programChangeSet for efficiency reasons, any changes to those underlying sets will be reflected in the set of addresses represented by this collection. But since it is synchronized, you will always get a stable set during any given call and the AddressSetCollection interface is careful not to include iterator or other methods that can't tolerate a underlying change. This object is really only intended for use by the GUI change bars and if it changes, it only results in possibly seeing the changes bars a bit earlier than otherwise.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean contains​(Address address)
      Test if the address is contained within any of the addressSets in this collection.
      Address findFirstAddressInCommon​(AddressSetView set)
      Finds the first address in this collection that is also in the given addressSet.
      AddressSet getCombinedAddressSet()
      Returns a single AddressSet containing the union of all the addressSetViews in the collection.
      Address getMaxAddress()
      Returns the largest address in this collection or null if the collection is empty.
      Address getMinAddress()
      Returns the smallest address in this collection or null if the collection is empty.
      boolean hasFewerRangesThan​(int rangeThreshold)
      Tests whether this collection of addressSets has approximately fewer ranges than the given threshold.
      boolean intersects​(Address start, Address end)
      Determine if range specified by start and end intersects with any of the AddressSets in this collection.
      boolean intersects​(AddressSetView addrSet)
      Determine if any AddressSet in this collection intersects with the specified address set.
      boolean isEmpty()
      Returns true if all the AddressSets in this collection are empty.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SynchronizedAddressSetCollection

        public SynchronizedAddressSetCollection​(java.lang.Object sync,
                                                AddressSetView... addressSetViews)
    • Method Detail

      • intersects

        public boolean intersects​(AddressSetView addrSet)
        Description copied from interface: AddressSetCollection
        Determine if any AddressSet in this collection intersects with the specified address set.
        Specified by:
        intersects in interface AddressSetCollection
        Parameters:
        addrSet - address set to check intersection with.
      • intersects

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

        public boolean contains​(Address address)
        Description copied from interface: AddressSetCollection
        Test if the address is contained within any of the addressSets in this collection.

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

        public boolean hasFewerRangesThan​(int rangeThreshold)
        Description copied from interface: AddressSetCollection
        Tests whether this collection of addressSets has approximately fewer ranges than the given threshold. This is probably estimated by adding up the number of ranges in each AddressSet in this collections. Returns true if the total is less than the given threshold.
        Specified by:
        hasFewerRangesThan in interface AddressSetCollection
        Parameters:
        rangeThreshold - the number of ranges to test against.
        Returns:
        true if the max possible ranges is less than the given threshold.
      • findFirstAddressInCommon

        public Address findFirstAddressInCommon​(AddressSetView set)
        Description copied from interface: AddressSetCollection
        Finds the first address in this collection that is also in the given addressSet.
        Specified by:
        findFirstAddressInCommon in interface AddressSetCollection
        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.
      • isEmpty

        public boolean isEmpty()
        Description copied from interface: AddressSetCollection
        Returns true if all the AddressSets in this collection are empty.
        Specified by:
        isEmpty in interface AddressSetCollection
        Returns:
        true if all the AddressSets in this collection are empty.
      • getMinAddress

        public Address getMinAddress()
        Description copied from interface: AddressSetCollection
        Returns the smallest address in this collection or null if the collection is empty.
        Specified by:
        getMinAddress in interface AddressSetCollection
        Returns:
        the smallest address in this collection or null if the collection is empty.
      • getMaxAddress

        public Address getMaxAddress()
        Description copied from interface: AddressSetCollection
        Returns the largest address in this collection or null if the collection is empty.
        Specified by:
        getMaxAddress in interface AddressSetCollection
        Returns:
        the largest address in this collection or null if the collection is empty.