/**
* Copyright (c) 2014-2016 IncQuery Labs Ltd.
* 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:
* Akos Horvath, Abel Hegedus, Tamas Borbas, Zoltan Ujhelyi, Istvan David - initial API and implementation
*/
package org.eclipse.viatra.examples.cps.cyberPhysicalSystem;
/**
* <!-- begin-user-doc -->
* A representation of the model object '<em><b>Transition</b></em>'.
* <!-- end-user-doc -->
*
* <p>
* The following features are supported:
* </p>
* <ul>
* <li>{@link org.eclipse.viatra.examples.cps.cyberPhysicalSystem.Transition#getTargetState <em>Target State</em>}</li>
* <li>{@link org.eclipse.viatra.examples.cps.cyberPhysicalSystem.Transition#getAction <em>Action</em>}</li>
* </ul>
*
* @see org.eclipse.viatra.examples.cps.cyberPhysicalSystem.CyberPhysicalSystemPackage#getTransition()
* @model
* @generated
*/
public interface Transition extends Identifiable {
/**
* Returns the value of the '<em><b>Target State</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Target State</em>' reference isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Target State</em>' reference.
* @see #setTargetState(State)
* @see org.eclipse.viatra.examples.cps.cyberPhysicalSystem.CyberPhysicalSystemPackage#getTransition_TargetState()
* @model
* @generated
*/
State getTargetState();
/**
* Sets the value of the '{@link org.eclipse.viatra.examples.cps.cyberPhysicalSystem.Transition#getTargetState <em>Target State</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Target State</em>' reference.
* @see #getTargetState()
* @generated
*/
void setTargetState(State value);
/**
* Returns the value of the '<em><b>Action</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* <!-- begin-model-doc -->
* The action may specify either waiting for a signal with a given ID or sending a signal with a given ID to another application with a given type ID.
* - Use waitForSignal(signal) to specify waiting for signal
* - Use sendSignal(app, signal) to specify sending a signal to an app
*
* Restrictions:
* - Only one action is allowed in a transition
* - There can be only a single application instance for the given application type ID on host instances that the host on which the sending application instance is allocated to can communicate with.
* <!-- end-model-doc -->
* @return the value of the '<em>Action</em>' attribute.
* @see #setAction(String)
* @see org.eclipse.viatra.examples.cps.cyberPhysicalSystem.CyberPhysicalSystemPackage#getTransition_Action()
* @model
* @generated
*/
String getAction();
/**
* Sets the value of the '{@link org.eclipse.viatra.examples.cps.cyberPhysicalSystem.Transition#getAction <em>Action</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Action</em>' attribute.
* @see #getAction()
* @generated
*/
void setAction(String value);
} // Transition