Bug 528754 - Standalone state machine shall be able to receive time
events occurrence. 

Change-Id: I1398a9b5b1b72ce0a36ef3c2512810312572db65
Signed-off-by: jeremie.tatibouet <jeremie.tatibouet@cea.fr>
diff --git a/bundles/core/engines/org.eclipse.papyrus.moka.timedfuml/src/org/eclipse/papyrus/moka/timedfuml/semantics/StateMachines/TimedStateMachineExecution.java b/bundles/core/engines/org.eclipse.papyrus.moka.timedfuml/src/org/eclipse/papyrus/moka/timedfuml/semantics/StateMachines/TimedStateMachineExecution.java
index 29b41cf..5b84e78 100644
--- a/bundles/core/engines/org.eclipse.papyrus.moka.timedfuml/src/org/eclipse/papyrus/moka/timedfuml/semantics/StateMachines/TimedStateMachineExecution.java
+++ b/bundles/core/engines/org.eclipse.papyrus.moka.timedfuml/src/org/eclipse/papyrus/moka/timedfuml/semantics/StateMachines/TimedStateMachineExecution.java
@@ -12,8 +12,13 @@
  *****************************************************************************/

 package org.eclipse.papyrus.moka.timedfuml.semantics.StateMachines;

 

+import java.util.List;

+

 import org.eclipse.papyrus.moka.fuml.Semantics.Classes.Kernel.IObject_;

+import org.eclipse.papyrus.moka.fuml.Semantics.CommonBehaviors.BasicBehaviors.IParameterValue;

 import org.eclipse.papyrus.moka.fuml.statemachines.Semantics.StateMachines.StateMachineExecution;

+import org.eclipse.papyrus.moka.timedfuml.semantics.CommonBehaviors.TimedObjectActivation;

+import org.eclipse.uml2.uml.Class;

 

 public class TimedStateMachineExecution extends StateMachineExecution{

 

@@ -26,4 +31,15 @@
 		super();

 		this.configuration = new TimedStateMachineConfiguration(this);

 	}

+	

+	public void startBehavior(Class classifier, List<IParameterValue> inputs) {

+		// The behavior captured here is almost identical to the one provide by Object_.

+		// Instead of using a simple ObjectActivation we use a StateMachineObjectActivation.

+		// This specialized kind of ObjectActivation allows the registering of time events.

+		if (this.objectActivation == null) {

+			this.objectActivation = new TimedObjectActivation();

+			this.objectActivation.setObject(this);

+		}

+		this.objectActivation.startBehavior(classifier, inputs);

+	}

 }