Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "VIATRA/Query/DeveloperDocumentation/QueryEngineArchitecture"
(Split) |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | {{caution|Old information|The content from this page was migrated to the new, Github-based wiki system of VIATRA: https://github.com/eclipse-viatra/org.eclipse.viatra/wiki/VIATRA-Query-Engine-Internals}} | ||
+ | {{VIATRA}} | ||
== VIATRA Query Engine Internals == | == VIATRA Query Engine Internals == | ||
Line 7: | Line 9: | ||
* '''ViatraQueryEngine''': the central element of the API. | * '''ViatraQueryEngine''': the central element of the API. | ||
− | * ''' | + | * '''QueryScope''': the set of model elements the ViatraQueryEngine should work on. |
− | * ''' | + | ** The project itself implements only '''EMFScope''' right now. |
− | * '''IQueryBackend''': an executor of graph pattern matches; it instantiates | + | * '''IQueryRuntimeContext''': wrapper class for the query backends to access the model. The access can be both indexed and non-indexed. |
− | ** '''RetePatternMatcher''' is the fully incremental implementation of the | + | * '''IQueryBackend''': an executor of graph pattern matches; it instantiates '''IQueryResultProvider'''s. Query Backends needs to be registered to the ViatraQueryEngine itself. |
− | ** ''' | + | ** '''RetePatternMatcher''' is the fully incremental implementation of the '''IQueryResultProvider''' interface. |
− | * The ''' | + | ** '''LocalSearchResultProvider''' is a local search based implementation of the '''IQueryResultProvider''' interface. |
+ | * The '''ViatraQueryMatcher''' interface is the public matcher API: generated instances are type-safe. |
Latest revision as of 09:52, 2 April 2024
VIATRA Query Engine Internals
Overview
Most important concepts
- ViatraQueryEngine: the central element of the API.
- QueryScope: the set of model elements the ViatraQueryEngine should work on.
- The project itself implements only EMFScope right now.
- IQueryRuntimeContext: wrapper class for the query backends to access the model. The access can be both indexed and non-indexed.
- IQueryBackend: an executor of graph pattern matches; it instantiates IQueryResultProviders. Query Backends needs to be registered to the ViatraQueryEngine itself.
- RetePatternMatcher is the fully incremental implementation of the IQueryResultProvider interface.
- LocalSearchResultProvider is a local search based implementation of the IQueryResultProvider interface.
- The ViatraQueryMatcher interface is the public matcher API: generated instances are type-safe.