public interface Tracer
CoreConnection
and a OclExpression
impl
subclass of the type handled by them as argument. Furthermore, the implementing classes underly a naming convention.
If they handle an OclExpression
type by the MOF name of X then the tracer implementation class name
must be XTracer.Modifier and Type | Method and Description |
---|---|
NavigationStep |
traceback(org.eclipse.emf.ecore.EClass context,
PathCache pathCache,
OperationBodyToCallMapper filterSynthesizer)
Computes a navigation step that when executed, computes a set of elements containing at least all context elements such
that when the overall expression of which the expression represented by this tracer is a part, is evaluated for such an
element, the sub-expression represented by this tracer evaluates to the element passed to the navigation step's
NavigationStep.navigate(Set, TracebackCache, Notification) operation in the set parameter. |
NavigationStep traceback(org.eclipse.emf.ecore.EClass context, PathCache pathCache, OperationBodyToCallMapper filterSynthesizer)
NavigationStep.navigate(Set, TracebackCache, Notification)
operation in the set parameter. The result may also contain elements for which
this does not hold. It hence represents a conservative estimate.context
- the context type that defines the type of any self occurrence outside of operation bodiespathCache
- a global cache that remembers the navigation steps already computed for some OCL expressionsfilterSynthesizer
- the filter synthesizer that analyzed an overall expression that contains the expression to be handled by this
tracerclassScopeAnalyzer
- retains the results of traversing the outermost expression's tree, a sub-expression of which this tracer will
analyze in this method. The class scope analyzer in particular remembers the operation calls it found and
thereby makes it possible to limit the analysis of operation bodies by the scope of those calls actually
invoking the operation in the context of the outermost expression.