org.eclipse.ocl.examples.impactanalyzer.deltaPropagation
Class IteratorSourcePropagationStrategy

java.lang.Object
  extended by org.eclipse.ocl.examples.impactanalyzer.deltaPropagation.DeltaPropagationStrategyWithTargetExpression
      extended by org.eclipse.ocl.examples.impactanalyzer.deltaPropagation.DeltaPropagationStrategyWithTargetExpressionAndPartialEvaluator
          extended by org.eclipse.ocl.examples.impactanalyzer.deltaPropagation.IteratorSourcePropagationStrategy
All Implemented Interfaces:
DeltaPropagationStrategy

public class IteratorSourcePropagationStrategy
extends DeltaPropagationStrategyWithTargetExpressionAndPartialEvaluator


Constructor Summary
IteratorSourcePropagationStrategy(IteratorExp loopExp, PartialEvaluatorImpl evaluator)
           
 
Method Summary
 java.util.Collection<Tuple.Pair<OCLExpression,java.util.Collection<java.lang.Object>>> mapDelta(OCLExpression sourceOfIterator, 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.
 
Methods inherited from class org.eclipse.ocl.examples.impactanalyzer.deltaPropagation.DeltaPropagationStrategyWithTargetExpressionAndPartialEvaluator
getEvaluator
 
Methods inherited from class org.eclipse.ocl.examples.impactanalyzer.deltaPropagation.DeltaPropagationStrategyWithTargetExpression
getPropagatesTo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IteratorSourcePropagationStrategy

public IteratorSourcePropagationStrategy(IteratorExp loopExp,
                                         PartialEvaluatorImpl evaluator)
Method Detail

mapDelta

public java.util.Collection<Tuple.Pair<OCLExpression,java.util.Collection<java.lang.Object>>> mapDelta(OCLExpression sourceOfIterator,
                                                                                                       java.util.Collection<java.lang.Object> delta)
Description copied from interface: DeltaPropagationStrategy
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.