Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/Moka/org.eclipse.papyrus.moka.fuml/generated/org/eclipse/papyrus/moka/fuml/Semantics/Activities/IntermediateActivities/ActivityFinalNodeActivation.java')
-rw-r--r--sandbox/Moka/org.eclipse.papyrus.moka.fuml/generated/org/eclipse/papyrus/moka/fuml/Semantics/Activities/IntermediateActivities/ActivityFinalNodeActivation.java44
1 files changed, 44 insertions, 0 deletions
diff --git a/sandbox/Moka/org.eclipse.papyrus.moka.fuml/generated/org/eclipse/papyrus/moka/fuml/Semantics/Activities/IntermediateActivities/ActivityFinalNodeActivation.java b/sandbox/Moka/org.eclipse.papyrus.moka.fuml/generated/org/eclipse/papyrus/moka/fuml/Semantics/Activities/IntermediateActivities/ActivityFinalNodeActivation.java
new file mode 100644
index 00000000000..f007a76e0aa
--- /dev/null
+++ b/sandbox/Moka/org.eclipse.papyrus.moka.fuml/generated/org/eclipse/papyrus/moka/fuml/Semantics/Activities/IntermediateActivities/ActivityFinalNodeActivation.java
@@ -0,0 +1,44 @@
+/*****************************************************************************
+ * 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.IntermediateActivities;
+
+import java.util.List;
+
+import org.eclipse.papyrus.moka.fuml.debug.Debug;
+import org.eclipse.papyrus.moka.fuml.Semantics.Activities.ExtraStructuredActivities.ExpansionActivationGroup;
+import org.eclipse.papyrus.moka.fuml.Semantics.Loci.LociL1.Locus;
+
+public class ActivityFinalNodeActivation extends ControlNodeActivation {
+
+ public void fire(List<Token> incomingTokens) {
+ super.fire(incomingTokens) ;
+ Locus locus = this.getExecutionLocus() ;
+ if (locus.isInDebugMode) {
+ if (locus.engine.isTerminated())
+ return ;
+ }
+ // Terminate the activity execution or structured node activation
+ // containing this activation.
+ Debug.println("[fire] Activity final node " + this.node.getName() + "...");
+ if(incomingTokens.size() > 0 | this.incomingEdges.size() == 0) {
+ if(this.group.activityExecution != null) {
+ this.group.activityExecution.terminate();
+ } else if(this.group.containingNodeActivation != null) {
+ this.group.containingNodeActivation.terminateAll();
+ } else if(this.group instanceof ExpansionActivationGroup) {
+ ((ExpansionActivationGroup)this.group).regionActivation.terminate();
+ }
+ }
+ }
+}

Back to the top