Skip navigation links

Oracle® Coherence Java API Reference
Release 3.6.1.0

E18814-01


com.tangosol.net
Class CompositeAddressProvider

java.lang.Object
  extended by java.util.AbstractCollection
      extended by com.tangosol.net.CompositeAddressProvider

All Implemented Interfaces:
AddressProvider, java.lang.Iterable, java.util.Collection, java.util.Set

public class CompositeAddressProvider
extends java.util.AbstractCollection
implements AddressProvider, java.util.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

Nested Class Summary
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.

 

Field Summary
protected  CompositeAddressProvider.AddressIterator m_iterInternal
          The default iterator used to implement the AddressProvider interface.

 

Constructor Summary
CompositeAddressProvider()
          Default constructor.

 

Method Summary
 void accept()
          This method should be called by the client immediately after it determines that it can successfully use an address returned by the AddressProvider.getNextAddress() method.
 boolean add(java.lang.Object o)
          Ensures that this collection contains the specified element (optional operation).
 void addAddress(java.net.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(java.lang.Object o)
          AddressProvider instances are considered equivalent iff they consistently produce the same resulting set of addresses.
 java.net.InetSocketAddress getNextAddress()
          Obtain a next available address to use.
protected  java.util.List getProviderList()
          Return the provider list.
 int hashCode()
          Return the hash code for this AddressProvider.
 java.util.Iterator iterator()
          Returns an iterator over the elements contained in this collection.
 void reject(java.lang.Throwable eCause)
          This method should be called by the client immediately after it determines that an attempt to use an address returned by the AddressProvider.getNextAddress() method has failed.
 boolean remove(java.lang.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.

 

Methods inherited from class java.util.AbstractCollection
addAll, clear, contains, containsAll, isEmpty, removeAll, retainAll, toArray, toArray, toString

 

Methods inherited from interface java.util.Set
addAll, clear, contains, containsAll, isEmpty, removeAll, retainAll, toArray, toArray

 

Field Detail

m_iterInternal

protected CompositeAddressProvider.AddressIterator m_iterInternal
The default iterator used to implement the AddressProvider interface.

Constructor Detail

CompositeAddressProvider

public CompositeAddressProvider()
Default constructor.

Method Detail

addProvider

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

addAddress

public void addAddress(java.net.InetSocketAddress address)
Add an address.
Parameters:
address - the address to add

getProviderList

protected java.util.List getProviderList()
Return the provider list.
Returns:
the provider list

getNextAddress

public java.net.InetSocketAddress getNextAddress()
Obtain a next available address to use. If the caller can successfully use the returned address (e.g. a connection was established), it should call the AddressProvider's AddressProvider.accept() method.
Specified by:
getNextAddress in interface AddressProvider
Returns:
the next available address or null if the list of available addresses was exhausted

accept

public void accept()
This method should be called by the client immediately after it determines that it can successfully use an address returned by the AddressProvider.getNextAddress() method.
Specified by:
accept in interface AddressProvider

reject

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

equals

public boolean equals(java.lang.Object o)
AddressProvider 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 AddressProvider
Specified by:
equals in interface java.util.Collection
Specified by:
equals in interface java.util.Set

hashCode

public int hashCode()
Return the hash code for this AddressProvider.
Specified by:
hashCode in interface AddressProvider
Specified by:
hashCode in interface java.util.Collection
Specified by:
hashCode in interface java.util.Set

iterator

public java.util.Iterator iterator()
Returns an iterator over the elements contained in this collection.
Specified by:
iterator in interface java.lang.Iterable
Specified by:
iterator in interface java.util.Collection
Specified by:
iterator in interface java.util.Set
Specified by:
iterator in class java.util.AbstractCollection
Returns:
an iterator over the elements contained in this collection.

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 java.util.Collection
Specified by:
size in interface java.util.Set
Specified by:
size in class java.util.AbstractCollection
Returns:
the number of elements in this collection

add

public boolean add(java.lang.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 java.util.Collection
Specified by:
add in interface java.util.Set
Overrides:
add in class java.util.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:
java.lang.UnsupportedOperationException - if the add method is not supported by this collection.
java.lang.NullPointerException - if this collection does not permit null elements, and the specified element is null.
java.lang.ClassCastException - if the class of the specified element prevents it from being added to this collection.
java.lang.IllegalArgumentException - if some aspect of this element prevents it from being added to this collection.

remove

public boolean remove(java.lang.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 java.util.Collection
Specified by:
remove in interface java.util.Set
Overrides:
remove in class java.util.AbstractCollection
Parameters:
o - object to be removed from this set, if present.
Returns:
true if the set contained the specified element.
Throws:
java.lang.ClassCastException - if the type of the specified element is incompatible with this set (optional).
java.lang.NullPointerException - if the specified element is null and this set does not support null elements (optional).
java.lang.UnsupportedOperationException - if the remove method is not supported by this set.

ensureInternalIterator

protected CompositeAddressProvider.AddressIterator ensureInternalIterator()
Create (if necessary) and return the default iterator.
Returns:
the default iterator

Skip navigation links

Oracle® Coherence Java API Reference
Release 3.6.1.0

E18814-01


Copyright © 2000, 2010, Oracle and/or its affiliates. All rights reserved.