/*******************************************************************************
* Copyright 2012 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
******************************************************************************/
package emlab.domain.agent;
import org.springframework.data.neo4j.annotation.NodeEntity;
import agentspring.agent.Agent;
import agentspring.simulation.SimulationParameter;
@NodeEntity
public class EnergyProducer extends DecarbonizationAgent implements Agent {
@SimulationParameter(label = "Price Mark-Up for spotmarket (as multiplier)", from = 1, to = 2)
private double priceMarkUp;
@SimulationParameter(label = "Long-term contract margin", from = 0, to = 1)
private double longTermContractMargin;
@SimulationParameter(label = "Long-term contract horizon", from = 0, to = 10)
private double longTermContractPastTimeHorizon;
@SimulationParameter(label = "Investment horizon", from = 0, to = 15)
private int investmentFutureTimeHorizon;
@SimulationParameter(label = "Equity Interest Rate", from = 0, to = 1)
private double equityInterestRate;
private double downpaymentFractionOfCash;
@SimulationParameter(label = "Debt ratio in investments", from = 0, to = 1)
private double debtRatioOfInvestments;
private boolean willingToInvest;
// Loan
@SimulationParameter(label = "Loan Interest Rate", from = 0, to = 1)
private double loanInterestRate;
// Dismantling
private int dismantlingProlongingYearsAfterTechnicalLifetime;
private double dismantlingRequiredOperatingProfit;
private long pastTimeHorizon;
public boolean isWillingToInvest() {
return willingToInvest;
}
public void setWillingToInvest(boolean willingToInvest) {
this.willingToInvest = willingToInvest;
}
public double getDownpaymentFractionOfCash() {
return downpaymentFractionOfCash;
}
public void setDownpaymentFractionOfCash(double downpaymentFractionOfCash) {
this.downpaymentFractionOfCash = downpaymentFractionOfCash;
}
public double getLoanInterestRate() {
return loanInterestRate;
}
public void setLoanInterestRate(double loanInterestRate) {
this.loanInterestRate = loanInterestRate;
}
public long getPastTimeHorizon() {
return pastTimeHorizon;
}
public void setPastTimeHorizon(long pastTimeHorizon) {
this.pastTimeHorizon = pastTimeHorizon;
}
public int getDismantlingProlongingYearsAfterTechnicalLifetime() {
return dismantlingProlongingYearsAfterTechnicalLifetime;
}
public void setDismantlingProlongingYearsAfterTechnicalLifetime(int dismantlingProlongingYearsAfterTechnicalLifetime) {
this.dismantlingProlongingYearsAfterTechnicalLifetime = dismantlingProlongingYearsAfterTechnicalLifetime;
}
public double getDismantlingRequiredOperatingProfit() {
return dismantlingRequiredOperatingProfit;
}
public void setDismantlingRequiredOperatingProfit(double dismantlingRequiredOperatingProfit) {
this.dismantlingRequiredOperatingProfit = dismantlingRequiredOperatingProfit;
}
public int getInvestmentFutureTimeHorizon() {
return investmentFutureTimeHorizon;
}
public void setInvestmentFutureTimeHorizon(int investmentFutureTimeHorizon) {
this.investmentFutureTimeHorizon = investmentFutureTimeHorizon;
}
public double getEquityInterestRate() {
return equityInterestRate;
}
public void setEquityInterestRate(double investmentDiscountRate) {
this.equityInterestRate = investmentDiscountRate;
}
public double getLongTermContractMargin() {
return longTermContractMargin;
}
public void setLongTermContractMargin(double longTermContractMargin) {
this.longTermContractMargin = longTermContractMargin;
}
public double getLongTermContractPastTimeHorizon() {
return longTermContractPastTimeHorizon;
}
public void setLongTermContractPastTimeHorizon(double longTermContractPastTimeHorizon) {
this.longTermContractPastTimeHorizon = longTermContractPastTimeHorizon;
}
public double getDebtRatioOfInvestments() {
return debtRatioOfInvestments;
}
public void setDebtRatioOfInvestments(double debtRatioOfInvestments) {
this.debtRatioOfInvestments = debtRatioOfInvestments;
}
public double getPriceMarkUp() {
return priceMarkUp;
}
public void setPriceMarkUp(double priceMarkUp) {
this.priceMarkUp = priceMarkUp;
}
}