Class CachedDataStoreFactory

  • All Implemented Interfaces:
    DataStoreFactory

    public class CachedDataStoreFactory
    extends java.lang.Object
    implements DataStoreFactory
    DataStoreFactory implementation that reads columns and caches them for later use. The actual storage mechanism is provided by an externally supplied CachedColumnFactory.
    Since:
    11 Feb 2013
    Author:
    Mark Taylor
    • Constructor Detail

      • CachedDataStoreFactory

        public CachedDataStoreFactory​(CachedColumnFactory colFact)
        Constructor.
        Parameters:
        colFact - object which provides the storage for caching arrays of typed data
    • Method Detail

      • readDataStore

        public DataStore readDataStore​(DataSpec[] dataSpecs,
                                       DataStore prevStore)
                                throws java.io.IOException,
                                       java.lang.InterruptedException
        Description copied from interface: DataStoreFactory
        Generates a DataStore capable of supplying the data for a given list of DataSpec objects. The prevStore argument may optionally supply the result of a previous invocation of this method. The implementation may choose to make use of the internal state of such an instance for efficiency, for instance by re-using data that has already been read.

        Since the bulk data is managed by the DataStore object, care should be taken about what happens to the DataStore objects supplied to and returned from this method. In particular, code both invoking and implementing this method should usually make sure not to keep a reference to the prevStore argument.

        This method may perform the actual reading, and therefore take time. It is not intended to be invoked on the event dispatch thread.

        Specified by:
        readDataStore in interface DataStoreFactory
        Parameters:
        dataSpecs - data specifications; some elements may be null
        prevStore - previously obtained DataStore, or null
        Returns:
        new data store
        Throws:
        java.io.IOException
        java.lang.InterruptedException