/* * 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: CallOperationAction.java,v 1.8 2007/10/23 15:54:22 jbruck Exp $ */ package org.eclipse.uml2.uml; import java.util.Map; import org.eclipse.emf.common.util.DiagnosticChain; import org.eclipse.emf.ecore.EClass; /** * * A representation of the model object 'Call Operation Action'. * * * * A call operation action is an action that transmits an operation call request to the target object, where it may cause the invocation of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling behavior. Any values returned as part of the reply transmission are put on the result output pins of the call operation action. Upon receipt of the reply transmission, execution of the call operation action is complete. * * *

* The following features are supported: *

*

* * @see org.eclipse.uml2.uml.UMLPackage#getCallOperationAction() * @model * @generated */ public interface CallOperationAction extends CallAction { /** * Returns the value of the 'Operation' reference. * * * * The operation to be invoked by the action execution. * * @return the value of the 'Operation' reference. * @see #setOperation(Operation) * @see org.eclipse.uml2.uml.UMLPackage#getCallOperationAction_Operation() * @model required="true" ordered="false" * @generated */ Operation getOperation(); /** * Sets the value of the '{@link org.eclipse.uml2.uml.CallOperationAction#getOperation Operation}' reference. * * * @param value the new value of the 'Operation' reference. * @see #getOperation() * @generated */ void setOperation(Operation value); /** * Returns the value of the 'Target' containment reference. *

* This feature subsets the following features: *

*

* * * * The target object to which the request is sent. The classifier of the target object is used to dynamically determine a behavior to invoke. This object constitutes the context of the execution of the operation. * * @return the value of the 'Target' containment reference. * @see #setTarget(InputPin) * @see org.eclipse.uml2.uml.UMLPackage#getCallOperationAction_Target() * @model containment="true" resolveProxies="true" required="true" ordered="false" * @generated */ InputPin getTarget(); /** * Sets the value of the '{@link org.eclipse.uml2.uml.CallOperationAction#getTarget Target}' containment reference. * * * @param value the new value of the 'Target' containment reference. * @see #getTarget() * @generated */ void setTarget(InputPin value); /** * Creates a new {@link org.eclipse.uml2.uml.InputPin}, with the specified 'Name', and 'Type', and sets the 'Target' containment reference. * * * @param name The 'Name' for the new {@link org.eclipse.uml2.uml.InputPin}, or null. * @param type The 'Type' for the new {@link org.eclipse.uml2.uml.InputPin}, or null. * @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 'Name', and 'Type', and sets the 'Target' containment reference. * * * @param name The 'Name' for the new {@link org.eclipse.uml2.uml.InputPin}, or null. * @param type The 'Type' for the new {@link org.eclipse.uml2.uml.InputPin}, or null. * @return The new {@link org.eclipse.uml2.uml.InputPin}. * @see #getTarget() * @generated */ InputPin createTarget(String name, Type type); /** * * * * The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal. * true * @param diagnostics The chain of diagnostics to which problems are to be appended. * @param context The cache of context-specific information. * * @model * @generated */ boolean validateArgumentPinEqualParameter(DiagnosticChain diagnostics, Map context); /** * * * * The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal. * true * @param diagnostics The chain of diagnostics to which problems are to be appended. * @param context The cache of context-specific information. * * @model * @generated */ boolean validateResultPinEqualParameter(DiagnosticChain diagnostics, Map context); /** * * * * The type of the target pin must be the same as the type that owns the operation. * true * @param diagnostics The chain of diagnostics to which problems are to be appended. * @param context The cache of context-specific information. * * @model * @generated */ boolean validateTypeTargetPin(DiagnosticChain diagnostics, Map context); } // CallOperationAction