Class AverageVisitor.AverageResult

Object
AbstractCalcResult
AverageResult
All Implemented Interfaces:
CalcResult
Enclosing class:
AverageVisitor

public static class AverageVisitor.AverageResult extends AbstractCalcResult
  • Constructor Details

    • AverageResult

      public AverageResult(Object value)
    • AverageResult

      public AverageResult(Object newAverageStrategy, boolean isOptimized)
    • AverageResult

      public AverageResult(int newCount, Object newSum)
  • Method Details

    • getResult

      public Object getResult()
    • getValue

      public Object getValue()
      Description copied from interface: CalcResult
      Actual answer
      Specified by:
      getValue in interface CalcResult
      Overrides:
      getValue in class AbstractCalcResult
      Returns:
      the calculation result as a generic object
    • getCount

      public int getCount()
      The count used to calculate the average
      Returns:
      the count, or -1 if unknown
    • getSum

      public Object getSum()
      The sum used to calculate the average
    • isCompatible

      public boolean isCompatible(CalcResult targetResults)
      Determines if the target CalcResult object can be merged with this CalcResult object
      Specified by:
      isCompatible in interface CalcResult
      Overrides:
      isCompatible in class AbstractCalcResult
      Parameters:
      targetResults - a second CalcResult object (target)
      Returns:
      boolean
    • merge

      public CalcResult merge(CalcResult resultsToAdd)
      Merges the contents of a CalcResult Object with another CalcResult Object. If the two CalcResult objects are compatible, the merged result (a new object) is returned.
      Specified by:
      merge in interface CalcResult
      Overrides:
      merge in class AbstractCalcResult
      Parameters:
      resultsToAdd - the CalcResult to merge the results with
      Returns:
      a new merged CalcResult object
      Throws:
      IllegalArgumentException - when the resultsToAdd are inappropriate