/* * Copyright 2017 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.Communications; import fUML.Syntax.Classes.Kernel.Operation; import fUML.Syntax.Classes.Kernel.Parameter; import fUML.Syntax.CommonBehaviors.BasicBehaviors.Behavior; public class CallEventBehavior extends Behavior { public Operation operation = null; public void setOperation(Operation operation) { // Set the operation for this call event behavior and construct // the behavior signature based on the operation signature. this.operation = operation; for(int i = 0; i < operation.ownedParameter.size(); i++){ Parameter operationParameter = operation.ownedParameter.get(i); Parameter parameter = new Parameter(); parameter.name = operationParameter.name; parameter.type = operationParameter.type; parameter.multiplicityElement.lowerValue = operationParameter.multiplicityElement.lowerValue; parameter.multiplicityElement.lower = operationParameter.multiplicityElement.lower; parameter.multiplicityElement.upperValue = operationParameter.multiplicityElement.upperValue; parameter.multiplicityElement.upper = operationParameter.multiplicityElement.upper; parameter.direction = operationParameter.direction; parameter.owner = this; parameter.namespace = this; this.ownedElement.addValue(parameter); this.ownedMember.addValue(parameter); this.member.addValue(parameter); this.ownedParameter.addValue(parameter); } this.isReentrant = true; this.name = "CallEventBehavior"; if (operation.name != null) { this.name = this.name + "(" + operation.name + ")"; } } }