Class EMFBaseIndexWrapper
- java.lang.Object
-
- org.eclipse.viatra.query.runtime.emf.EMFBaseIndexWrapper
-
- All Implemented Interfaces:
IBaseIndex
public class EMFBaseIndexWrapper extends java.lang.Object implements IBaseIndex
Wraps the EMF base index into the IBaseIndex interface.
-
-
Constructor Summary
Constructors Constructor Description EMFBaseIndexWrapper(NavigationHelper navigationHelper)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddBaseIndexChangeListener(ViatraBaseIndexChangeListener listener)Adds a coarse-grained listener that will be invoked after the NavigationHelper index or the underlying model is changed.booleanaddIndexingErrorListener(IIndexingErrorListener listener)Adds a listener for internal errors in the index.booleanaddInstanceObserver(IInstanceObserver observer, java.lang.Object observedObject)Register a lightweight observer that is notified if any edge starting at the given Object changes.<V> VcoalesceTraversals(java.util.concurrent.Callable<V> callable)The given callback will be executed, and all model traversals and index registrations will be delayed until the execution is done.NavigationHelpergetNavigationHelper()voidremoveBaseIndexChangeListener(ViatraBaseIndexChangeListener listener)Removes a registered listener.booleanremoveIndexingErrorListener(IIndexingErrorListener listener)Removes a listener for internal errors in the indexbooleanremoveInstanceObserver(IInstanceObserver observer, java.lang.Object observedObject)Unregisters a lightweight observer for the given Object.voidresampleDerivedFeatures()Updates the value of indexed derived features that are not well-behaving.
-
-
-
Constructor Detail
-
EMFBaseIndexWrapper
public EMFBaseIndexWrapper(NavigationHelper navigationHelper)
- Parameters:
navigationHelper-
-
-
Method Detail
-
getNavigationHelper
public NavigationHelper getNavigationHelper()
- Returns:
- the underlying index object
-
resampleDerivedFeatures
public void resampleDerivedFeatures()
Description copied from interface:IBaseIndexUpdates the value of indexed derived features that are not well-behaving.- Specified by:
resampleDerivedFeaturesin interfaceIBaseIndex
-
coalesceTraversals
public <V> V coalesceTraversals(java.util.concurrent.Callable<V> callable) throws java.lang.reflect.InvocationTargetExceptionDescription copied from interface:IBaseIndexThe given callback will be executed, and all model traversals and index registrations will be delayed until the execution is done. If there are any outstanding feature, class or datatype registrations, a single coalesced model traversal will initialize the caches and deliver the notifications.- Specified by:
coalesceTraversalsin interfaceIBaseIndex- Throws:
java.lang.reflect.InvocationTargetException
-
addIndexingErrorListener
public boolean addIndexingErrorListener(IIndexingErrorListener listener)
Description copied from interface:IBaseIndexAdds a listener for internal errors in the index. A listener can only be added once.- Specified by:
addIndexingErrorListenerin interfaceIBaseIndex
-
removeIndexingErrorListener
public boolean removeIndexingErrorListener(IIndexingErrorListener listener)
Description copied from interface:IBaseIndexRemoves a listener for internal errors in the index- Specified by:
removeIndexingErrorListenerin interfaceIBaseIndex
-
addBaseIndexChangeListener
public void addBaseIndexChangeListener(ViatraBaseIndexChangeListener listener)
Description copied from interface:IBaseIndexAdds a coarse-grained listener that will be invoked after the NavigationHelper index or the underlying model is changed. Can be used e.g. to check model contents. Not intended for general use. SeeIBaseIndex.removeBaseIndexChangeListener(ViatraBaseIndexChangeListener)- Specified by:
addBaseIndexChangeListenerin interfaceIBaseIndex
-
removeBaseIndexChangeListener
public void removeBaseIndexChangeListener(ViatraBaseIndexChangeListener listener)
Description copied from interface:IBaseIndexRemoves a registered listener. SeeIBaseIndex.addBaseIndexChangeListener(ViatraBaseIndexChangeListener)- Specified by:
removeBaseIndexChangeListenerin interfaceIBaseIndex
-
addInstanceObserver
public boolean addInstanceObserver(IInstanceObserver observer, java.lang.Object observedObject)
Description copied from interface:IBaseIndexRegister a lightweight observer that is notified if any edge starting at the given Object changes.- Specified by:
addInstanceObserverin interfaceIBaseIndex- Parameters:
observer- the listener instanceobservedObject- the observed instance object- Returns:
- false if no observer can be registered for the given instance (e.g. it is a primitive), or observer was already registered (call has no effect)
-
removeInstanceObserver
public boolean removeInstanceObserver(IInstanceObserver observer, java.lang.Object observedObject)
Description copied from interface:IBaseIndexUnregisters a lightweight observer for the given Object.- Specified by:
removeInstanceObserverin interfaceIBaseIndex- Parameters:
observer- the listener instanceobservedObject- the observed instance object- Returns:
- false if no observer can be registered for the given instance (e.g. it is a primitive), or no observer was registered previously (call has no effect)
-
-