/**
 * Copyright (c) 2011, 2017 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany)
 *  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 
 * 
 *  Based on ideas from Xtext, Xtend, Xcore
 *   
 *  Contributors:  
 *  		Christophe Loetz (Loetz GmbH&Co.KG) - Initial implementation 
 *  
 */
package org.eclipse.osbp.xtext.statemachine;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Statemachine Action Peripheral PT Close</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.eclipse.osbp.xtext.statemachine.StatemachineActionPeripheralPTClose#getDevice <em>Device</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.eclipse.osbp.xtext.statemachine.StatemachineDSLPackage#getStatemachineActionPeripheralPTClose()
 * @model
 * @generated
 */
public interface StatemachineActionPeripheralPTClose extends StatemachineAction {
	/**
	 * Returns the value of the '<em><b>Device</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Device</em>' reference isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Device</em>' reference.
	 * @see #setDevice(StatemachinePeripheralDevicePT)
	 * @see org.eclipse.osbp.xtext.statemachine.StatemachineDSLPackage#getStatemachineActionPeripheralPTClose_Device()
	 * @model
	 * @generated
	 */
	StatemachinePeripheralDevicePT getDevice();

	/**
	 * Sets the value of the '{@link org.eclipse.osbp.xtext.statemachine.StatemachineActionPeripheralPTClose#getDevice <em>Device</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Device</em>' reference.
	 * @see #getDevice()
	 * @generated
	 */
	void setDevice(StatemachinePeripheralDevicePT value);

} // StatemachineActionPeripheralPTClose
