blob: cf86ad0047958af78900bbbbf3ea157d177f0e4d [file] [log] [blame]
/*
* Copyright (c) 2005, 2014 IBM Corporation, CEA, and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM - initial API and implementation
* Christian W. Damus (CEA) - 251963
* Kenn Hussey (CEA) - 418466
*
*/
package org.eclipse.uml2.uml;
import java.util.Map;
import org.eclipse.emf.common.util.DiagnosticChain;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Broadcast Signal Action</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* A BroadcastSignalAction is an InvocationAction that transmits a Signal instance to all the potential target objects in the system. Values from the argument InputPins are used to provide values for the attributes of the Signal. The requestor continues execution immediately after the Signal instances are sent out and cannot receive reply values.
* <p>From package UML::Actions.</p>
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.uml2.uml.BroadcastSignalAction#getSignal <em>Signal</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.uml2.uml.UMLPackage#getBroadcastSignalAction()
* @model
* @generated
*/
public interface BroadcastSignalAction
extends InvocationAction {
/**
* Returns the value of the '<em><b>Signal</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The Signal whose instances are to be sent.
* <p>From package UML::Actions.</p>
* <!-- end-model-doc -->
* @return the value of the '<em>Signal</em>' reference.
* @see #setSignal(Signal)
* @see org.eclipse.uml2.uml.UMLPackage#getBroadcastSignalAction_Signal()
* @model required="true" ordered="false"
* @generated
*/
Signal getSignal();
/**
* Sets the value of the '{@link org.eclipse.uml2.uml.BroadcastSignalAction#getSignal <em>Signal</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Signal</em>' reference.
* @see #getSignal()
* @generated
*/
void setSignal(Signal value);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The number of argument InputPins must be the same as the number of attributes in the signal.
* argument->size() = signal.allAttributes()->size()
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model
* @generated
*/
boolean validateNumberOfArguments(DiagnosticChain diagnostics,
Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The type, ordering, and multiplicity of an argument InputPin must be the same as the corresponding attribute of the signal.
* let attribute: OrderedSet(Property) = signal.allAttributes() in
* Sequence{1..argument->size()}->forAll(i |
* argument->at(i).type.conformsTo(attribute->at(i).type) and
* argument->at(i).isOrdered = attribute->at(i).isOrdered and
* argument->at(i).compatibleWith(attribute->at(i)))
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model
* @generated
*/
boolean validateTypeOrderingMultiplicity(DiagnosticChain diagnostics,
Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* A BroadcaseSignalAction may not specify onPort.
* onPort=null
* @param diagnostics The chain of diagnostics to which problems are to be appended.
* @param context The cache of context-specific information.
* <!-- end-model-doc -->
* @model
* @generated
*/
boolean validateNoOnport(DiagnosticChain diagnostics,
Map<Object, Object> context);
} // BroadcastSignalAction