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

import org.eclipse.emf.common.util.EList;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Energy Components Catalog</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * </p>
 * <ul>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getAuthor <em>Author</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getBioFuels <em>Bio Fuels</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getMedia <em>Media</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getCombinedHeatPowerUtilities <em>Combined Heat Power Utilities</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getBoilers <em>Boilers</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getPhotovoltaicModules <em>Photovoltaic Modules</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getSolarThermalCollectors <em>Solar Thermal Collectors</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getWindTurbines <em>Wind Turbines</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getGeothermalHeatExchangers <em>Geothermal Heat Exchangers</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getHeatPumps <em>Heat Pumps</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getInverters <em>Inverters</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getHeatExchangers <em>Heat Exchangers</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getElectrolyzers <em>Electrolyzers</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getHydrogenCompressors <em>Hydrogen Compressors</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getFuelCells <em>Fuel Cells</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getThermalStorages <em>Thermal Storages</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getPowerStorages <em>Power Storages</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getHydrogenStorages <em>Hydrogen Storages</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getFossilFuels <em>Fossil Fuels</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getManufacturers <em>Manufacturers</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getMaterials <em>Materials</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getEnergycomponentscostcatalog <em>Energycomponentscostcatalog</em>}</li>
 *   <li>{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getEnergycarriers <em>Energycarriers</em>}</li>
 * </ul>
 *
 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog()
 * @model
 * @generated
 */
public interface EnergyComponentsCatalog extends EObject {
	/**
	 * Returns the value of the '<em><b>Author</b></em>' attribute.
	 * The default value is <code>"HFT_Stuttgart"</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Author</em>' attribute.
	 * @see #setAuthor(String)
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_Author()
	 * @model default="HFT_Stuttgart"
	 * @generated
	 */
	String getAuthor();

	/**
	 * Sets the value of the '{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getAuthor <em>Author</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Author</em>' attribute.
	 * @see #getAuthor()
	 * @generated
	 */
	void setAuthor(String value);

	/**
	 * Returns the value of the '<em><b>Bio Fuels</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.BioFuel}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Bio Fuels</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_BioFuels()
	 * @model containment="true"
	 * @generated
	 */
	EList<BioFuel> getBioFuels();

	/**
	 * Returns the value of the '<em><b>Media</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.Medium}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Media</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_Media()
	 * @model containment="true"
	 * @generated
	 */
	EList<Medium> getMedia();

	/**
	 * Returns the value of the '<em><b>Combined Heat Power Utilities</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.CombinedHeatPower}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Combined Heat Power Utilities</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_CombinedHeatPowerUtilities()
	 * @model containment="true"
	 * @generated
	 */
	EList<CombinedHeatPower> getCombinedHeatPowerUtilities();

	/**
	 * Returns the value of the '<em><b>Boilers</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.Boiler}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Boilers</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_Boilers()
	 * @model containment="true"
	 * @generated
	 */
	EList<Boiler> getBoilers();

	/**
	 * Returns the value of the '<em><b>Photovoltaic Modules</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.PhotovoltaicModule}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Photovoltaic Modules</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_PhotovoltaicModules()
	 * @model containment="true"
	 * @generated
	 */
	EList<PhotovoltaicModule> getPhotovoltaicModules();

	/**
	 * Returns the value of the '<em><b>Solar Thermal Collectors</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.SolarThermalCollector}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Solar Thermal Collectors</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_SolarThermalCollectors()
	 * @model containment="true"
	 * @generated
	 */
	EList<SolarThermalCollector> getSolarThermalCollectors();

	/**
	 * Returns the value of the '<em><b>Wind Turbines</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.WindTurbine}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Wind Turbines</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_WindTurbines()
	 * @model containment="true"
	 * @generated
	 */
	EList<WindTurbine> getWindTurbines();

	/**
	 * Returns the value of the '<em><b>Geothermal Heat Exchangers</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.GeothermalHeatExchanger}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Geothermal Heat Exchangers</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_GeothermalHeatExchangers()
	 * @model containment="true"
	 * @generated
	 */
	EList<GeothermalHeatExchanger> getGeothermalHeatExchangers();

	/**
	 * Returns the value of the '<em><b>Heat Pumps</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.HeatPump}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Heat Pumps</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_HeatPumps()
	 * @model containment="true"
	 * @generated
	 */
	EList<HeatPump> getHeatPumps();

	/**
	 * Returns the value of the '<em><b>Inverters</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.Inverter}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Inverters</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_Inverters()
	 * @model containment="true"
	 * @generated
	 */
	EList<Inverter> getInverters();

	/**
	 * Returns the value of the '<em><b>Heat Exchangers</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.HeatExchanger}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Heat Exchangers</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_HeatExchangers()
	 * @model containment="true"
	 * @generated
	 */
	EList<HeatExchanger> getHeatExchangers();

	/**
	 * Returns the value of the '<em><b>Electrolyzers</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.Electrolyzer}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Electrolyzers</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_Electrolyzers()
	 * @model containment="true"
	 * @generated
	 */
	EList<Electrolyzer> getElectrolyzers();

	/**
	 * Returns the value of the '<em><b>Hydrogen Compressors</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.HydrogenCompressor}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Hydrogen Compressors</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_HydrogenCompressors()
	 * @model containment="true"
	 * @generated
	 */
	EList<HydrogenCompressor> getHydrogenCompressors();

	/**
	 * Returns the value of the '<em><b>Fuel Cells</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.FuelCell}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Fuel Cells</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_FuelCells()
	 * @model containment="true"
	 * @generated
	 */
	EList<FuelCell> getFuelCells();

	/**
	 * Returns the value of the '<em><b>Thermal Storages</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.ThermalStorage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Thermal Storages</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_ThermalStorages()
	 * @model containment="true"
	 * @generated
	 */
	EList<ThermalStorage> getThermalStorages();

	/**
	 * Returns the value of the '<em><b>Power Storages</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.ElectricalStorage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Power Storages</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_PowerStorages()
	 * @model containment="true"
	 * @generated
	 */
	EList<ElectricalStorage> getPowerStorages();

	/**
	 * Returns the value of the '<em><b>Hydrogen Storages</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.HydrogenStorage}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Hydrogen Storages</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_HydrogenStorages()
	 * @model containment="true"
	 * @generated
	 */
	EList<HydrogenStorage> getHydrogenStorages();

	/**
	 * Returns the value of the '<em><b>Fossil Fuels</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.FossilFuel}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Fossil Fuels</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_FossilFuels()
	 * @model containment="true"
	 * @generated
	 */
	EList<FossilFuel> getFossilFuels();

	/**
	 * Returns the value of the '<em><b>Manufacturers</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.Manufacturer}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Manufacturers</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_Manufacturers()
	 * @model containment="true"
	 * @generated
	 */
	EList<Manufacturer> getManufacturers();

	/**
	 * Returns the value of the '<em><b>Materials</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.Material}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Materials</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_Materials()
	 * @model containment="true"
	 * @generated
	 */
	EList<Material> getMaterials();

	/**
	 * Returns the value of the '<em><b>Energycomponentscostcatalog</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Energycomponentscostcatalog</em>' containment reference.
	 * @see #setEnergycomponentscostcatalog(EnergyComponentsCostCatalog)
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_Energycomponentscostcatalog()
	 * @model containment="true"
	 * @generated
	 */
	EnergyComponentsCostCatalog getEnergycomponentscostcatalog();

	/**
	 * Sets the value of the '{@link de.hftstuttgart.energycomponents.EnergyComponentsCatalog#getEnergycomponentscostcatalog <em>Energycomponentscostcatalog</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Energycomponentscostcatalog</em>' containment reference.
	 * @see #getEnergycomponentscostcatalog()
	 * @generated
	 */
	void setEnergycomponentscostcatalog(EnergyComponentsCostCatalog value);

	/**
	 * Returns the value of the '<em><b>Energycarriers</b></em>' containment reference list.
	 * The list contents are of type {@link de.hftstuttgart.energycomponents.EnergyCarrier}.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Energycarriers</em>' containment reference list.
	 * @see de.hftstuttgart.energycomponents.EnCompPackage#getEnergyComponentsCatalog_Energycarriers()
	 * @model containment="true"
	 * @generated
	 */
	EList<EnergyCarrier> getEnergycarriers();

} // EnergyComponentsCatalog