Class EventBasedTimestampWeightedTally

All Implemented Interfaces:
Serializable, Remote, EventListener, org.djutils.event.EventListener, org.djutils.event.EventProducer, Statistic, TallyStatistic

public class EventBasedTimestampWeightedTally extends TimestampWeightedTally implements org.djutils.event.EventProducer, org.djutils.event.EventListener
The TimestampWeightedTally class defines a time-weighted tally based on timestamped data. The difference with a normal time-weighed tally is that the weight of a value is only known at the occurrence of the next timestamp. Furthermore, a last timestamp needs to be specified to determine the weight of the last value. This EventBased version of the tally can be notified with timestamps and values using the EventListenerInterface. It also produces events when values are tallied and when the tally is initialized. Timestamps can be Number based or Calendar based.

Copyright (c) 2020-2024 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://simulation.tudelft.nl. The DSOL project is distributed under a three-clause BSD-style license, which can be found at https://simulation.tudelft.nl/dsol/3.0/license.html.

Author:
Alexander Verbraeck
See Also:
  • Constructor Details

    • EventBasedTimestampWeightedTally

      public EventBasedTimestampWeightedTally(String description)
      constructs a new EventBasedTimestampWeightedTally with a description.
      Parameters:
      description - String; the description of this EventBasedTimestampWeightedTally
    • EventBasedTimestampWeightedTally

      public EventBasedTimestampWeightedTally(String description, org.djutils.event.EventProducer eventProducer)
      Construct a new EventBasedTimestampWeightedTally with a description.
      Parameters:
      description - String; the description of this WeightedTally
      eventProducer - EventProducer; the EventProducer to embed and use in this statistic
  • Method Details

    • getEventListenerMap

      public org.djutils.event.EventListenerMap getEventListenerMap() throws RemoteException
      Specified by:
      getEventListenerMap in interface org.djutils.event.EventProducer
      Throws:
      RemoteException
    • initialize

      public void initialize()
      Initialize the statistic.
      Specified by:
      initialize in interface Statistic
      Overrides:
      initialize in class TimestampWeightedTally
    • notify

      public void notify(org.djutils.event.Event event)
      Specified by:
      notify in interface org.djutils.event.EventListener
    • register

      public double register(Calendar timestamp, double value)
      Process one observed Calender-based value. The time used will be the Calendar's time in milliseconds. Silently ignore when a value is registered, but tally is not active, i.e. when endObservations() has been called.
      Overrides:
      register in class TimestampWeightedTally
      Parameters:
      timestamp - Calendar; the Calendar object representing the timestamp
      value - double; the value to process
      Returns:
      double; the value
      Throws:
      NullPointerException - when timestamp is null
      IllegalArgumentException - when value is NaN
      IllegalArgumentException - when given timestamp is before last timestamp
    • register

      public double register(Number timestamp, double value)
      Process one observed Number-based value. Silently ignore when a value is registered, but tally is not active, i.e. when endObservations() has been called.
      Overrides:
      register in class TimestampWeightedTally
      Parameters:
      timestamp - Number; the object representing the timestamp
      value - double; the value to process
      Returns:
      double; the value
      Throws:
      NullPointerException - when timestamp is null
      IllegalArgumentException - when value is NaN or timestamp is NaN
      IllegalArgumentException - when given timestamp is before last timestamp
    • register

      public double register(double timestamp, double value)
      Explicit;y override the double value method signature of WeightedTally to call the right method.
      Process one observed double value. Silently ignore when a value is registered, but tally is not active, i.e. when endObservations() has been called.
      Overrides:
      register in class TimestampWeightedTally
      Parameters:
      timestamp - Number; the object representing the timestamp
      value - double; the value to process
      Returns:
      double; the value
      Throws:
      NullPointerException - when timestamp is null
      IllegalArgumentException - when value is NaN or timestamp is NaN
      IllegalArgumentException - when given timestamp is before last timestamp
    • fireEvents

      protected <T extends Serializable & Comparable<T>> void fireEvents(Serializable timestamp) throws RemoteException
      Method that can be overridden to fire own events or additional events when registering an observation.
      Type Parameters:
      T - a type for the timestamp that is Serializable and Comparable
      Parameters:
      timestamp - T; the timestamp to use in the TimedEvents
      Throws:
      RemoteException - on network error
    • toString

      public String toString()
      Overrides:
      toString in class TimestampWeightedTally