/**
*/
package org.eclipse.etrice.core.room;
import org.eclipse.emf.common.util.EList;
import org.eclipse.etrice.core.common.base.Documentation;
import org.eclipse.etrice.core.fsm.fSM.DetailCode;
/**
*
* A representation of the model object 'Operation'.
*
*
*
*
The super class of
*
* - {@link StandardOperation}
* - {@link PortOperation}
*
*
*
*
*
* The following features are supported:
*
*
* - {@link org.eclipse.etrice.core.room.Operation#getName Name}
* - {@link org.eclipse.etrice.core.room.Operation#getArguments Arguments}
* - {@link org.eclipse.etrice.core.room.Operation#getReturnType Return Type}
* - {@link org.eclipse.etrice.core.room.Operation#getDocu Docu}
* - {@link org.eclipse.etrice.core.room.Operation#getDetailCode Detail Code}
*
*
* @see org.eclipse.etrice.core.room.RoomPackage#getOperation()
* @model
* @generated
*/
public interface Operation extends RoomElement
{
/**
* Returns the value of the 'Name' attribute.
*
*
*
*
The name of the operation by which it is referred to in the model.
*
*
* @return the value of the 'Name' attribute.
* @see #setName(String)
* @see org.eclipse.etrice.core.room.RoomPackage#getOperation_Name()
* @model
* @generated
*/
String getName();
/**
* Sets the value of the '{@link org.eclipse.etrice.core.room.Operation#getName Name}' attribute.
*
*
* @param value the new value of the 'Name' attribute.
* @see #getName()
* @generated
*/
void setName(String value);
/**
* Returns the value of the 'Arguments' containment reference list.
* The list contents are of type {@link org.eclipse.etrice.core.room.VarDecl}.
*
*
*
*
This is a list of arguments for the operation.
*
*
* @return the value of the 'Arguments' containment reference list.
* @see org.eclipse.etrice.core.room.RoomPackage#getOperation_Arguments()
* @model containment="true"
* @generated
*/
EList getArguments();
/**
* Returns the value of the 'Return Type' containment reference.
*
*
*
*
This is an optional return type of the operation.
*
*
* @return the value of the 'Return Type' containment reference.
* @see #setReturnType(RefableType)
* @see org.eclipse.etrice.core.room.RoomPackage#getOperation_ReturnType()
* @model containment="true"
* @generated
*/
RefableType getReturnType();
/**
* Sets the value of the '{@link org.eclipse.etrice.core.room.Operation#getReturnType Return Type}' containment reference.
*
*
* @param value the new value of the 'Return Type' containment reference.
* @see #getReturnType()
* @generated
*/
void setReturnType(RefableType value);
/**
* Returns the value of the 'Docu' containment reference.
*
*
*
*
This is an optional documentation.
*
*
* @return the value of the 'Docu' containment reference.
* @see #setDocu(Documentation)
* @see org.eclipse.etrice.core.room.RoomPackage#getOperation_Docu()
* @model containment="true"
* @generated
*/
Documentation getDocu();
/**
* Sets the value of the '{@link org.eclipse.etrice.core.room.Operation#getDocu Docu}' containment reference.
*
*
* @param value the new value of the 'Docu' containment reference.
* @see #getDocu()
* @generated
*/
void setDocu(Documentation value);
/**
* Returns the value of the 'Detail Code' containment reference.
*
*
*
*
This is the operation body written in code generator target language.
*
*
* @return the value of the 'Detail Code' containment reference.
* @see #setDetailCode(DetailCode)
* @see org.eclipse.etrice.core.room.RoomPackage#getOperation_DetailCode()
* @model containment="true"
* @generated
*/
DetailCode getDetailCode();
/**
* Sets the value of the '{@link org.eclipse.etrice.core.room.Operation#getDetailCode Detail Code}' containment reference.
*
*
* @param value the new value of the 'Detail Code' containment reference.
* @see #getDetailCode()
* @generated
*/
void setDetailCode(DetailCode value);
} // Operation