Class AbstractCustomer

java.lang.Object
org.powertac.customer.AbstractCustomer

public abstract class AbstractCustomer
extends Object
Abstract customer implementation
Author:
Antonios Chrysopoulos
  • Field Details

  • Constructor Details

    • AbstractCustomer

      public AbstractCustomer()
      Default constructor, requires explicit setting of name
    • AbstractCustomer

      public AbstractCustomer​(String name)
      Abstract Customer constructor with explicit name.
  • Method Details

    • setServiceAccessor

      public void setServiceAccessor​(CustomerServiceAccessor csa)
      Provides a reference to the service accessor, through which we can get at sim services
    • initialize

      public void initialize()
      Initializes the instance. Called after configuration, and after a call to setServices(). TODO -- do we really want this here?
    • saveBootstrapState

      public void saveBootstrapState()
      Saves model data to the bootstrap record. Default implementation does nothing; models may override if they aggregate objects that must save state.
    • addCustomerInfo

      public void addCustomerInfo​(org.powertac.common.CustomerInfo info)
      Adds an additional CustomerInfo to the list
    • getCustomerInfo

      public org.powertac.common.CustomerInfo getCustomerInfo​(org.powertac.common.enumerations.PowerType pt)
      Returns the first CustomerInfo associated with this instance and PowerType. It is up to individual models to fill out the fields.
    • getCustomerInfoList

      public List<org.powertac.common.CustomerInfo> getCustomerInfoList​(org.powertac.common.enumerations.PowerType pt)
      Returns the list of CustomerInfos associated with this instance and PowerType.
    • getCustomerInfos

      public List<org.powertac.common.CustomerInfo> getCustomerInfos()
      Returns the list of CustomerInfo records associated with this customer model.
    • getCurrentSubscriptions

      public List<TariffSubscription> getCurrentSubscriptions()
      Returns the current tariff subscriptions for the first CustomerInfo. Useful for customer models with a single CustomerInfo.
    • getCurrentSubscriptions

      public List<TariffSubscription> getCurrentSubscriptions​(org.powertac.common.enumerations.PowerType type)
      Returns the current tariff subscriptions for the first CustomerInfo with the given PowerType. Useful for customer models with a single CustomerInfo per PowerType.
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getPopulation

      public int getPopulation​(org.powertac.common.CustomerInfo customer)
    • getCustId

      public long getCustId()
    • getId

      public long getId()
      Synonym for getCustId()
    • setName

      public void setName​(String name)
      Sets the name for this model
    • getName

      public String getName()
      Returns the name of this model
    • step

      public abstract void step()
      Called to run the model forward one step.
    • createTariffEvaluator

      public TariffEvaluator createTariffEvaluator​(CustomerModelAccessor cma)
      Creates a TariffEvaluator, populated with a pre-configured TariffEvaluationHelper.
    • evaluateTariffs

      public abstract void evaluateTariffs​(List<org.powertac.common.Tariff> tariffs)
      Called to evaluate tariffs.
    • lastSunday

      protected org.joda.time.Instant lastSunday()
    • startOfDay

      protected org.joda.time.Instant startOfDay()
    • nextStartOfDay

      protected org.joda.time.Instant nextStartOfDay()
    • setTariffMarket

      public void setTariffMarket​(TariffMarket service)
    • changeSubscription

      public void changeSubscription​(org.powertac.common.Tariff tariff, org.powertac.common.Tariff newTariff, org.powertac.common.CustomerInfo customer)
      In this overloaded implementation of the changing subscription function, Here we just put the tariff we want to change and the whole population is moved to another random tariff. NOTE: Used only for testing...
      Parameters:
      tariff -