EMlab-generation Documentation  1.0
Documentation of the EMLab-Generation model.
EnergyProducer.java
1 /*******************************************************************************
2  * Copyright 2012 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  ******************************************************************************/
16 package emlab.gen.domain.agent;
17 
18 import org.neo4j.graphdb.Direction;
19 import org.springframework.data.neo4j.annotation.NodeEntity;
20 import org.springframework.data.neo4j.annotation.RelatedTo;
21 
22 import agentspring.agent.Agent;
23 import agentspring.simulation.SimulationParameter;
25 import emlab.gen.role.investment.GenericInvestmentRole;
26 
27 @NodeEntity
28 public class EnergyProducer extends DecarbonizationAgent implements Agent {
29 
30  @RelatedTo(type = "PRODUCER_INVESTMENTROLE", elementClass = GenericInvestmentRole.class, direction = Direction.OUTGOING)
31  GenericInvestmentRole<EnergyProducer> investmentRole;
32 
33  @RelatedTo(type = "INVESTOR_MARKET", elementClass = ElectricitySpotMarket.class, direction = Direction.OUTGOING)
34  private ElectricitySpotMarket investorMarket;
35 
36  @SimulationParameter(label = "Price Mark-Up for spotmarket (as multiplier)", from = 1, to = 2)
37  private double priceMarkUp;
38 
39  @SimulationParameter(label = "Long-term contract margin", from = 0, to = 1)
40  private double longTermContractMargin;
41 
42  @SimulationParameter(label = "Long-term contract horizon", from = 0, to = 10)
43  private double longTermContractPastTimeHorizon;
44 
45  //Investment
46  @SimulationParameter(label = "Investment horizon", from = 0, to = 15)
47  private int investmentFutureTimeHorizon;
48  @SimulationParameter(label = "Equity Interest Rate", from = 0, to = 1)
49  private double equityInterestRate;
50  private double downpaymentFractionOfCash;
51  @SimulationParameter(label = "Debt ratio in investments", from = 0, to = 1)
52  private double debtRatioOfInvestments;
53  private boolean willingToInvest;
54 
55  // Loan
56  @SimulationParameter(label = "Loan Interest Rate", from = 0, to = 1)
57  private double loanInterestRate;
58 
59  //Forecasting
60  private int numberOfYearsBacklookingForForecasting;
61 
62  // Dismantling
63  private int dismantlingProlongingYearsAfterTechnicalLifetime;
64  private double dismantlingRequiredOperatingProfit;
65  private long pastTimeHorizon;
66 
67  public boolean isWillingToInvest() {
68  return willingToInvest;
69  }
70 
71  public void setWillingToInvest(boolean willingToInvest) {
72  this.willingToInvest = willingToInvest;
73  }
74 
75  public double getDownpaymentFractionOfCash() {
76  return downpaymentFractionOfCash;
77  }
78 
79  public void setDownpaymentFractionOfCash(double downpaymentFractionOfCash) {
80  this.downpaymentFractionOfCash = downpaymentFractionOfCash;
81  }
82 
83  public double getLoanInterestRate() {
84  return loanInterestRate;
85  }
86 
87  public void setLoanInterestRate(double loanInterestRate) {
88  this.loanInterestRate = loanInterestRate;
89  }
90 
91  public long getPastTimeHorizon() {
92  return pastTimeHorizon;
93  }
94 
95  public void setPastTimeHorizon(long pastTimeHorizon) {
96  this.pastTimeHorizon = pastTimeHorizon;
97  }
98 
99  public int getNumberOfYearsBacklookingForForecasting() {
100  return numberOfYearsBacklookingForForecasting;
101  }
102 
103  public void setNumberOfYearsBacklookingForForecasting(int numberOfYearsBacklookingForForecasting) {
104  this.numberOfYearsBacklookingForForecasting = numberOfYearsBacklookingForForecasting;
105  }
106 
107  public int getDismantlingProlongingYearsAfterTechnicalLifetime() {
108  return dismantlingProlongingYearsAfterTechnicalLifetime;
109  }
110 
111  public void setDismantlingProlongingYearsAfterTechnicalLifetime(int dismantlingProlongingYearsAfterTechnicalLifetime) {
112  this.dismantlingProlongingYearsAfterTechnicalLifetime = dismantlingProlongingYearsAfterTechnicalLifetime;
113  }
114 
115  public double getDismantlingRequiredOperatingProfit() {
116  return dismantlingRequiredOperatingProfit;
117  }
118 
119  public void setDismantlingRequiredOperatingProfit(double dismantlingRequiredOperatingProfit) {
120  this.dismantlingRequiredOperatingProfit = dismantlingRequiredOperatingProfit;
121  }
122 
123  public int getInvestmentFutureTimeHorizon() {
124  return investmentFutureTimeHorizon;
125  }
126 
127  public void setInvestmentFutureTimeHorizon(int investmentFutureTimeHorizon) {
128  this.investmentFutureTimeHorizon = investmentFutureTimeHorizon;
129  }
130 
131  public double getEquityInterestRate() {
132  return equityInterestRate;
133  }
134 
135  public void setEquityInterestRate(double investmentDiscountRate) {
136  this.equityInterestRate = investmentDiscountRate;
137  }
138 
139  public double getLongTermContractMargin() {
140  return longTermContractMargin;
141  }
142 
143  public void setLongTermContractMargin(double longTermContractMargin) {
144  this.longTermContractMargin = longTermContractMargin;
145  }
146 
147  public double getLongTermContractPastTimeHorizon() {
148  return longTermContractPastTimeHorizon;
149  }
150 
151  public void setLongTermContractPastTimeHorizon(double longTermContractPastTimeHorizon) {
152  this.longTermContractPastTimeHorizon = longTermContractPastTimeHorizon;
153  }
154 
155  public double getDebtRatioOfInvestments() {
156  return debtRatioOfInvestments;
157  }
158 
159  public void setDebtRatioOfInvestments(double debtRatioOfInvestments) {
160  this.debtRatioOfInvestments = debtRatioOfInvestments;
161  }
162 
163  public double getPriceMarkUp() {
164  return priceMarkUp;
165  }
166 
167  public void setPriceMarkUp(double priceMarkUp) {
168  this.priceMarkUp = priceMarkUp;
169  }
170 
171  public GenericInvestmentRole getInvestmentRole() {
172  return investmentRole;
173  }
174 
175  public void setInvestmentRole(GenericInvestmentRole investmentRole) {
176  this.investmentRole = investmentRole;
177  }
178 
179  public ElectricitySpotMarket getInvestorMarket() {
180  return investorMarket;
181  }
182 
183  public void setInvestorMarket(ElectricitySpotMarket investorMarket) {
184  this.investorMarket = investorMarket;
185  }
186 }