org.powertac.common
Class TariffSpecification

java.lang.Object
  extended by org.powertac.common.TariffMessage
      extended by org.powertac.common.TariffSpecification

public class TariffSpecification
extends TariffMessage

Represents a Tariff offered by a Broker to customers. A Tariff specifies prices for energy in various circumstances, along with upfront and periodic payments and basic constraints. This class is a value type -- a serializable, immutable data structure. You need to initialize a Tariff from it to make serious use of it. New tariffs and their Rates are communicated to Customers and to Brokers when tariffs are published.

TariffSpecifications and their associated Rates and HourlyCharges are specified from the Customer's viewpoint in terms of quantities and charges. In other words, a positive charge means the broker pays the customer, while a positive energy quantity means the broker sends energy to the customer.

Note: Must be serialized "deep" to gather up the Rates and associated HourlyCharge instances.

Author:
John Collins

Field Summary
 
Fields inherited from class org.powertac.common.TariffMessage
broker, id
 
Constructor Summary
TariffSpecification(Broker broker, PowerType powerType)
          Creates a new TariffSpecification for a broker and a specific powerType.
 
Method Summary
 TariffSpecification addRate(Rate rate)
          Adds a new Rate to this tariff.
 TariffSpecification addSupersedes(long specId)
          Indicates that this tariff supersedes the tariff specified by the specId, the id of the superseded tariff.
 Broker getBroker()
           
 double getEarlyWithdrawPayment()
           
 org.joda.time.Instant getExpiration()
           
 long getId()
           
 long getMinDuration()
           
 double getPeriodicPayment()
           
 PowerType getPowerType()
           
 List<Rate> getRates()
           
 double getSignupPayment()
           
 List<Long> getSupersedes()
           
 String toString()
          Returns a String giving the id, broker username, and powertype
 TariffSpecification withEarlyWithdrawPayment(double earlyWithdrawPayment)
          Sets the payment for a customer who withdraws from a subscription to this tariff before the minimumDuration has expired.
 TariffSpecification withExpiration(org.joda.time.Instant expiration)
          Sets the expiration date for this tariff.
 TariffSpecification withMinDuration(long minDuration)
          Sets the minimum duration of a subscription for this tariff.
 TariffSpecification withPeriodicPayment(double periodicPayment)
          Sets the daily payment per customer for subscriptions to this tariff.
 TariffSpecification withSignupPayment(double signupPayment)
          Sets the signup payment for new subscriptions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TariffSpecification

public TariffSpecification(Broker broker,
                           PowerType powerType)
Creates a new TariffSpecification for a broker and a specific powerType. Attributes are provided by the fluent withX() methods.

Method Detail

getPowerType

public PowerType getPowerType()

getExpiration

public org.joda.time.Instant getExpiration()

withExpiration

public TariffSpecification withExpiration(org.joda.time.Instant expiration)
Sets the expiration date for this tariff. After this date, customers will no longer be allowed to subscribe.


getMinDuration

public long getMinDuration()

withMinDuration

public TariffSpecification withMinDuration(long minDuration)
Sets the minimum duration of a subscription for this tariff. If a customer wishes to withdraw earlier than the minimum duration, it may be required to pay a fee as specified by the withdrawPayment.


getSignupPayment

public double getSignupPayment()

withSignupPayment

public TariffSpecification withSignupPayment(double signupPayment)
Sets the signup payment for new subscriptions. This is a positive number if the broker pays the customer.


getEarlyWithdrawPayment

public double getEarlyWithdrawPayment()

withEarlyWithdrawPayment

public TariffSpecification withEarlyWithdrawPayment(double earlyWithdrawPayment)
Sets the payment for a customer who withdraws from a subscription to this tariff before the minimumDuration has expired. A negative number indicates that the customer pays the broker.


getPeriodicPayment

public double getPeriodicPayment()

withPeriodicPayment

public TariffSpecification withPeriodicPayment(double periodicPayment)
Sets the daily payment per customer for subscriptions to this tariff. A negative number indicates that the customer pays the broker.


getId

public long getId()
Overrides:
getId in class TariffMessage

getBroker

public Broker getBroker()
Overrides:
getBroker in class TariffMessage

getRates

public List<Rate> getRates()

addRate

public TariffSpecification addRate(Rate rate)
Adds a new Rate to this tariff.


getSupersedes

public List<Long> getSupersedes()

addSupersedes

public TariffSpecification addSupersedes(long specId)
Indicates that this tariff supersedes the tariff specified by the specId, the id of the superseded tariff. Setting this value has no effect unless the superseded tariff is revoked by sending a TariffRevoke message for that tariff.


toString

public String toString()
Returns a String giving the id, broker username, and powertype

Overrides:
toString in class Object


Copyright © 2011. All Rights Reserved.