Constants.ktЦентральный репозиторий констант для всего ProjectForge. 158 строк. Kotlin object (синглтон). Используется везде: JPA-entity'ами для @Column(length = Constants.LENGTH_TITLE), валидаторами, форматтерами. Javadoc: "Defines different constants (typical length of string columns) usable by plugins and core package."
LENGTH_TEXT=4000, LENGTH_COMMENT=4000, COMMENT_LENGTH=4000, LENGTH_SUBJECT=1000, LENGTH_TITLE=1000. Используются в @Column(length=...) на полях всех entity-классов. Стандартизация длин гарантирует консистентность схемы БДTEN_BILLION и TEN_BILLION_NEGATIVE — предельные значения для денежных полей (BigDecimal с precision=12, scale=2). HUNDRED_BD — для процентных расчётовKB=1024, MB=1024*KB, GB=1024*MB, TB=1024L*GB (Long). Используются для форматирования размеров файлов и валидации лимитов загрузкиSECONDS_PER_MINUTE, SECONDS_PER_HOUR, SECONDS_PER_DAY, SECONDS_PER_WEEK и соответствующие MILLIS_PER_*. Применяются в timesheet-расчётах и таймерахREACT_APP_PATH="react/", WICKET_APPLICATION_PATH="wa/", BUILD_DIR="build"WEB_HOME_PAGE_LINK, WEB_DOCS_LINK и производные — для документации и help-ссылок в UITIMESHEET_CALENDAR_ID=-1, MINYEAR=1900, MAXYEAR=2100object а не class?Kotlin object — это потокобезопасный синглтон, создаваемый при первом обращении. Константы (const val) компилируются в статические поля JVM и встраиваются на месте вызова (inline). @JvmField на BigDecimal-полях делает их доступными из Java-кода как Constants.TEN_BILLION (без геттеров). @JvmStatic на isTimesheetCalendarId() — статический метод из Java.
868d6abb7 2025 -> 2026 47d42a5bb AI savings: mass update of time-sheets, editing in classic page added. 63081666f Source file headers: 2024-> 2025. 1ffa5a1ef WIP: gradle... 4c04cfd65 MAJOR-CHANGE! Migration of integer id's to Long id's. b6092df09 Copyright 2023 -> 2024 ab45d51fa Copyright 2001-2022 -> 2001-2023. dcfc7c1a9 Old calendar moved to sub menu, ScriptingTask*, JiraUtils 1ea8d4062 WIP: Jobs and Bank account records. d7b3e8751 AG grid: Copy and paste and Excel export improved.