Class CompositeAddressProvider

  • All Implemented Interfaces:
    AddressProvider, DescribableAddressProvider, SocketAddressProvider, Iterable, Collection, Set

    public class CompositeAddressProvider
    extends AbstractCollection
    implements DescribableAddressProvider, Set
    CompositeAddressProvider is a composite of one or more AddressProviders or addresses that also implements the Set interface. This AddressProvider will provide addresses from all registered AddressProviders or Addresses.

    This class implements the Set interface, but the contents are not checked to determine whether each element is unique. It is the responsibility of the user to ensure that the elements are unique if the object is used as a Set.

    This implementation is thread-safe for consumers of the Set interface, but allows no more than one consumer of the AddressProvider interface.

    Since:
    Coherence 3.5
    Author:
    rhl 2008-12-05
    • Constructor Detail

      • CompositeAddressProvider

        public CompositeAddressProvider()
        Default constructor.
      • CompositeAddressProvider

        public CompositeAddressProvider​(AddressProvider provider)
        Construct a CompositeAddressProvider from the specified AddressProvider.
        Parameters:
        provider - the AddressProvider to add
    • Method Detail

      • addProvider

        public void addProvider​(AddressProvider provider)
        Add an AddressProvider.
        Parameters:
        provider - the AddressProvider to add
      • addAddress

        public void addAddress​(InetSocketAddress address)
        Add an address.
        Parameters:
        address - the address to add
      • getProviderList

        protected List getProviderList()
        Return the provider list.
        Returns:
        the provider list
      • reject

        public void reject​(Throwable eCause)
        This method should be called by the client immediately after it determines that an attempt to use an address returned by the SocketAddressProvider.getNextAddress() method has failed.
        Specified by:
        reject in interface SocketAddressProvider
        Parameters:
        eCause - (optional) an exception that carries the reason why the the caller rejected the previously returned address
      • getAddressDescriptions

        public String[] getAddressDescriptions()
        Retrieve a human readable description of underlying addresses.
        Specified by:
        getAddressDescriptions in interface DescribableAddressProvider
        Returns:
        a string array of addresses in human readable format
      • equals

        public boolean equals​(Object o)
        SocketAddressProvider instances are considered equivalent iff they consistently produce the same resulting set of addresses.

        Note: the general contract of hashCode and equals() should be preserved; AddressProviders that are "equal" should produce the same hashCode.

        Specified by:
        equals in interface Collection
        Specified by:
        equals in interface Set
        Specified by:
        equals in interface SocketAddressProvider
        Overrides:
        equals in class Object
        Parameters:
        o - the Object to compare this SocketAddressProvider to for equality
        Returns:
        true iff this SocketAddressProvider is equal to the specified object
      • size

        public int size()
        Returns the number of elements in this collection. If the collection contains more than Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.
        Specified by:
        size in interface Collection
        Specified by:
        size in interface Set
        Specified by:
        size in class AbstractCollection
        Returns:
        the number of elements in this collection
      • add

        public boolean add​(Object o)
        Ensures that this collection contains the specified element (optional operation). Returns true if the collection changed as a result of the call. (Returns false if this collection does not permit duplicates and already contains the specified element.) Collections that support this operation may place limitations on what elements may be added to the collection. In particular, some collections will refuse to add null elements, and others will impose restrictions on the type of elements that may be added. Collection classes should clearly specify in their documentation any restrictions on what elements may be added.

        This implementation always throws an UnsupportedOperationException.

        Specified by:
        add in interface Collection
        Specified by:
        add in interface Set
        Overrides:
        add in class AbstractCollection
        Parameters:
        o - element whose presence in this collection is to be ensured.
        Returns:
        true if the collection changed as a result of the call.
        Throws:
        UnsupportedOperationException - if the add method is not supported by this collection.
        NullPointerException - if this collection does not permit null elements, and the specified element is null.
        ClassCastException - if the class of the specified element prevents it from being added to this collection.
        IllegalArgumentException - if some aspect of this element prevents it from being added to this collection.
      • remove

        public boolean remove​(Object o)
        Removes the specified element from this set if it is present (optional operation). More formally, removes an element e such that (o==null ? e==null : o.equals(e)), if the set contains such an element. Returns true if the set contained the specified element (or equivalently, if the set changed as a result of the call). (The set will not contain the specified element once the call returns.)
        Specified by:
        remove in interface Collection
        Specified by:
        remove in interface Set
        Overrides:
        remove in class AbstractCollection
        Parameters:
        o - object to be removed from this set, if present.
        Returns:
        true if the set contained the specified element.
        Throws:
        ClassCastException - if the type of the specified element is incompatible with this set (optional).
        NullPointerException - if the specified element is null and this set does not support null elements (optional).
        UnsupportedOperationException - if the remove method is not supported by this set.
      • getConfiguredAddresses

        protected List getConfiguredAddresses​(AddressProvider provider)
        Return a list of configured addresses in the specified AddressProvider.
        Parameters:
        provider - the address provider
        Returns:
        the list of addresses