/* * Initial version copyright 2008 Lockheed Martin Corporation, except * as stated in the file entitled Licensing-Information. * * All modifications copyright 2009-2012 Data Access Technologies, Inc. * * Licensed under the Academic Free License version 3.0 * (http://www.opensource.org/licenses/afl-3.0.php), except as stated * in the file entitled Licensing-Information. */ package fUML.Semantics.Actions.BasicActions; import fUML.Debug; import UMLPrimitiveTypes.*; import fUML.Syntax.*; import fUML.Syntax.Classes.Kernel.*; import fUML.Syntax.CommonBehaviors.BasicBehaviors.*; import fUML.Syntax.CommonBehaviors.Communications.*; import fUML.Syntax.Activities.IntermediateActivities.*; import fUML.Syntax.Actions.BasicActions.*; import fUML.Semantics.*; import fUML.Semantics.Classes.Kernel.*; import fUML.Semantics.CommonBehaviors.BasicBehaviors.*; import fUML.Semantics.Loci.*; public class CallBehaviorActionActivation extends fUML.Semantics.Actions.BasicActions.CallActionActivation { public fUML.Semantics.CommonBehaviors.BasicBehaviors.Execution getCallExecution() { // Create and execution for the given behavior at the current locus and // return the resulting execution object. // If the given behavior is in the context of a classifier, then pass // the current context object as the context for the call. // Otherwise, use a null context. // [Note that this requires the behavior context to be compatible with // the type of the current contect object.] Behavior behavior = ((CallBehaviorAction) (this.node)).behavior; Object_ context; if (behavior.context == null) { context = null; } else { // Debug.println("[getCallExecution] behavior context = " + // behavior.context.name); context = this.getExecutionContext(); } // Debug.println("[getCallExecution] context = " + context); return this.getExecutionLocus().factory.createExecution(behavior, context); } // getCallExecution } // CallBehaviorActionActivation