Class HourlyCharge

All Implemented Interfaces:
Comparable<HourlyCharge>

@Domain(fields={"rateId","value","atTime"})
public class HourlyCharge
extends XStreamStateLoggable
implements Comparable<HourlyCharge>
Represents the cost of power during a specific timeslot in a variable Rate. The value slot represents the charge/kWh; atTime is the Instant at the start of the relevant timeslot. Therefore, the charge is in effect from atTime until atTime + 1 hour. These are created by brokers and sent to the server to update tariff pricing. State log fields for readResolve():
new(long rateId, double value, Instant atTime)
Author:
jcollins
  • Field Details

    • atTime

      protected org.joda.time.Instant atTime
  • Constructor Details

    • HourlyCharge

      public HourlyCharge​(org.joda.time.Instant when, double charge)
      Creates a new HourlyCharge to communicate rate information to customers. The when parameter specifies when this charge takes effect. The specified charge/kWh applies until the next HourlyCharge takes effect on the same Rate. Note that the numbers are interpreted from the viewpoint of the Customer, so if the customer is expected to pay the broker, the value should be negative (a debit).
    • HourlyCharge

      protected HourlyCharge()
  • Method Details

    • getId

      public long getId()
    • setRateId

      @StateChange public void setRateId​(long rateId)
      Sets connection between rate and hourly charge. An instance with the default rateId is not considered complete. This method is intended to be called from Rate when the instance is added to the rate.
    • getRateId

      public long getRateId()
    • getValue

      public double getValue()
    • getAtTime

      public org.joda.time.Instant getAtTime()
    • compareTo

      public int compareTo​(HourlyCharge obj)
      Specified by:
      compareTo in interface Comparable<HourlyCharge>