Class MergingSuggestDataProvider
- java.lang.Object
-
- de.cxp.ocs.smartsuggest.spi.MergingSuggestDataProvider
-
- All Implemented Interfaces:
SuggestDataProvider
public class MergingSuggestDataProvider extends Object implements SuggestDataProvider
Merges all the data it gets from all specified data providers. To distinguish the types afterwards, the suggest data type is added as tag to each according suggest record.
-
-
Constructor Summary
Constructors Constructor Description MergingSuggestDataProvider()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description longgetLastDataModTime(String indexName)Get the timestamp from when the data was modified the last time.booleanhasData(String indexName)Respond with 'true' if this provider is generally able to provide data for the requested index.SuggestDataloadData(String indexName)-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface de.cxp.ocs.smartsuggest.spi.SuggestDataProvider
configure
-
-
-
-
Method Detail
-
hasData
public boolean hasData(String indexName)
Description copied from interface:SuggestDataProviderRespond with 'true' if this provider is generally able to provide data for the requested index. This is a quick check when initializing the suggesters, so it should not take too long.
It's also possible to return a static "true" here and do the expensive availability check at the getLastDataModTime method, which is called async. If getLastDataModTime returns a value < 0, data update are canceled as well.
- Specified by:
hasDatain interfaceSuggestDataProvider- Parameters:
indexName- identifier for the requested data- Returns:
-
getLastDataModTime
public long getLastDataModTime(String indexName)
Description copied from interface:SuggestDataProviderGet the timestamp from when the data was modified the last time. For every change of that timestamp, the data will be pulled and indexed into suggest index.
Setting the timestamp at the data is optional, but if it is set there, it MUST be the same timestamp, otherwise the data is rejected. This feature is used to avoid potential concurrency issues.
If data is not available at all, a value < 0 should be returned.
- Specified by:
getLastDataModTimein interfaceSuggestDataProvider- Parameters:
indexName- identifier for the requested data- Returns:
- unix timestamp in millis
-
loadData
public SuggestData loadData(String indexName) throws IOException
- Specified by:
loadDatain interfaceSuggestDataProvider- Parameters:
indexName- identifier for the requested data- Returns:
- suggest data
- Throws:
IOException
-
-