16 package emlab.gen.domain.agent;
18 import org.neo4j.graphdb.Direction;
19 import org.springframework.data.neo4j.annotation.NodeEntity;
20 import org.springframework.data.neo4j.annotation.RelatedTo;
22 import agentspring.agent.Agent;
23 import agentspring.simulation.SimulationParameter;
25 import emlab.gen.role.investment.GenericInvestmentRole;
30 @RelatedTo(type =
"PRODUCER_INVESTMENTROLE", elementClass = GenericInvestmentRole.class, direction = Direction.OUTGOING)
31 GenericInvestmentRole<EnergyProducer> investmentRole;
33 @RelatedTo(type =
"INVESTOR_MARKET", elementClass =
ElectricitySpotMarket.class, direction = Direction.OUTGOING)
36 @SimulationParameter(label =
"Price Mark-Up for spotmarket (as multiplier)", from = 1, to = 2)
37 private double priceMarkUp;
39 @SimulationParameter(label =
"Long-term contract margin", from = 0, to = 1)
40 private double longTermContractMargin;
42 @SimulationParameter(label =
"Long-term contract horizon", from = 0, to = 10)
43 private double longTermContractPastTimeHorizon;
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;
56 @SimulationParameter(label =
"Loan Interest Rate", from = 0, to = 1)
57 private double loanInterestRate;
60 private int numberOfYearsBacklookingForForecasting;
63 private int dismantlingProlongingYearsAfterTechnicalLifetime;
64 private double dismantlingRequiredOperatingProfit;
65 private long pastTimeHorizon;
67 public boolean isWillingToInvest() {
68 return willingToInvest;
71 public void setWillingToInvest(
boolean willingToInvest) {
72 this.willingToInvest = willingToInvest;
75 public double getDownpaymentFractionOfCash() {
76 return downpaymentFractionOfCash;
79 public void setDownpaymentFractionOfCash(
double downpaymentFractionOfCash) {
80 this.downpaymentFractionOfCash = downpaymentFractionOfCash;
83 public double getLoanInterestRate() {
84 return loanInterestRate;
87 public void setLoanInterestRate(
double loanInterestRate) {
88 this.loanInterestRate = loanInterestRate;
91 public long getPastTimeHorizon() {
92 return pastTimeHorizon;
95 public void setPastTimeHorizon(
long pastTimeHorizon) {
96 this.pastTimeHorizon = pastTimeHorizon;
99 public int getNumberOfYearsBacklookingForForecasting() {
100 return numberOfYearsBacklookingForForecasting;
103 public void setNumberOfYearsBacklookingForForecasting(
int numberOfYearsBacklookingForForecasting) {
104 this.numberOfYearsBacklookingForForecasting = numberOfYearsBacklookingForForecasting;
107 public int getDismantlingProlongingYearsAfterTechnicalLifetime() {
108 return dismantlingProlongingYearsAfterTechnicalLifetime;
111 public void setDismantlingProlongingYearsAfterTechnicalLifetime(
int dismantlingProlongingYearsAfterTechnicalLifetime) {
112 this.dismantlingProlongingYearsAfterTechnicalLifetime = dismantlingProlongingYearsAfterTechnicalLifetime;
115 public double getDismantlingRequiredOperatingProfit() {
116 return dismantlingRequiredOperatingProfit;
119 public void setDismantlingRequiredOperatingProfit(
double dismantlingRequiredOperatingProfit) {
120 this.dismantlingRequiredOperatingProfit = dismantlingRequiredOperatingProfit;
123 public int getInvestmentFutureTimeHorizon() {
124 return investmentFutureTimeHorizon;
127 public void setInvestmentFutureTimeHorizon(
int investmentFutureTimeHorizon) {
128 this.investmentFutureTimeHorizon = investmentFutureTimeHorizon;
131 public double getEquityInterestRate() {
132 return equityInterestRate;
135 public void setEquityInterestRate(
double investmentDiscountRate) {
136 this.equityInterestRate = investmentDiscountRate;
139 public double getLongTermContractMargin() {
140 return longTermContractMargin;
143 public void setLongTermContractMargin(
double longTermContractMargin) {
144 this.longTermContractMargin = longTermContractMargin;
147 public double getLongTermContractPastTimeHorizon() {
148 return longTermContractPastTimeHorizon;
151 public void setLongTermContractPastTimeHorizon(
double longTermContractPastTimeHorizon) {
152 this.longTermContractPastTimeHorizon = longTermContractPastTimeHorizon;
155 public double getDebtRatioOfInvestments() {
156 return debtRatioOfInvestments;
159 public void setDebtRatioOfInvestments(
double debtRatioOfInvestments) {
160 this.debtRatioOfInvestments = debtRatioOfInvestments;
163 public double getPriceMarkUp() {
167 public void setPriceMarkUp(
double priceMarkUp) {
168 this.priceMarkUp = priceMarkUp;
171 public GenericInvestmentRole getInvestmentRole() {
172 return investmentRole;
175 public void setInvestmentRole(GenericInvestmentRole investmentRole) {
176 this.investmentRole = investmentRole;
180 return investorMarket;
184 this.investorMarket = investorMarket;