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

import de.hftstuttgart.units.NullableQuantity;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Chemical Energy Device</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * </p>
 * <ul>
 *   <li>{@link de.hftstuttgart.energycomponents.ChemicalEnergyDevice#getInstalledThermalPower <em>Installed Thermal Power</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.ChemicalEnergyDevice#getUsesFuel <em>Uses Fuel</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.ChemicalEnergyDevice#getModulationRange <em>Modulation Range</em>}</li>
 * </ul>
 *
 * @see de.hftstuttgart.energycomponents.EnCompPackage#getChemicalEnergyDevice()
 * @model abstract="true"
 * @generated
 */
public interface ChemicalEnergyDevice 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#getChemicalEnergyDevice_InstalledThermalPower()
	 * @model default="kW" dataType="de.hftstuttgart.energycomponents.QuantityDouble" required="true"
	 * @generated
	 */
	NullableQuantity getInstalledThermalPower();

	/**
	 * Sets the value of the '{@link de.hftstuttgart.energycomponents.ChemicalEnergyDevice#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>Uses Fuel</b></em>' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Uses Fuel</em>' reference.
	 * @see #setUsesFuel(Fuel)
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getChemicalEnergyDevice_UsesFuel()
	 * @model
	 * @generated
	 */
	Fuel getUsesFuel();

	/**
	 * Sets the value of the '{@link de.hftstuttgart.energycomponents.ChemicalEnergyDevice#getUsesFuel <em>Uses Fuel</em>}' reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Uses Fuel</em>' reference.
	 * @see #getUsesFuel()
	 * @generated
	 */
	void setUsesFuel(Fuel 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#getChemicalEnergyDevice_ModulationRange()
	 * @model default="0.5"
	 * @generated
	 */
	double getModulationRange();

	/**
	 * Sets the value of the '{@link de.hftstuttgart.energycomponents.ChemicalEnergyDevice#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);

} // ChemicalEnergyDevice