public class CompositeAddressProvider extends AbstractCollection implements DescribableAddressProvider, Set
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.
Modifier and Type | Class and Description |
---|---|
protected static class |
CompositeAddressProvider.AddressIterator
An Iterator over the addresses in this AddressProvider.
|
protected class |
CompositeAddressProvider.SingleProvider
AddressProvider wrapper for a single address dynamically added to this AddressSet.
|
Modifier and Type | Field and Description |
---|---|
protected CompositeAddressProvider.AddressIterator |
m_iterInternal
The default iterator used to implement the AddressProvider interface.
|
Constructor and Description |
---|
CompositeAddressProvider()
Default constructor.
|
CompositeAddressProvider(AddressProvider provider)
Construct a CompositeAddressProvider from the specified AddressProvider.
|
Modifier and Type | Method and Description |
---|---|
void |
accept()
This method should be called by the client immediately after it determines that it can successfully use an address returned by the
SocketAddressProvider.getNextAddress() method. |
boolean |
add(Object o)
Ensures that this collection contains the specified element (optional operation).
|
void |
addAddress(InetSocketAddress address)
Add an address.
|
void |
addProvider(AddressProvider provider)
Add an AddressProvider.
|
protected CompositeAddressProvider.AddressIterator |
ensureInternalIterator()
Create (if necessary) and return the default iterator.
|
boolean |
equals(Object o)
SocketAddressProvider instances are considered equivalent iff they consistently produce the same resulting set of addresses.
|
String[] |
getAddressDescriptions()
Retrieve a human readable description of underlying addresses.
|
protected List |
getConfiguredAddresses(AddressProvider provider)
Return a list of configured addresses in the specified AddressProvider.
|
InetSocketAddress |
getNextAddress()
Covariant of
SocketAddressProvider.getNextAddress() which returns an InetSocketAddress . |
protected List |
getProviderList()
Return the provider list.
|
int |
hashCode()
Return the hash code for this AddressProvider.
|
Iterator |
iterator()
Returns an iterator over the elements contained in this collection.
|
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. |
boolean |
remove(Object o)
Removes the specified element from this set if it is present (optional operation).
|
int |
size()
Returns the number of elements in this collection.
|
addAll, clear, contains, containsAll, isEmpty, removeAll, retainAll, toArray, toArray, toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
addAll, clear, contains, containsAll, isEmpty, removeAll, retainAll, spliterator, toArray, toArray
parallelStream, removeIf, stream
protected CompositeAddressProvider.AddressIterator m_iterInternal
public CompositeAddressProvider()
public CompositeAddressProvider(AddressProvider provider)
provider
- the AddressProvider to addpublic void addProvider(AddressProvider provider)
provider
- the AddressProvider to addpublic void addAddress(InetSocketAddress address)
address
- the address to addprotected List getProviderList()
public InetSocketAddress getNextAddress()
SocketAddressProvider.getNextAddress()
which returns an InetSocketAddress
.getNextAddress
in interface AddressProvider
getNextAddress
in interface SocketAddressProvider
public void accept()
SocketAddressProvider.getNextAddress()
method.accept
in interface SocketAddressProvider
public void reject(Throwable eCause)
SocketAddressProvider.getNextAddress()
method has failed.reject
in interface SocketAddressProvider
eCause
- (optional) an exception that carries the reason why the the caller rejected the previously returned addresspublic String[] getAddressDescriptions()
getAddressDescriptions
in interface DescribableAddressProvider
public boolean equals(Object o)
Note: the general contract of hashCode and equals() should be preserved; AddressProviders that are "equal" should produce the same hashCode.
equals
in interface SocketAddressProvider
equals
in interface Collection
equals
in interface Set
equals
in class Object
o
- the Object to compare this SocketAddressProvider to for equalitypublic int hashCode()
hashCode
in interface SocketAddressProvider
hashCode
in interface Collection
hashCode
in interface Set
hashCode
in class Object
public Iterator iterator()
iterator
in interface Iterable
iterator
in interface Collection
iterator
in interface Set
iterator
in class AbstractCollection
public int size()
size
in interface Collection
size
in interface Set
size
in class AbstractCollection
public boolean add(Object o)
This implementation always throws an UnsupportedOperationException.
add
in interface Collection
add
in interface Set
add
in class AbstractCollection
o
- element whose presence in this collection is to be ensured.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.public boolean remove(Object o)
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.)remove
in interface Collection
remove
in interface Set
remove
in class AbstractCollection
o
- object to be removed from this set, if present.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.protected CompositeAddressProvider.AddressIterator ensureInternalIterator()
protected List getConfiguredAddresses(AddressProvider provider)
provider
- the address provider