GigaSpaces XAP 9.7.2 API

com.gigaspaces.datasource
Class SpaceDataSource

java.lang.Object
  extended by com.gigaspaces.datasource.SpaceDataSource
Direct Known Subclasses:
CassandraSpaceDataSource, ManagedEntriesSpaceDataSource, SpaceDataSourceExceptionHandler, SpaceDataSourceSplitter

public abstract class SpaceDataSource
extends Object

A SpaceDataSource is used for reading data into the Space upon a request from the Space or on Space initialization.

Since:
9.1.1
Author:
eitany, Idan Moyal

Constructor Summary
SpaceDataSource()
           
 
Method Summary
 Object getById(DataSourceIdQuery idQuery)
          This method is invoked whenever the space needs to read an entry from the data source according to its Id.
 DataIterator<Object> getDataIterator(DataSourceQuery query)
          This method is invoked whenever the space needs to read data which matches the provided DataSourceQuery from the space data source.
 DataIterator<Object> getDataIteratorByIds(com.gigaspaces.datasource.DataSourceIdsQuery idsQuery)
          This method is invoked whenever the space needs to read several entries from the data source according to their ids.
 DataIterator<Object> initialDataLoad()
          This method is invoked after initialMetadataLoad() and is used for pre fetching data from the data source on space initialization.
 DataIterator<SpaceTypeDescriptor> initialMetadataLoad()
          This method is invoked on space initialization (before initialDataLoad() is invoked) and is used for introducing data types kept in the data source to the space.
 boolean supportsInheritance()
          Determines whether this implementation supports types inheritance.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SpaceDataSource

public SpaceDataSource()
Method Detail

initialMetadataLoad

public DataIterator<SpaceTypeDescriptor> initialMetadataLoad()
This method is invoked on space initialization (before initialDataLoad() is invoked) and is used for introducing data types kept in the data source to the space.

Please note that derived types should be returned after their super types from the iterator.

It is possible to create a SpaceTypeDescriptor using SpaceTypeDescriptorBuilder.

Returns:
A DataIterator instance which contains all SpaceTypeDescriptor instances to be introduced to the Space upon its initialization - null is treated as an empty iterator.

initialDataLoad

public DataIterator<Object> initialDataLoad()
This method is invoked after initialMetadataLoad() and is used for pre fetching data from the data source on space initialization.

The returned DataIterator instance should contain POJOs or SpaceDocuments which their type was previously introduced to the space on initialMetadataLoad() invocation.

Returns:
A DataIterator instance which contains all data to be written to Space upon its initialization - null is treated as an empty iterator.

getDataIterator

public DataIterator<Object> getDataIterator(DataSourceQuery query)
This method is invoked whenever the space needs to read data which matches the provided DataSourceQuery from the space data source.

If this implementation doesn't supports types inheritance this method will be invoked for each type in the inheritance tree of the queried type.

The implementation's type inheritance support can be determined by overriding the supportsInheritance() method.

Parameters:
query - The DataSourceQuery to get results for.
Returns:
A DataIterator instance contains results for the provided DataSourceQuery.

getById

public Object getById(DataSourceIdQuery idQuery)
This method is invoked whenever the space needs to read an entry from the data source according to its Id.

The returned value can be either a POJO or a SpaceDocument instance.

The default implementation of this method is delegated to the getDataIterator(DataSourceQuery) method so if the data source does not have an optimized way of reading an entity by its Id - the default implementation may suffice.

Parameters:
idQuery - The DataSourceIdQuery to get a result for.
Returns:
A result from the SpaceDataSource which matches the provided DataSourceIdQuery.

getDataIteratorByIds

public DataIterator<Object> getDataIteratorByIds(com.gigaspaces.datasource.DataSourceIdsQuery idsQuery)
This method is invoked whenever the space needs to read several entries from the data source according to their ids.

The returned values can be either POJOs or SpaceDocument instances.

The default implementation of this method is delegated to the getById(DataSourceIdQuery) method for each id, so if the data source does not have an optimized way of reading an serveral entities by their ids - the default implementation may suffice.

Parameters:
idsQuery - The DataSourceIdsQuery to get a result for.
Returns:
A DataIterator instance contains results for the provided DataSourceIdsQuery.

supportsInheritance

public boolean supportsInheritance()
Determines whether this implementation supports types inheritance.

If types inheritance is not supported - getDataIterator(DataSourceQuery) will be invoked for each derived type of the query's data type. Otherwise a single getDataIterator(DataSourceQuery) invocation will be made for the query.

Returns:
true if this SpaceDataSource implementation supports types inheritance, otherwise false.

GigaSpaces XAP 9.7.2 API

Copyright © GigaSpaces.