Class Trace2DArithmeticMean

java.lang.Object
info.monitorenter.gui.chart.traces.ATrace2D
info.monitorenter.gui.chart.traces.computing.Trace2DArithmeticMean
All Implemented Interfaces:
ITrace2D, PropertyChangeListener, Serializable, Comparable<ITrace2D>, EventListener

public class Trace2DArithmeticMean extends ATrace2D
A trace that accumulates the latest n points added to points with the arithmetic mean value.

This trace will not reduce the amount of n points added to one carrying the arithmetic mean but always add a point that has the average of the recent added n points.

Please note that this trace scan be used in two modes:

  1. Stand alone:
    Add the ITrace2D implementation to a chart and add data points to it as normal.
  2. Computing trace:
    Add the ITrace2D implementation as a computing trace to an existing trace via ITrace2D.addComputingTrace(info.monitorenter.gui.chart.ITrace2D) and only add data points to the original trace. Add the computing trace to the same chart and updates of the original trace will be reflected on the computing trace as well.

Since:
7.0.0
Version:
$Revision: 1.15 $
Author:
Achim Westermann
See Also:
  • Constructor Details

    • Trace2DArithmeticMean

      public Trace2DArithmeticMean(int arithmenticMeanSpan)
      The amount of n recent points to buffer. private int m_pointBufferSize; /** Constructor with the given amount of points to merge into one point with their arithmetic mean.

      Parameters:
      arithmenticMeanSpan - the amount of points to merge into one point with their arithmetic mean.
  • Method Details

    • addPointInternal

      protected boolean addPointInternal(ITracePoint2D p)
      Description copied from class: ATrace2D

      Override this template method for the custom add operation that depends on the policies of the implementation.

      No property change events have to be fired by default. If this method returns true the outer logic of the calling method ATrace2D.addPoint(ITracePoint2D) will perform bound checks for the new point and fire property changes as described in method ATrace2D.firePointChanged(ITracePoint2D, int).

      In special cases - when additional modifications to the internal set of points take place (e.g. a further point gets removed) this method should return false (regardless whether the new point was accepted or not) and perform bound checks and fire the property changes as mentioned above "manually".

      Specified by:
      addPointInternal in class ATrace2D
      Parameters:
      p - the point to add.
      Returns:
      true if the given point was accepted or false if not.
      See Also:
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
      See Also:
    • getMaxSize

      public int getMaxSize()
      Description copied from interface: ITrace2D

      Returns the maximum amount of TracePoint2D instances that may be added. For implementations that limit the maximum amount this is a reasonable amount. Non-limiting implementations should return Integer.MAX_VALUE. This allows to detect the unlimitedness. Of course no implementation could store that amount of points.

      Returns:
      The maximum amount of TracePoint2D instances that may be added.
      See Also:
    • getSize

      public int getSize()
      Description copied from interface: ITrace2D
      Returns the amount of TracePoint2D instances currently contained.

      Returns:
      The amount of TracePoint2D instances currently contained.
      See Also:
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
      See Also:
    • isEmpty

      public boolean isEmpty()
      Description copied from interface: ITrace2D
      Returns false if internal TracePoint2D instances are contained or true if not.

      Returns:
      false if internal TracePoint2D instances are contained or true if not.
      See Also:
    • iterator

      public Iterator<ITracePoint2D> iterator()
      Description copied from interface: ITrace2D
      Returns an Iterator over the internal TracePoint2D instances.

      Implementations should be synchronized. This method is meant to allow modifications of the intenal TracePoint2D instances, so the original points should be returned.

      There is no guarantee that changes made to the contained tracepoints will be reflected in the display immediately. The order the iterator returns the TracePoint2D instances decides how the Chart2D will paint the trace.

      Returns:
      an Iterator over the internal TracePoint2D instances.
      See Also:
    • removeAllPointsInternal

      protected void removeAllPointsInternal()
      Description copied from class: ATrace2D
      Override this template method for the custom remove operation that depends on the Collection used in the implementation.

      No change events have to be fired, this is done by ATrace2D.

      Specified by:
      removeAllPointsInternal in class ATrace2D
      See Also:
    • removePointInternal

      protected ITracePoint2D removePointInternal(ITracePoint2D point)
      Description copied from class: ATrace2D
      Override this template method for the custom remove operation that depends on the internal storage the implementation.

      The returned point may be the same as the given. But some "computing" traces like Trace2DArithmeticMean will internally delete a different point and return that one.

      No property change events have to be fired by default. If this method returns null the outer logic of the calling method ATrace2D.removePoint(ITracePoint2D) will perform bound checks for the returned point and fire property changes for the properties ITrace2D.PROPERTY_MAX_X, ITrace2D.PROPERTY_MIN_X, ITrace2D.PROPERTY_MAX_Y and ITrace2D.PROPERTY_MIN_Y.

      In special cases - when additional modifications to the internal set of points take place (e.g. a further point get added) this method should return false (regardless whether the old point was really removed or not) and perform bound checks and fire the property changes as mentioned above "manually".

      Specified by:
      removePointInternal in class ATrace2D
      Parameters:
      point - the point to remove.
      Returns:
      null if unsuccessful (and no events should be fired) or the point that actually was removed (in case different than the given one it should be somehow related to the given one).
      See Also: