#1260: BaseDOHandler.kt

projectforge-business/src/main/kotlin/org/projectforge/framework/persistence/candh/BaseDOHandler.kt Copy-and-History Handler (BaseDO), projectforge-business/src/main/kotlin/org/projectforge/framework/persistence/candh/BaseDOHandler.kt 93 lines · 59 code · 27 comments · 7 blank
Handler for properties of type BaseDO in the copy-and-history (CandH) framework. Extends DefaultHandler, accepts any property whose return type is a BaseDO subclass. Equal check compares entity identifiers via HibernateUtils.getIdentifier() instead of object equality.

Architecture

Inheritance

BaseDOHandler extends DefaultHandler. The process() method is inherited from DefaultHandler (commented out in this class). The key override is propertyValuesEqual() which uses idModified().

Key Methods

MethodDescription
accept(property)True if return type is subclass of BaseDO
propertyValuesEqual(src, dest)Compares entity IDs; true if IDs match (no modification)

Companion

fun idModified(srcObject: Any, destObject: Any): Boolean {
    val srcId = HibernateUtils.getIdentifier(srcObject)
    val destId = HibernateUtils.getIdentifier(destObject)
    return if (srcId != null) srcId != destId else false
}

Git History

868d6abb7 2025 -> 2026
63081666f Source file headers: 2024-> 2025.
b60319f30 Migration stuff in progress... (all tests of all packages: OK).
eb03cafda candh package moved.