org.eclipse.ocl.examples.impactanalyzer.deltaPropagation
Interface DeltaPropagationStrategy

All Known Implementing Classes:
DeltaPropagationStrategyWithTargetExpression, DeltaPropagationStrategyWithTargetExpressionAndPartialEvaluator, IdentityPropagationStrategy, IteratorSourcePropagationStrategy, OperationBodyPropagationStrategy

public interface DeltaPropagationStrategy

For a given OCL expression and a delta for its value, implementations of this interface can decide whether the delta can be propagated and eventually compute the propagated delta.

Author:
Axel Uhl (D043530)

Method Summary
 java.util.Collection<Tuple.Pair<OCLExpression,java.util.Collection<java.lang.Object>>> mapDelta(OCLExpression e, java.util.Collection<java.lang.Object> delta)
          Maps a delta of e's value to the delta of one or more other expressions, typically such expressions that contain or use e, as in the case where e is the body of a collect expression or the source of a CallExp expression.
 

Method Detail

mapDelta

java.util.Collection<Tuple.Pair<OCLExpression,java.util.Collection<java.lang.Object>>> mapDelta(OCLExpression e,
                                                                                                java.util.Collection<java.lang.Object> delta)
Maps a delta of e's value to the delta of one or more other expressions, typically such expressions that contain or use e, as in the case where e is the body of a collect expression or the source of a CallExp expression. The case where multiple pairs are returned may happen, e.g., when e is the body of an operation which gets called by several OperationCallExp expressions in the context of the overall expression for which to analyze the change propagation.

Returns:
null if the delta cannot be propagated, or zero or more pairs each of which containing the expression to which the original delta propagates monotonically and the mapped, non-null non-empty delta in the b component of the pair returned. If delta propagates to an empty delta for some other expression, no entry is created for this in the result collection. If a non-null but empty collection is returned this means that the delta of e's value has no effect on the overall expression analyzed.