From 51e377a0aad9d8b8986ea583e31f138b70fc41bd Mon Sep 17 00:00:00 2001 From: Jason Del Ponte Date: Wed, 6 Jan 2021 12:23:30 -0800 Subject: [PATCH] codegen: Fix enum value generated name to not be lower cased Fixes the generated enum value names to not be lower cased when capitalized. Related to https://github.com/aws/aws-sdk-go-v2/issues/1013 --- .../amazon/smithy/go/codegen/EnumGenerator.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/EnumGenerator.java b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/EnumGenerator.java index db85e046d..f5f7d4e86 100644 --- a/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/EnumGenerator.java +++ b/codegen/smithy-go-codegen/src/main/java/software/amazon/smithy/go/codegen/EnumGenerator.java @@ -59,8 +59,14 @@ public void run() { for (EnumDefinition definition : enumTrait.getValues()) { StringBuilder labelBuilder = new StringBuilder(symbol.getName()); String name = definition.getName().get(); - for (String part : name.split("(?U)[\\W_]")) { - labelBuilder.append(StringUtils.capitalize(part.toLowerCase(Locale.US))); + + // Only split, capital case, and join the elements if there are non-word characters. + if (name.matches("(?U)[\\W_]")) { + for (String part : name.split("(?U)[\\W_]")) { + labelBuilder.append(StringUtils.capitalize(part.toLowerCase(Locale.US))); + } + } else { + labelBuilder.append(StringUtils.capitalize(name)); } String label = labelBuilder.toString();