EN · DE · RU · FR · ES

#548: TaskTree.kt

projectforge-business/src/main/java/org/projectforge/business/task/TaskTree.kt Typ: Kotlin-Klasse · Paket: org.projectforge.business.task · Quelle: projectforge-business/src/main/java/org/projectforge/business/task/TaskTree.kt 934 Zeilen · 657 Code · 205 Kommentare · 72 leer
Kotlin-Klasse, die TaskTree implementiert.

Annotationen

@Service

Eigenschaften

EigenschaftDeklaration
accessDaoAccessDao
auftragsCacheAuftragsCache
auftragDaoAuftragDao
kostCacheKostCache
persistenceServicePfPersistenceService
projektDaoProjektDao
taskDaoTaskDao
timesheetDaoTimesheetDao
timeOfLastModificationLong = 0
taskMapmutableMapOf()
rootTaskNode? = null
orderPositionReferencesMap>? = null
orderPositionReferencesDirtytrue
rootTaskNodeTaskNode
nodeTaskNode()
parentgetTaskNodeById(task.parentTaskId)
timesheetTimesheetDO()
bookabletimesheetDao.checkTaskBookable(
taskNodegetTaskNodeById(taskId) ?: return EMPTY_LIST
resultListgetPathToRoot(taskId)

Funktionen

FunktionParameterRückgabe
postConstructUnit
addTaskNodenode: TaskNode, parent: TaskNode?TaskNode
addTaskNodetask: TaskDOTaskNode
getPathtaskId: Long?, ancestorTaskId: Long?List
getPathToRoottaskId: Long?List
getAncestorTaskIstaskId: Long?MutableList
getAncestorAndDescendantTaskIstaskId: Long?, includeSelf: BooleanList
getDescendantTaskIdstaskId: Long?, includeSelf: BooleanList
getDescendantstaskId: Long?, includeSelf: BooleanList
addDescendantsresultList: MutableList, node: TaskNodeUnit
getTaskNodeByIdtaskId: Long?, checkRefresh: Boolean = trueTaskNode?
getTaskByIdid: Long?TaskDO?
getTaskIfNotInitializedtask: TaskDO?TaskDO?
getProjekttaskId: Long?ProjektDO?
internalSetProjecttaskId: Long, projekt: ProjektDO?Unit

Architekturanalyse

Befindet sich in projectforge-business, dem Kernmodul mit Domänenlogik, Diensten und Persistenz. Typischerweise mit @Service oder @Component annotiert, vom Spring-IoC-Container mit Dependency Injection verwaltet.

Git-Verlauf

CommitWas wurde geändert
01d4805fdfRefaktor: Verbesserte Nebenläufigkeit und defensive Prüfungen für die Aufgabenhierarchie
868d6abb752025 -> 2026
6a32032d65Hibernate.isInitialized(obj) -> HibernateUtils.isFullyInitialized(obj). Einige lazy-Objekte von z.B. ManyToOne-Spalten sind nicht vollständig geladen, aber Hibernate.isInitialized() gibt true zurück.
63081666f6Quelldatei-Header: 2024 -> 2025.
5f9bbfbd37Tippfehler im Verzeichnis projectforge-business korrigiert
9625305236TaskTree: Zirkuläre Abhängigkeiten behoben. JacksonConfiguration: Deserialisierungsfehler bei java.util.Date behoben (UTC).
50c3b7b46eMigrationsarbeit läuft... (alle Tests aller Pakete: OK).
4942c854d9Migrationsarbeit läuft...
ae2c04ee02Migrationsarbeit läuft... (alle Tests aller Pakete: OK).
b810d1c781Migrationsarbeit läuft... (alle Tests aller Pakete: OK).
567ca70cd5Migration läuft... spring.datasource.hikari.auto-commit=false
f31e8064eaMigrationsarbeit läuft...
cb5cd5d3d9Migrationsarbeit läuft...
2e98398916Migrationsarbeit läuft...
ba2479571aMigrationsarbeit läuft...
b3293f0cc0PersistenceService/Context: Statistik-Handling verbessert.
87dd5b87c3AuftragsCache refaktoriert, Migrationsarbeit... (alle Tests OK)
1b50060c3aBaseDao: umbenannt: get -> find, save -> insert, getList -> select, load -> select
87aaf6a5a5Migrationsarbeit läuft... BaseDao refaktoriert (noch nicht abgeschlossen) interne* Methoden umbenannt.
9408b59d72Migrationsarbeit läuft...
a6edf511e4Migrationsarbeit läuft... PersistenceThreadLocalStats
3aeda5ef5aGroße Änderung: Alle save|update|...InTrans umbenannt (InTrans entfernt). PfPesistenceContext als Parameter nicht mehr benötigt (ThreadLocal wird stattdessen verwendet). (alle Tests aller Pakete: OK).
1564553d80Migrationsarbeit läuft...
c7b6e72ad6Migrationsarbeit läuft... (alle Tests aller Pakete: OK).
e66d5f5f7cMigrationsarbeit läuft... TaskTree -> Kotlin und läuft jetzt im isolierten Entity-Manager