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

import de.hftstuttgart.units.NullableQuantity;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Fuel</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * </p>
 * <ul>
 *   <li>{@link de.hftstuttgart.energycomponents.Fuel#getNetCalorificValue <em>Net Calorific Value</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.Fuel#getGrossCalorificValue <em>Gross Calorific Value</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.Fuel#getDensity <em>Density</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.Fuel#getFuelType <em>Fuel Type</em>}</li>
 * </ul>
 *
 * @see de.hftstuttgart.energycomponents.EnCompPackage#getFuel()
 * @model abstract="true"
 * @generated
 */
public interface Fuel extends EnergyCarrier {
	/**
	 * Returns the value of the '<em><b>Net Calorific Value</b></em>' attribute.
	 * The default value is <code>"(kW*h)/m\u00b3"</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * kWh/m³
	 * Heizwert
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Net Calorific Value</em>' attribute.
	 * @see #setNetCalorificValue(NullableQuantity)
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getFuel_NetCalorificValue()
	 * @model default="(kW*h)/m\u00b3" dataType="de.hftstuttgart.energycomponents.QuantityDouble" required="true"
	 * @generated
	 */
	NullableQuantity getNetCalorificValue();

	/**
	 * Sets the value of the '{@link de.hftstuttgart.energycomponents.Fuel#getNetCalorificValue <em>Net Calorific Value</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Net Calorific Value</em>' attribute.
	 * @see #getNetCalorificValue()
	 * @generated
	 */
	void setNetCalorificValue(NullableQuantity value);

	/**
	 * Returns the value of the '<em><b>Gross Calorific Value</b></em>' attribute.
	 * The default value is <code>"(kW*h)/m\u00b3"</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * kWh/m³
	 * Brennwert
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Gross Calorific Value</em>' attribute.
	 * @see #setGrossCalorificValue(NullableQuantity)
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getFuel_GrossCalorificValue()
	 * @model default="(kW*h)/m\u00b3" dataType="de.hftstuttgart.energycomponents.QuantityDouble" required="true"
	 * @generated
	 */
	NullableQuantity getGrossCalorificValue();

	/**
	 * Sets the value of the '{@link de.hftstuttgart.energycomponents.Fuel#getGrossCalorificValue <em>Gross Calorific Value</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Gross Calorific Value</em>' attribute.
	 * @see #getGrossCalorificValue()
	 * @generated
	 */
	void setGrossCalorificValue(NullableQuantity value);

	/**
	 * Returns the value of the '<em><b>Density</b></em>' attribute.
	 * The default value is <code>"kg/m\u00b3"</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * kg/m³
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Density</em>' attribute.
	 * @see #setDensity(NullableQuantity)
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getFuel_Density()
	 * @model default="kg/m\u00b3" dataType="de.hftstuttgart.energycomponents.QuantityDouble" required="true"
	 * @generated
	 */
	NullableQuantity getDensity();

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

	/**
	 * Returns the value of the '<em><b>Fuel Type</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 Type</em>' attribute.
	 * @see de.hftstuttgart.energycomponents.FuelTypes
	 * @see #setFuelType(FuelTypes)
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getFuel_FuelType()
	 * @model required="true"
	 * @generated
	 */
	FuelTypes getFuelType();

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

} // Fuel