#1060: KotlinScriptUtils.kt

projectforge-business/src/main/kotlin/org/projectforge/business/scripting/kotlin/KotlinScriptUtils.kt Kotlin Script Utilities, projectforge-business/src/main/kotlin/org/projectforge/business/scripting/kotlin/KotlinScriptUtils.kt 166 lines · 130 code · 26 comments · 10 blank
Internal utility object for Kotlin script execution. Handles error diagnostics formatting (with source line markers and severity filtering), auto-binding generation (generating val x = context.getProperty("x") as Type declarations), and class name replacement for Java primitives in Kotlin type declarations.

Key Functions

handleResult

Iterates ResultWithDiagnostics<EvaluationResult> reports, filters by severity, formats location info with line/column and source snippets marked with >>>...<<<, and logs them to the script logger. Extracts the return value via extractResult().

appendBlockAfterImports

Generates Kotlin property declarations for all script variables and parameters, inserting them as an auto-generated bindings block after imports. Uses bindingsClassReplacements map to convert Java class names to Kotlin equivalents (e.g., java.lang.StringString). Skips variables already present in the script source.

bindingsClassReplacements

Maps: java.lang.String → String, java.lang.Integer → Int, java.lang.Boolean → Boolean, java.util.HashMap → MutableMap<*, *>.

Git History

868d6abb7 2025 -> 2026
63081666f Source file headers: 2024-> 2025.
aeff942b5 Script execution improved (logging for end user).
36c9acc50 It was a hard, hard work, but Kotlin scripts are running, yeah!
921638f43 WIP
de4d8d2af Combat with KotlinExecutor in SpringBoot's fat jar.