use of org.yakindu.sct.model.sgraph.Effect in project statecharts by Yakindu.
the class ReactionImpl method basicSetEffect.
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetEffect(Effect newEffect, NotificationChain msgs) {
Effect oldEffect = effect;
effect = newEffect;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SGraphPackage.REACTION__EFFECT, oldEffect, newEffect);
if (msgs == null)
msgs = notification;
else
msgs.add(notification);
}
return msgs;
}
use of org.yakindu.sct.model.sgraph.Effect in project statecharts by Yakindu.
the class FoldIncomingActionsRefactoring method getLastActions.
private List<Expression> getLastActions(Transition transition, int number) {
List<Expression> lastActions = new ArrayList<Expression>();
Effect effect = transition.getEffect();
if (effect instanceof ReactionEffect) {
ReactionEffect reactionEffect = (ReactionEffect) effect;
List<Expression> actions = reactionEffect.getActions();
for (int i = 1; i <= number; i++) {
lastActions.add(actions.get(actions.size() - i));
}
}
return lastActions;
}
use of org.yakindu.sct.model.sgraph.Effect in project statecharts by Yakindu.
the class FoldIncomingActionsRefactoring method removeLastActions.
private void removeLastActions(EList<Transition> transitions, int number) {
for (Transition transition : transitions) {
List<Expression> actionsToRemove = getLastActions(transition, number);
Effect effect = transition.getEffect();
if (effect instanceof ReactionEffect && actionsToRemove.size() == ((ReactionEffect) effect).getActions().size()) {
// we need to remove all actions, so just remove the effect
// recursively which avoids serializer exceptions
EcoreUtil.delete(effect, true);
} else {
for (Expression action : actionsToRemove) {
EcoreUtil.delete(action);
}
}
}
}
use of org.yakindu.sct.model.sgraph.Effect in project statecharts by Yakindu.
the class UnfoldExitActionsRefactoring method addActionsToTransition.
private void addActionsToTransition(final Transition transition, final Collection<Expression> actionsToAdd) {
Effect effect = transition.getEffect();
if (effect instanceof ReactionEffect) {
ReactionEffect reactionEffect = (ReactionEffect) effect;
reactionEffect.getActions().addAll(0, actionsToAdd);
} else {
ReactionEffect reactionEffect = StextFactory.eINSTANCE.createReactionEffect();
reactionEffect.getActions().addAll(actionsToAdd);
transition.setEffect(reactionEffect);
}
}
use of org.yakindu.sct.model.sgraph.Effect in project statecharts by Yakindu.
the class TransitionImpl method basicSetEffect.
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NotificationChain basicSetEffect(Effect newEffect, NotificationChain msgs) {
Effect oldEffect = effect;
effect = newEffect;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, SGraphPackage.TRANSITION__EFFECT, oldEffect, newEffect);
if (msgs == null)
msgs = notification;
else
msgs.add(notification);
}
return msgs;
}
Aggregations