Skip to content

Commit 0d2dad3

Browse files
committed
Filter blanks in getJavaClassName
This ports the same fix added to DefaultNamingStrategy from V1. Related to #693.
1 parent 3d60974 commit 0d2dad3

File tree

2 files changed

+53
-1
lines changed

2 files changed

+53
-1
lines changed

codegen/src/main/java/software/amazon/awssdk/codegen/naming/DefaultNamingStrategy.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,10 @@ public String getEnumValueName(String enumValue) {
214214

215215
@Override
216216
public String getJavaClassName(String shapeName) {
217-
return Arrays.stream(shapeName.split("[._-]|\\W")).map(Utils::capitalize).collect(Collectors.joining());
217+
return Arrays.stream(shapeName.split("[._-]|\\W"))
218+
.filter(s -> !StringUtils.isEmpty(s))
219+
.map(Utils::capitalize)
220+
.collect(Collectors.joining());
218221
}
219222

220223
@Override

codegen/src/test/java/software/amazon/awssdk/codegen/naming/DefaultNamingStrategyTest.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,4 +275,53 @@ public void getServiceName_ThrowsException_WhenServiceIdHasWhiteSpace() {
275275
private void validateConversion(String input, String expectedOutput) {
276276
assertThat(strat.getEnumValueName(input)).isEqualTo(expectedOutput);
277277
}
278+
279+
@Test
280+
public void getJavaClassName_ReturnsSanitizedName_ClassStartingWithUnderscore() {
281+
NamingStrategy strategy = new DefaultNamingStrategy(null, null);
282+
String javaClassName = strategy.getJavaClassName("_MyClass");
283+
assertThat(javaClassName).isEqualTo("MyClass");
284+
}
285+
286+
@Test
287+
public void getJavaClassName_ReturnsSanitizedName_ClassStartingWithDoubleUnderscore() {
288+
NamingStrategy strategy = new DefaultNamingStrategy(null, null);
289+
String javaClassName = strategy.getJavaClassName("__MyClass");
290+
assertThat(javaClassName).isEqualTo("MyClass");
291+
}
292+
293+
@Test
294+
public void getJavaClassName_ReturnsSanitizedName_ClassStartingWithDoublePeriods() {
295+
NamingStrategy strategy = new DefaultNamingStrategy(null, null);
296+
String javaClassName = strategy.getJavaClassName("..MyClass");
297+
assertThat(javaClassName).isEqualTo("MyClass");
298+
}
299+
300+
@Test
301+
public void getJavaClassName_ReturnsSanitizedName_ClassStartingWithDoubleDashes() {
302+
NamingStrategy strategy = new DefaultNamingStrategy(null, null);
303+
String javaClassName = strategy.getJavaClassName("--MyClass");
304+
assertThat(javaClassName).isEqualTo("MyClass");
305+
}
306+
307+
@Test
308+
public void getJavaClassName_ReturnsSanitizedName_DoubleUnderscoresInClass() {
309+
NamingStrategy strategy = new DefaultNamingStrategy(null, null);
310+
String javaClassName = strategy.getJavaClassName("My__Class");
311+
assertThat(javaClassName).isEqualTo("MyClass");
312+
}
313+
314+
@Test
315+
public void getJavaClassName_ReturnsSanitizedName_DoublePeriodsInClass() {
316+
NamingStrategy strategy = new DefaultNamingStrategy(null, null);
317+
String javaClassName = strategy.getJavaClassName("My..Class");
318+
assertThat(javaClassName).isEqualTo("MyClass");
319+
}
320+
321+
@Test
322+
public void getJavaClassName_ReturnsSanitizedName_DoubleDashesInClass() {
323+
NamingStrategy strategy = new DefaultNamingStrategy(null, null);
324+
String javaClassName = strategy.getJavaClassName("My--Class");
325+
assertThat(javaClassName).isEqualTo("MyClass");
326+
}
278327
}

0 commit comments

Comments
 (0)