blob: 6cff74e658c71666a4a0df5f154c27c25d13a8f1 [file] [log] [blame]
/*
* Copyright (c) 2005, 2007 IBM Corporation 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
*
* $Id: SendSignalAction.java,v 1.8 2007/10/23 15:54:21 jbruck Exp $
*/
package org.eclipse.uml2.uml;
import java.util.Map;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.ecore.EClass;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Send Signal Action</b></em>'.
* <!-- end-user-doc -->
*
* <!-- begin-model-doc -->
* A send signal action is an action that creates a signal instance from its inputs, and transmits it to the target object, where it may cause the firing of a state machine transition or the execution of an activity. The argument values are available to the execution of associated behaviors. The requestor continues execution immediately. Any reply message is ignored and is not transmitted to the requestor. If the input is already a signal instance, use a send object action.
* <!-- end-model-doc -->
*
* <p>
* The following features are supported:
* <ul>
* <li>{@link org.eclipse.uml2.uml.SendSignalAction#getTarget <em>Target</em>}</li>
* <li>{@link org.eclipse.uml2.uml.SendSignalAction#getSignal <em>Signal</em>}</li>
* </ul>
* </p>
*
* @see org.eclipse.uml2.uml.UMLPackage#getSendSignalAction()
* @model
* @generated
*/
public interface SendSignalAction
extends InvocationAction {
/**
* Returns the value of the '<em><b>Target</b></em>' containment reference.
* <p>
* This feature subsets the following features:
* <ul>
* <li>'{@link org.eclipse.uml2.uml.Action#getInputs() <em>Input</em>}'</li>
* </ul>
* </p>
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The target object to which the signal is sent.
* <!-- end-model-doc -->
* @return the value of the '<em>Target</em>' containment reference.
* @see #setTarget(InputPin)
* @see org.eclipse.uml2.uml.UMLPackage#getSendSignalAction_Target()
* @model containment="true" resolveProxies="true" required="true" ordered="false"
* @generated
*/
InputPin getTarget();
/**
* Sets the value of the '{@link org.eclipse.uml2.uml.SendSignalAction#getTarget <em>Target</em>}' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Target</em>' containment reference.
* @see #getTarget()
* @generated
*/
void setTarget(InputPin value);
/**
* Creates a new {@link org.eclipse.uml2.uml.InputPin}, with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', and sets the '<em><b>Target</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.InputPin}, or <code>null</code>.
* @param type The '<em><b>Type</b></em>' for the new {@link org.eclipse.uml2.uml.InputPin}, or <code>null</code>.
* @param eClass The Ecore class of the {@link org.eclipse.uml2.uml.InputPin} to create.
* @return The new {@link org.eclipse.uml2.uml.InputPin}.
* @see #getTarget()
* @generated
*/
InputPin createTarget(String name, Type type, EClass eClass);
/**
* Creates a new {@link org.eclipse.uml2.uml.InputPin},with the specified '<em><b>Name</b></em>', and '<em><b>Type</b></em>', and sets the '<em><b>Target</b></em>' containment reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param name The '<em><b>Name</b></em>' for the new {@link org.eclipse.uml2.uml.InputPin}, or <code>null</code>.
* @param type The '<em><b>Type</b></em>' for the new {@link org.eclipse.uml2.uml.InputPin}, or <code>null</code>.
* @return The new {@link org.eclipse.uml2.uml.InputPin}.
* @see #getTarget()
* @generated
*/
InputPin createTarget(String name, Type type);
/**
* Returns the value of the '<em><b>Signal</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The type of signal transmitted to the target object.
* <!-- end-model-doc -->
* @return the value of the '<em>Signal</em>' reference.
* @see #setSignal(Signal)
* @see org.eclipse.uml2.uml.UMLPackage#getSendSignalAction_Signal()
* @model required="true" ordered="false"
* @generated
*/
Signal getSignal();
/**
* Sets the value of the '{@link org.eclipse.uml2.uml.SendSignalAction#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 and order of argument pins must be the same as the number and order of attributes in the signal.
* true
* @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 validateNumberOrder(DiagnosticChain diagnostics,
Map<Object, Object> context);
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The type, ordering, and multiplicity of an argument pin must be the same as the corresponding attribute of the signal.
* true
* @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);
} // SendSignalAction