Package agents.conventionals
Class PlantBuildingManager
- java.lang.Object
-
- de.dlr.gitlab.fame.agent.Agent
-
- agents.conventionals.PlantBuildingManager
-
- All Implemented Interfaces:
de.dlr.gitlab.fame.agent.AgentAbility
- Direct Known Subclasses:
IndividualPlantBuilder
,PredefinedPlantBuilder
public abstract class PlantBuildingManager extends de.dlr.gitlab.fame.agent.Agent
Installs and tears down conventional power plants- Author:
- Christoph Schimeczek
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PlantBuildingManager.Products
Products ofPlantBuildingManager
s
-
Field Summary
Fields Modifier and Type Field Description protected Portfolio
portfolio
The set of power plants controlled by thisPlantBuildingManager
protected PowerPlantPrototype.PrototypeData
prototypeData
Prototype for all power plants in thePortfolio
of thisPlantBuildingManager
-
Constructor Summary
Constructors Constructor Description PlantBuildingManager(de.dlr.gitlab.fame.agent.input.DataProvider dataProvider)
Creates aPlantBuildingManager
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
updateAndSendPortfolio(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
Generates a newPortfolio
and sends it to a connected agentprotected abstract void
updatePortfolio(de.dlr.gitlab.fame.time.TimeStamp time, de.dlr.gitlab.fame.time.TimeSpan deliveryInterval)
Creates new plants and tears down old ones in order to match current and future plant specifications-
Methods inherited from class de.dlr.gitlab.fame.agent.Agent
addContract, call, closeChannel, executeActions, executeWarmUp, fulfilNext, fulfilNext, getId, getNextRandomNumberGenerator, getPostOffice, handleMessage, initialiseActions, now, openChannel, publish, receive, sendMessageTo, sendMessageTo, store, store, toString, warmUp
-
-
-
-
Field Detail
-
prototypeData
protected final PowerPlantPrototype.PrototypeData prototypeData
Prototype for all power plants in thePortfolio
of thisPlantBuildingManager
-
portfolio
protected final Portfolio portfolio
The set of power plants controlled by thisPlantBuildingManager
-
-
Constructor Detail
-
PlantBuildingManager
public PlantBuildingManager(de.dlr.gitlab.fame.agent.input.DataProvider dataProvider) throws de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
Creates aPlantBuildingManager
- Parameters:
dataProvider
- contains all input data from config- Throws:
de.dlr.gitlab.fame.agent.input.ParameterData.MissingDataException
- thrown if requested input is not provided
-
-
Method Detail
-
updateAndSendPortfolio
public void updateAndSendPortfolio(ArrayList<de.dlr.gitlab.fame.communication.message.Message> input, List<de.dlr.gitlab.fame.communication.Contract> contracts)
Generates a newPortfolio
and sends it to a connected agent- Parameters:
input
- not usedcontracts
- one contract to receiver of generated Portfolio - typically aConventionalPlantOperator
-
updatePortfolio
protected abstract void updatePortfolio(de.dlr.gitlab.fame.time.TimeStamp time, de.dlr.gitlab.fame.time.TimeSpan deliveryInterval)
Creates new plants and tears down old ones in order to match current and future plant specifications- Parameters:
time
- the target time when the generated portfolio shall become activedeliveryInterval
- duration for which the portfolio shall be active
-
-