diff --git a/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/config/LombokConfig.kt b/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/config/LombokConfig.kt index b9a9391b6e1..9f5f74e9ffc 100644 --- a/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/config/LombokConfig.kt +++ b/plugins/lombok/lombok-compiler-plugin/src/org/jetbrains/kotlin/lombok/config/LombokConfig.kt @@ -9,11 +9,13 @@ import java.io.File class LombokConfig(private val config: Map>) { - fun getString(key: String): String? = config[key]?.firstOrNull() + fun getString(key: String): String? = getValue(key)?.firstOrNull() fun getBoolean(key: String): Boolean? = getString(key)?.toBoolean() - fun getMultiString(key: String): List? = config[key] + fun getMultiString(key: String): List? = getValue(key) + + private fun getValue(key: String): List? = config[normalizeKey(key)] companion object { @@ -67,22 +69,25 @@ class ConfigBuilder { private val state: MutableMap> = mutableMapOf() fun setValue(name: String, value: String) { - state[name] = listOf(value) + state[normalizeKey(name)] = listOf(value) } fun clearValue(name: String) { - state.remove(name) + state.remove(normalizeKey(name)) } fun plusValue(name: String, value: String) { - state.merge(name, listOf(value)) { a, b -> a + b } + state.merge(normalizeKey(name), listOf(value)) { a, b -> a + b } } fun minusValue(name: String, value: String) { - state.merge(name, listOf(value)) { a, b -> a - b } + state.merge(normalizeKey(name), listOf(value)) { a, b -> a - b } } fun build(): LombokConfig = LombokConfig(state) } +//lombok config keys are case insensitive +private fun normalizeKey(key: String): String = key.lowercase() + diff --git a/plugins/lombok/lombok-compiler-plugin/testData/compile/configCaseInsensitive.kt b/plugins/lombok/lombok-compiler-plugin/testData/compile/configCaseInsensitive.kt new file mode 100644 index 00000000000..a713032ac91 --- /dev/null +++ b/plugins/lombok/lombok-compiler-plugin/testData/compile/configCaseInsensitive.kt @@ -0,0 +1,29 @@ +//FILE: GetterTest.java + +import lombok.AccessLevel; +import lombok.Getter; + +public class GetterTest { + @Getter private boolean primitiveBoolean; + + void test() { + getPrimitiveBoolean(); + } + +} + + +//FILE: test.kt + +class Test { + fun run() { + val obj = GetterTest() + + obj.primitiveBoolean + obj.getPrimitiveBoolean() + } +} + +//FILE: lombok.config +#lombok config keys are case insensitive +lombok.getter.noisprefix=true diff --git a/plugins/lombok/lombok-compiler-plugin/tests/org/jetbrains/kotlin/lombok/LombokCompileTestGenerated.java b/plugins/lombok/lombok-compiler-plugin/tests/org/jetbrains/kotlin/lombok/LombokCompileTestGenerated.java index 18426adfec3..526223f4399 100644 --- a/plugins/lombok/lombok-compiler-plugin/tests/org/jetbrains/kotlin/lombok/LombokCompileTestGenerated.java +++ b/plugins/lombok/lombok-compiler-plugin/tests/org/jetbrains/kotlin/lombok/LombokCompileTestGenerated.java @@ -64,6 +64,11 @@ public class LombokCompileTestGenerated extends AbstractLombokCompileTest { runTest("plugins/lombok/lombok-compiler-plugin/testData/compile/configAccessorsOverride.kt"); } + @TestMetadata("configCaseInsensitive.kt") + public void testConfigCaseInsensitive() throws Exception { + runTest("plugins/lombok/lombok-compiler-plugin/testData/compile/configCaseInsensitive.kt"); + } + @TestMetadata("configSimple.kt") public void testConfigSimple() throws Exception { runTest("plugins/lombok/lombok-compiler-plugin/testData/compile/configSimple.kt");