diff options
Diffstat (limited to 'sandbox/Moka/org.eclipse.papyrus.moka.fuml/generated/org/eclipse/papyrus/moka/fuml/Semantics/Activities/ExtraStructuredActivities/ExpansionNodeActivation.java')
-rw-r--r-- | sandbox/Moka/org.eclipse.papyrus.moka.fuml/generated/org/eclipse/papyrus/moka/fuml/Semantics/Activities/ExtraStructuredActivities/ExpansionNodeActivation.java | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/sandbox/Moka/org.eclipse.papyrus.moka.fuml/generated/org/eclipse/papyrus/moka/fuml/Semantics/Activities/ExtraStructuredActivities/ExpansionNodeActivation.java b/sandbox/Moka/org.eclipse.papyrus.moka.fuml/generated/org/eclipse/papyrus/moka/fuml/Semantics/Activities/ExtraStructuredActivities/ExpansionNodeActivation.java new file mode 100644 index 00000000000..4c99267ae0b --- /dev/null +++ b/sandbox/Moka/org.eclipse.papyrus.moka.fuml/generated/org/eclipse/papyrus/moka/fuml/Semantics/Activities/ExtraStructuredActivities/ExpansionNodeActivation.java @@ -0,0 +1,60 @@ +/***************************************************************************** + * Copyright (c) 2012 CEA LIST. + * + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * CEA LIST - Initial API and implementation + * + *****************************************************************************/ +package org.eclipse.papyrus.moka.fuml.Semantics.Activities.ExtraStructuredActivities; + +import java.util.List; + +import org.eclipse.papyrus.moka.fuml.debug.Debug; +import org.eclipse.papyrus.moka.fuml.Semantics.Activities.IntermediateActivities.ObjectNodeActivation; +import org.eclipse.papyrus.moka.fuml.Semantics.Activities.IntermediateActivities.Token; +import org.eclipse.papyrus.moka.fuml.Semantics.Loci.LociL1.Locus; +import org.eclipse.uml2.uml.ExpansionNode; +import org.eclipse.uml2.uml.ExpansionRegion; + +public class ExpansionNodeActivation extends ObjectNodeActivation { + + public void fire(List<Token> incomingTokens) { + super.fire(incomingTokens) ; + Locus locus = this.getExecutionLocus() ; + if (locus.isInDebugMode) { + if (locus.engine.isTerminated()) + return ; + } + // Take tokens from all incoming edges. + Debug.println("[fire] Expansion node " + this.node.getName() + "..."); + this.addTokens(incomingTokens); + } + + public void receiveOffer() { + // Forward the offer on to the expansion region. + this.getExpansionRegionActivation().receiveOffer(); + } + + public Boolean isReady() { + // An expansion node is always fired by its expansion region. + return false; + } + + public ExpansionRegionActivation getExpansionRegionActivation() { + // Return the expansion region activation corresponding to this + // expansion node, in the context of the activity node activation group + // this expansion node activation is in. + ExpansionNode node = (ExpansionNode)(this.node); + ExpansionRegion region = node.getRegionAsInput(); + if(region == null) { + region = node.getRegionAsOutput(); + } + return (ExpansionRegionActivation)(this.group.getNodeActivation(region)); + } +} |