diff --git a/src/main/tjava/com/r35157/jupiterperpsalarm/impl/ref/AlarmConfigurationParser.tjava b/src/main/tjava/com/r35157/jupiterperpsalarm/impl/ref/AlarmConfigurationParser.tjava index 050484f..3d88476 100644 --- a/src/main/tjava/com/r35157/jupiterperpsalarm/impl/ref/AlarmConfigurationParser.tjava +++ b/src/main/tjava/com/r35157/jupiterperpsalarm/impl/ref/AlarmConfigurationParser.tjava @@ -237,9 +237,21 @@ public final class AlarmConfigurationParser { validateConstantName(name); - if (constants.putIfAbsent(name, value) != null) { - throw new IllegalArgumentException("Duplicate constant: " + name); + constants.put(parseVariableName(name), value); + } + + private static String parseVariableName(String variableName) { + if (!variableName.startsWith("{{") || !variableName.endsWith("}}")) { + throw new IllegalArgumentException("Invalid variable name: " + variableName); } + + String parsedVariableName = variableName.substring(2, variableName.length() - 2); + + if (parsedVariableName.isBlank()) { + throw new IllegalArgumentException("Variable name cannot be blank: " + variableName); + } + + return parsedVariableName; } private static String replaceConstants(