EN · DE · RU · FR · ES

#802: AbstractAggregatedValues.java

Abstract base class, projectforge-business/src/main/java/org/projectforge/statistics/AbstractAggregatedValues.java

Что это

Базовый класс для накопления агрегированных значений во времени. Используется в модуле статистики и прогнозирования ликвидности (LiquidityForecast). Хранит массив значений по дням (или другим единицам времени) и предоставляет методы для накопления (add()), получения значения по индексу, вычисления средних и сумм. Подклассы: IntAggregatedValues, BigDecimalAggregatedValues. Используется в LiquidityForecast для weighted average вычислений времени платежа.

Архитектура

Обобщённый (<T>) абстрактный класс, реализующий паттерн Template Method. Хранит списки значений (values) и весов (weights) в LinkedList. Использует dirty-flag паттерн (averageDirty, weightedAverageDirty) для ленивого кэширования среднего и взвешенного среднего. Абстрактные методы (getZero(), sum(), convert(), divide(), multiply(), isZero()) реализуются подклассами для конкретных числовых типов. Поддерживает цепные вызовы (add().add()).

Git History

868d6abb7 2025 -> 2026
63081666f Source file headers: 2024-> 2025.
b6092df09 Copyright 2023 -> 2024
ab45d51fa Copyright 2001-2022 -> 2001-2023.
5f7ef41b8 Copyright 2021 -> 2022
ceb63e8a1 Source code header: (C) 2001-2021.
7c79f1922 Copyright of source header -> 2020.
73a9755df Code cleanup: collapsed catch blocks, diamond operator, StringBuilder, Collections.sort -> List.sort
000ca723d Remove pointless boolean expressions (business)
dd5ca38ac CopyRight of all java file-header updated or created.