Skip to content
This repository has been archived by the owner on Jun 28, 2022. It is now read-only.

fix: Make java lowerCamel methos naming match protobuf java stubs output methods naming #3265

Merged
merged 1 commit into from
Aug 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion src/main/java/com/google/api/codegen/util/Name.java
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,15 @@ public String toUpperCamel() {
}

public String toUpperCamelAndDigits() {
char[] upper = toUpperCamel().toCharArray();
return capitalizeDigitsAfterNumbers(toUpperCamel());
}

public String toLowerCamelAndDigits() {
return capitalizeDigitsAfterNumbers(toLowerCamel());
}

private String capitalizeDigitsAfterNumbers(String camelCaseIdentifier) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

late to the party, but I bet it meant to be capitalizeLettersAfterNumbers :)

char[] upper = camelCaseIdentifier.toCharArray();
boolean digit = false;
for (int i = 0; i < upper.length; i++) {
if (Character.isDigit(upper[i])) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public String localVarReference(Name name) {

@Override
public String publicMethodName(Name name) {
return wrapIfKeywordOrBuiltIn(name.toLowerCamel());
return wrapIfKeywordOrBuiltIn(name.toLowerCamelAndDigits());
}

@Override
Expand Down
21 changes: 21 additions & 0 deletions src/test/java/com/google/api/codegen/util/NameTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public void testEmpty() {
assertThat(name.toUpperUnderscore()).isEqualTo("");
assertThat(name.toLowerCamel()).isEqualTo("");
assertThat(name.toUpperCamel()).isEqualTo("");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("");
}

@Test
Expand All @@ -36,6 +37,7 @@ public void testSingleWord() {
assertThat(name.toUpperUnderscore()).isEqualTo("DOG");
assertThat(name.toLowerCamel()).isEqualTo("dog");
assertThat(name.toUpperCamel()).isEqualTo("Dog");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("dog");
}

@Test
Expand All @@ -45,6 +47,7 @@ public void testMultipleWords() {
assertThat(name.toUpperUnderscore()).isEqualTo("FACTORY_DECORATOR_DELEGATE_IMPL");
assertThat(name.toLowerCamel()).isEqualTo("factoryDecoratorDelegateImpl");
assertThat(name.toUpperCamel()).isEqualTo("FactoryDecoratorDelegateImpl");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("factoryDecoratorDelegateImpl");
}

@Test
Expand All @@ -54,6 +57,7 @@ public void testFromLowerCamel() {
assertThat(name.toUpperUnderscore()).isEqualTo("FACTORY_DECORATOR_DELEGATE_IMPL");
assertThat(name.toLowerCamel()).isEqualTo("factoryDecoratorDelegateImpl");
assertThat(name.toUpperCamel()).isEqualTo("FactoryDecoratorDelegateImpl");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("factoryDecoratorDelegateImpl");
}

@Test
Expand All @@ -63,6 +67,7 @@ public void testFromUpperCamel() {
assertThat(name.toUpperUnderscore()).isEqualTo("FACTORY_DECORATOR_DELEGATE_IMPL");
assertThat(name.toLowerCamel()).isEqualTo("factoryDecoratorDelegateImpl");
assertThat(name.toUpperCamel()).isEqualTo("FactoryDecoratorDelegateImpl");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("factoryDecoratorDelegateImpl");
}

@Test
Expand All @@ -72,6 +77,7 @@ public void testWordAndNumber() {
assertThat(name.toUpperUnderscore()).isEqualTo("DOG_2");
assertThat(name.toLowerCamel()).isEqualTo("dog2");
assertThat(name.toUpperCamel()).isEqualTo("Dog2");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("dog2");
}

@Test
Expand All @@ -83,13 +89,24 @@ public void testUpperWordAndNumber() {
assertThat(name.toUpperCamel()).isEqualTo("DogV2");
}

@Test
public void testUpperWordAndNumberWithCharacter() {
Name name = Name.upperCamel("Dog", "V2cc");
assertThat(name.toLowerUnderscore()).isEqualTo("dog_v2cc");
assertThat(name.toUpperUnderscore()).isEqualTo("DOG_V2CC");
assertThat(name.toLowerCamel()).isEqualTo("dogV2cc");
assertThat(name.toUpperCamel()).isEqualTo("DogV2cc");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("dogV2Cc");
}

@Test
public void testLowerWordAndNumber() {
Name name = Name.lowerCamel("dog", "v2");
assertThat(name.toLowerUnderscore()).isEqualTo("dog_v2");
assertThat(name.toUpperUnderscore()).isEqualTo("DOG_V2");
assertThat(name.toLowerCamel()).isEqualTo("dogV2");
assertThat(name.toUpperCamel()).isEqualTo("DogV2");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("dogV2");
}

@Test(expected = IllegalArgumentException.class)
Expand Down Expand Up @@ -119,6 +136,7 @@ public void separateAcronyms() {
assertThat(name.toUpperUnderscore()).isEqualTo("IAM_HTTP_XML_DOG");
assertThat(name.toLowerCamel()).isEqualTo("iamHttpXmlDog");
assertThat(name.toUpperCamel()).isEqualTo("IamHttpXmlDog");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("iamHttpXmlDog");
}

@Test
Expand All @@ -128,6 +146,7 @@ public void combinedAcronyms() {
assertThat(name.toUpperUnderscore()).isEqualTo("IAM_HTTP_XML");
assertThat(name.toLowerCamel()).isEqualTo("iamHttpXml");
assertThat(name.toUpperCamel()).isEqualTo("IamHttpXml");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("iamHttpXml");
}

@Test(expected = IllegalArgumentException.class)
Expand All @@ -147,6 +166,7 @@ public void upperCamelUpperAcronymsSeparate() {
assertThat(name.toUpperUnderscore()).isEqualTo("IAM_HTTP_XML_DOG");
assertThat(name.toLowerCamel()).isEqualTo("iamHTTPXMLDog");
assertThat(name.toUpperCamel()).isEqualTo("IAMHTTPXMLDog");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("iamHTTPXMLDog");
}

@Test
Expand All @@ -156,5 +176,6 @@ public void upperCamelUpperAcronymsCombined() {
assertThat(name.toUpperUnderscore()).isEqualTo("IAM_HTTP_XML");
assertThat(name.toLowerCamel()).isEqualTo("iamHTTPXML");
assertThat(name.toUpperCamel()).isEqualTo("IAMHTTPXML");
assertThat(name.toLowerCamelAndDigits()).isEqualTo("iamHTTPXML");
}
}