Class RunOnceQueryEngine
- java.lang.Object
-
- org.eclipse.viatra.query.runtime.api.impl.RunOnceQueryEngine
-
- All Implemented Interfaces:
IRunOnceQueryEngine
public class RunOnceQueryEngine extends java.lang.Object implements IRunOnceQueryEngine
Run-once query engines can be used to retrieve the current match set of query specifications in a given scope. The engine is initialized with aNotifieras scope and a base index options that specifically allows traversing derived features that are not well-behaving.
-
-
Field Summary
Fields Modifier and Type Field Description protected booleansamplingMode
-
Constructor Summary
Constructors Constructor Description RunOnceQueryEngine(org.eclipse.emf.common.notify.Notifier notifier)Creates a run-once query engine on the given notifier.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <Match extends IPatternMatch>
java.util.Collection<Match>getAllMatches(IQuerySpecification<? extends ViatraQueryMatcher<Match>> querySpecification)Returns the set of all matches for the given query in the scope of the engine.BaseIndexOptionsgetBaseIndexOptions()The base index options specifies how the base index is built, including wildcard mode (defaults to false) and dynamic EMF mode (defaults to false).org.eclipse.emf.common.notify.NotifiergetScope()voidresampleOnNextCall()If automatic resampling is enabled and the value of derived features may change without model modifications, calling this method will make sure that re-sampling will occur before returning match results.voidsetAutomaticResampling(boolean automaticResampling)When set to true, the run-once query engine will not dispose it's engine and will resample the values of derived features before returning matches if the model changed since the last call.
-
-
-
Method Detail
-
getAllMatches
public <Match extends IPatternMatch> java.util.Collection<Match> getAllMatches(IQuerySpecification<? extends ViatraQueryMatcher<Match>> querySpecification)
Description copied from interface:IRunOnceQueryEngineReturns the set of all matches for the given query in the scope of the engine.- Specified by:
getAllMatchesin interfaceIRunOnceQueryEngine- Parameters:
querySpecification- the query that is evaluated- Returns:
- matches represented as a Match object.
-
getBaseIndexOptions
public BaseIndexOptions getBaseIndexOptions()
Description copied from interface:IRunOnceQueryEngineThe base index options specifies how the base index is built, including wildcard mode (defaults to false) and dynamic EMF mode (defaults to false). SeeNavigationHelperfor the explanation of wildcard mode and dynamic EMF mode. The returned options can be modified in order to affect subsequent calls ofIRunOnceQueryEngine.getAllMatches(org.eclipse.viatra.query.runtime.api.IQuerySpecification<? extends org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher<Match>>).- Specified by:
getBaseIndexOptionsin interfaceIRunOnceQueryEngine- Returns:
- the base index options used by the engine.
-
getScope
public org.eclipse.emf.common.notify.Notifier getScope()
- Specified by:
getScopein interfaceIRunOnceQueryEngine- Returns:
- the scope of pattern matching, i.e. the root of the EMF model tree that this engine is attached to.
-
setAutomaticResampling
public void setAutomaticResampling(boolean automaticResampling)
Description copied from interface:IRunOnceQueryEngineWhen set to true, the run-once query engine will not dispose it's engine and will resample the values of derived features before returning matches if the model changed since the last call. If the values of derived features may change without any model modification, callIRunOnceQueryEngine.resampleOnNextCall()before subsequent calls ofIRunOnceQueryEngine.getAllMatches(org.eclipse.viatra.query.runtime.api.IQuerySpecification<? extends org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher<Match>>).- Specified by:
setAutomaticResamplingin interfaceIRunOnceQueryEngine
-
resampleOnNextCall
public void resampleOnNextCall()
Description copied from interface:IRunOnceQueryEngineIf automatic resampling is enabled and the value of derived features may change without model modifications, calling this method will make sure that re-sampling will occur before returning match results.- Specified by:
resampleOnNextCallin interfaceIRunOnceQueryEngine
-
-