diff options
author | gjoranv <gv@verizonmedia.com> | 2019-11-13 15:00:26 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2019-11-13 15:00:26 +0100 |
commit | 491924433dd80b8a57c47f42c5a1f5725ec4b454 (patch) | |
tree | e18c01a4ab8698004db612c7c9a791f861e2e49e /configgen/src/main/java/com | |
parent | 3d9c56b13ef888a668a6429ab0a65315582f9fee (diff) |
Fail if reserved words are used for array names.
Diffstat (limited to 'configgen/src/main/java/com')
-rw-r--r-- | configgen/src/main/java/com/yahoo/config/codegen/DefLine.java | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java b/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java index 5d2dc2e13e8..2cc93f95df0 100644 --- a/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java +++ b/configgen/src/main/java/com/yahoo/config/codegen/DefLine.java @@ -257,16 +257,18 @@ public class DefLine { } } - void validateReservedWords() { - if (ReservedWords.isReservedWord(name)) { - throw new IllegalArgumentException(name + " is a reserved word in " + - ReservedWords.getLanguageForReservedWord(name)); + private void validateReservedWords() { + String cleanName = (name.endsWith("[]") || name.endsWith("{}")) ? name.substring(0, name.length()-2) : name; + + if (ReservedWords.isReservedWord(cleanName)) { + throw new IllegalArgumentException(cleanName + " is a reserved word in " + + ReservedWords.getLanguageForReservedWord(cleanName)); } - if (ReservedWords.capitalizedPattern.matcher(name).matches()) { - throw new IllegalArgumentException("'" + name + "' cannot start with an uppercase letter"); + if (ReservedWords.capitalizedPattern.matcher(cleanName).matches()) { + throw new IllegalArgumentException("'" + cleanName + "' cannot start with an uppercase letter"); } - if (ReservedWords.internalPrefixPattern.matcher(name).matches()) { - throw new IllegalArgumentException("'" + name + "' cannot start with '" + ReservedWords.INTERNAL_PREFIX + "'"); + if (ReservedWords.internalPrefixPattern.matcher(cleanName).matches()) { + throw new IllegalArgumentException("'" + cleanName + "' cannot start with '" + ReservedWords.INTERNAL_PREFIX + "'"); } } |