/**
 */
package de.hftstuttgart.energycomponents;

import de.hftstuttgart.units.NullableQuantity;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Thermal Energy Device</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * </p>
 * <ul>
 *   <li>{@link de.hftstuttgart.energycomponents.ThermalEnergyDevice#getInstalledThermalPower <em>Installed Thermal Power</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.ThermalEnergyDevice#getModulationRange <em>Modulation Range</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.ThermalEnergyDevice#getFuel <em>Fuel</em>}</li>
 * </ul>
 *
 * @see de.hftstuttgart.energycomponents.EnCompPackage#getThermalEnergyDevice()
 * @model abstract="true"
 * @generated
 */
public interface ThermalEnergyDevice extends EnergyComponent {
	/**
	 * Returns the value of the '<em><b>Installed Thermal Power</b></em>' attribute.
	 * The default value is <code>"kW"</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * kW
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Installed Thermal Power</em>' attribute.
	 * @see #setInstalledThermalPower(NullableQuantity)
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getThermalEnergyDevice_InstalledThermalPower()
	 * @model default="kW" dataType="de.hftstuttgart.energycomponents.QuantityDouble" required="true"
	 * @generated
	 */
	NullableQuantity getInstalledThermalPower();

	/**
	 * Sets the value of the '{@link de.hftstuttgart.energycomponents.ThermalEnergyDevice#getInstalledThermalPower <em>Installed Thermal Power</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Installed Thermal Power</em>' attribute.
	 * @see #getInstalledThermalPower()
	 * @generated
	 */
	void setInstalledThermalPower(NullableQuantity value);

	/**
	 * Returns the value of the '<em><b>Modulation Range</b></em>' attribute.
	 * The default value is <code>"0.5"</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * share
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Modulation Range</em>' attribute.
	 * @see #setModulationRange(double)
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getThermalEnergyDevice_ModulationRange()
	 * @model default="0.5"
	 * @generated
	 */
	double getModulationRange();

	/**
	 * Sets the value of the '{@link de.hftstuttgart.energycomponents.ThermalEnergyDevice#getModulationRange <em>Modulation Range</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Modulation Range</em>' attribute.
	 * @see #getModulationRange()
	 * @generated
	 */
	void setModulationRange(double value);

	/**
	 * Returns the value of the '<em><b>Fuel</b></em>' attribute.
	 * The literals are from the enumeration {@link de.hftstuttgart.energycomponents.FuelTypes}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Fuel</em>' attribute.
	 * @see de.hftstuttgart.energycomponents.FuelTypes
	 * @see #setFuel(FuelTypes)
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getThermalEnergyDevice_Fuel()
	 * @model required="true"
	 * @generated
	 */
	FuelTypes getFuel();

	/**
	 * Sets the value of the '{@link de.hftstuttgart.energycomponents.ThermalEnergyDevice#getFuel <em>Fuel</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Fuel</em>' attribute.
	 * @see de.hftstuttgart.energycomponents.FuelTypes
	 * @see #getFuel()
	 * @generated
	 */
	void setFuel(FuelTypes value);

} // ThermalEnergyDevice