/* * Copyright 2015-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.Semantics.Classes.Kernel.FeatureValue; import fUML.Semantics.Classes.Kernel.FeatureValueList; import fUML.Semantics.CommonBehaviors.BasicBehaviors.ParameterValue; import fUML.Semantics.CommonBehaviors.BasicBehaviors.ParameterValueList; import fUML.Syntax.CommonBehaviors.Communications.SignalEvent; public class SignalEventOccurrence extends EventOccurrence { public SignalInstance signalInstance; @Override public boolean match(fUML.Syntax.CommonBehaviors.Communications.Trigger trigger) { // Match a trigger if it references a signal event whose signal is the type of the // signal instance or one of its supertypes. boolean matches = false; if(trigger.event instanceof SignalEvent){ SignalEvent event = (SignalEvent) trigger.event; matches = this.signalInstance.isInstanceOf(event.signal); } return matches; } @Override public fUML.Semantics.CommonBehaviors.BasicBehaviors.ParameterValueList getParameterValues() { // Return parameter values for feature of the signal instance, in order. // These are intended to be treated as if they are the values of effective // parameters of direction "in". ParameterValueList parameterValues = new ParameterValueList(); FeatureValueList memberValues = this.signalInstance.getMemberValues(); for(int i = 0; i < memberValues.size(); i++){ FeatureValue feature = memberValues.getValue(i); ParameterValue parameterValue = new ParameterValue(); parameterValue.values = feature.values; parameterValues.add(parameterValue); } return parameterValues; } }