org.eclipse.ocl.examples.impactanalyzer.instanceScope.traceback
Class AbstractTracebackStep.TracebackStepAndScopeChangeWithOperationCallExp
java.lang.Object
org.eclipse.ocl.examples.impactanalyzer.instanceScope.traceback.AbstractTracebackStep.TracebackStepAndScopeChange
org.eclipse.ocl.examples.impactanalyzer.instanceScope.traceback.AbstractTracebackStep.TracebackStepAndScopeChangeWithOperationCallExp
- All Implemented Interfaces:
- TracebackStep
- Enclosing class:
- AbstractTracebackStep<E extends OCLExpression>
protected static class AbstractTracebackStep.TracebackStepAndScopeChangeWithOperationCallExp
- extends AbstractTracebackStep.TracebackStepAndScopeChange
When executed using the traceback(AnnotatedEObject, UnusedEvaluationRequestSet, TracebackCache, Notification)
method,
results will be keyed with callToWhichResultsAreSpecific
because the TracebackStep
encapsulated by this object
navigates back to the specified call expression, and there either to the source or an argument expression.
- Author:
- Axel Uhl (D043530)
- See Also:
OperationCallExpKeyedSet
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
AbstractTracebackStep.TracebackStepAndScopeChangeWithOperationCallExp
public AbstractTracebackStep.TracebackStepAndScopeChangeWithOperationCallExp(TracebackStep step,
java.util.Set<Variable> variablesChangingScope,
OperationCallExp callToWhichResultsAreSpecific)
- Remembers
call
as the only operation call through which
- Parameters:
orCreateNavigationPath
- variablesChangingScope
- callToWhichResultsAreSpecific
-
traceback
public OperationCallExpKeyedSet traceback(AnnotatedEObject source,
UnusedEvaluationRequestSet pendingUnusedEvalRequests,
TracebackCache tracebackCache,
org.eclipse.emf.common.notify.Notification changeEvent)
- Description copied from interface:
TracebackStep
- When being executed, the step computes a conservative superset of the objects that, when used as the context for the
overall
OCLExpression
, may cause the expression for which this TracebackStep
was created to evaluate to
source
.
- Specified by:
traceback
in interface TracebackStep
- Overrides:
traceback
in class AbstractTracebackStep.TracebackStepAndScopeChange
- Parameters:
source
- the object to which the expression, for which this step was created, shall evaluatependingUnusedEvalRequests
- When tracing back a VariableExp
expression, this infers a value for the variable referred to by the
expression. This may trigger a previously delayed "unused" evaluation to be triggered. Those triggerable
"unused" evaluation requests are passed using this parameter. When triggering one of them proves the location of
the original change to be unused, an empty set will result from this call. May be null
, having the
same effect as passing a set that contains no requests.tracebackCache
- cache in which previous results of
TracebackStep.traceback(AnnotatedEObject, UnusedEvaluationRequestSet, org.eclipse.ocl.examples.impactanalyzer.instanceScope.traceback.TracebackCache, Notification)
executions can be foundchangeEvent
- the original change event; used for performing pre/post evaluations
- Returns:
- the set of objects (with optional annotation explaining the derivation path of each object) for which, when used as
context for the overall expression, the OCL (sub-)expression for which this step is responsible may evaluate to
source
. The resulting objects may additionally be keyed by OperationCallExp
expressions in case
their inference left an operation body through a self
or parameter variable. These keys are
removed again in the OperationCallTracebackStep
, keying the results specific to the call being traced
by the null
key. All object reached without leaving an operation body through a self
or parameter variable are also keyed by the null
key.
toString
public java.lang.String toString()
- Overrides:
toString
in class AbstractTracebackStep.TracebackStepAndScopeChange