Interface IQueryBackend
-
- All Known Implementing Classes:
LocalSearchBackend,ReteEngine
public interface IQueryBackendInternal interface for a VIATRA query specification. Each query is associated with a pattern. Methods instantiate a matcher of the pattern with various parameters.- Since:
- 0.9
- No Extend:
- This interface is not intended to be extended by users of the VIATRA framework, and should only be used by the query engine
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voiddispose()Disposes the query backend.voidflushUpdates()Propagates all pending updates in this query backend.IQueryBackendFactorygetFactory()IQueryResultProvidergetResultProvider(PQuery query)Returns a result provider for a given query.IQueryResultProvidergetResultProvider(PQuery query, QueryEvaluationHint hints)Returns a result provider for a given query.booleanisCaching()IQueryResultProviderpeekExistingResultProvider(PQuery query)Returns an existing result provider for a given query, if it was previously constructed, returns null otherwise.
-
-
-
Method Detail
-
isCaching
boolean isCaching()
- Returns:
- true iff this backend is incremental, i.e. it caches the results of queries for quick retrieval, and can provide update notifications on result set changes.
-
getResultProvider
IQueryResultProvider getResultProvider(PQuery query)
Returns a result provider for a given query. Repeated calls may return the same instance.- Throws:
ViatraQueryRuntimeException
-
getResultProvider
IQueryResultProvider getResultProvider(PQuery query, QueryEvaluationHint hints)
Returns a result provider for a given query. Repeated calls may return the same instance.- Parameters:
optional- hints that may override engine and query defaults (as provided byIQueryBackendHintProvider). Can be null.- Throws:
ViatraQueryRuntimeException- Since:
- 1.4
-
peekExistingResultProvider
IQueryResultProvider peekExistingResultProvider(PQuery query)
Returns an existing result provider for a given query, if it was previously constructed, returns null otherwise. Will not construct and initialize new result providers.
-
flushUpdates
void flushUpdates()
Propagates all pending updates in this query backend. The implementation of this method is optional, and it can be ignored entirely if the backend does not delay updates.- Since:
- 1.6
-
dispose
void dispose()
Disposes the query backend.
-
getFactory
IQueryBackendFactory getFactory()
- Returns:
- the factory that created this backend, if this functionality is supported
- Since:
- 2.1
-
-