Class ServicingInformation

java.lang.Object
org.kigalisim.engine.state.ServicingInformation

public class ServicingInformation extends Object
Immutable structure holding servicing (recharge/precharge) population and intensity information.

Provides methods to accumulate servicing parameters with weighted-average intensity calculations. This allows multiple servicing operations to be combined while preserving intensity information through weighted averaging.

  • Constructor Details

    • ServicingInformation

      public ServicingInformation(EngineNumber population, EngineNumber intensity)
      Create a new ServicingInformation instance.
      Parameters:
      population - The servicing population rate (in %)
      intensity - The servicing intensity (in kg / unit)
  • Method Details

    • getPopulation

      public EngineNumber getPopulation()
      Get the servicing population rate.
      Returns:
      The population rate in %
    • getIntensity

      public EngineNumber getIntensity()
      Get the servicing intensity.
      Returns:
      The intensity in kg / unit
    • add

      public ServicingInformation add(EngineNumber newPopulation, EngineNumber newIntensity)
      Add population and intensity to this servicing information with weighted-average intensity.

      Multiple calls accumulate rates (addition) and intensities (weighted-average). Population rates are added, intensities are weighted-averaged using absolute values for weights to handle negative adjustments correctly.

      Weighted average formula: (|rate1| × intensity1 + |rate2| × intensity2) / (|rate1| + |rate2|)

      Parameters:
      newPopulation - The servicing population rate to add
      newIntensity - The servicing intensity for this rate
      Returns:
      A new ServicingInformation instance with accumulated values