/* * 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.CommonBehaviors.BasicBehaviors; import fUML.Debug; import UMLPrimitiveTypes.*; import fUML.Syntax.*; import fUML.Syntax.Classes.Kernel.*; import fUML.Syntax.CommonBehaviors.BasicBehaviors.*; import fUML.Semantics.*; import fUML.Semantics.Classes.Kernel.*; import fUML.Semantics.Loci.*; public abstract class OpaqueBehaviorExecution extends fUML.Semantics.CommonBehaviors.BasicBehaviors.Execution { public void execute() { // Execute the body of the opaque behavior. Debug.println("[execute] Opaque behavior " + this.getBehavior().name + "..."); ParameterList parameters = this.getBehavior().ownedParameter; ParameterValueList inputs = new ParameterValueList(); ParameterValueList outputs = new ParameterValueList(); for (int i = 0; i < parameters.size(); i++) { Parameter parameter = parameters.getValue(i); if ((parameter.direction == ParameterDirectionKind.in) | (parameter.direction == ParameterDirectionKind.inout)) { inputs.addValue(this.getParameterValue(parameter)); } if ((parameter.direction == ParameterDirectionKind.inout) | (parameter.direction == ParameterDirectionKind.out) | (parameter.direction == ParameterDirectionKind.return_)) { ParameterValue parameterValue = new ParameterValue(); parameterValue.parameter = parameter; this.setParameterValue(parameterValue); outputs.addValue(parameterValue); } } this.doBody(inputs, outputs); } // execute public abstract void doBody( fUML.Semantics.CommonBehaviors.BasicBehaviors.ParameterValueList inputParameters, fUML.Semantics.CommonBehaviors.BasicBehaviors.ParameterValueList outputParameters); } // OpaqueBehaviorExecution