com.devexperts.qd.util
Class CompositeDataProvider

java.lang.Object
  extended by com.devexperts.qd.util.CompositeDataProvider
All Implemented Interfaces:
DataProvider

public final class CompositeDataProvider
extends java.lang.Object
implements DataProvider

This class provides an efficient implementation of composite DataProvider that listens for multiple DataProvider instances and on retrieveData method invocation only retrieves data from the providers that have data available.

This class is thread-safe and lock-free. Change carefully.


Constructor Summary
CompositeDataProvider(DataProvider... dataProviders)
          Constructs an instance of CompositeDataProvider for a given list of individual data providers.
 
Method Summary
 boolean retrieveData(DataVisitor visitor)
          Retrieves accumulated data into specified data visitor.
 void setDataListener(DataListener listener)
          Sets new data listener to receive notifications about data.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CompositeDataProvider

public CompositeDataProvider(DataProvider... dataProviders)
Constructs an instance of CompositeDataProvider for a given list of individual data providers.

Method Detail

retrieveData

public boolean retrieveData(DataVisitor visitor)
Description copied from interface: DataProvider
Retrieves accumulated data into specified data visitor. Returns true if some data still remains in the provider or false if all accumulated data were retrieved.

Specified by:
retrieveData in interface DataProvider

setDataListener

public void setDataListener(DataListener listener)
Description copied from interface: DataProvider
Sets new data listener to receive notifications about data. Only one listener at a time is supported; the former listener is discarded. Use null to set empty data listener (no notifications).

NOTE: if there is accumulated data available, then specified listener will be notified by this method.

Specified by:
setDataListener in interface DataProvider