/*******************************************************************************
* 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.neo4j.graphdb.Direction;
import org.springframework.data.neo4j.annotation.NodeEntity;
import org.springframework.data.neo4j.annotation.RelatedTo;
import agentspring.agent.Agent;
import emlab.trend.StepTrend;
@NodeEntity
public class Government extends DecarbonizationAgent implements Agent {
@RelatedTo(type = "CO2TAX_TREND", elementClass = StepTrend.class, direction = Direction.OUTGOING)
private StepTrend co2TaxTrend;
@RelatedTo(type = "CO2CAP_TREND", elementClass = StepTrend.class, direction = Direction.OUTGOING)
private StepTrend co2CapTrend;
@RelatedTo(type = "MINCO2PRICE_TREND", elementClass = StepTrend.class, direction = Direction.OUTGOING)
private StepTrend minCo2PriceTrend;
private double co2Penalty;
public double getCO2Tax(long time) {
return co2TaxTrend.getValue(time);
}
public double getMinCo2Price(long time) {
return minCo2PriceTrend.getValue(time);
}
public double getCo2Cap(long time) {
return co2CapTrend.getValue(time);
}
public StepTrend getCo2TaxTrend() {
return co2TaxTrend;
}
public void setCo2TaxTrend(StepTrend co2TaxTrend) {
this.co2TaxTrend = co2TaxTrend;
}
public StepTrend getCo2CapTrend() {
return co2CapTrend;
}
public void setCo2CapTrend(StepTrend co2CapTrend) {
this.co2CapTrend = co2CapTrend;
}
public StepTrend getMinCo2PriceTrend() {
return minCo2PriceTrend;
}
public void setMinCo2PriceTrend(StepTrend minCo2PriceTrend) {
this.minCo2PriceTrend = minCo2PriceTrend;
}
public double getCo2Penalty() {
return co2Penalty;
}
public void setCo2Penalty(double co2Penalty) {
this.co2Penalty = co2Penalty;
}
}