@Override public String keyName(Name name) { return name.toLowerCamel(); }
@Override public String privateFieldName(Name name) { return wrapIfKeywordOrBuiltIn(name.toLowerCamel()); }
@Override public String publicMethodName(Name name) { return wrapIfKeywordOrBuiltIn(name.toLowerCamel()); }
@Override public String getReroutedGrpcClientVarName(MethodConfig methodConfig) { String reroute = methodConfig.getRerouteToGrpcInterface(); if (reroute == null) { return "GrpcClient"; } else { List<String> reroutes = Splitter.on('.').splitToList(reroute); return Name.anyCamelKeepUpperAcronyms("grpc", reroutes.get(reroutes.size() - 1), "client") .toLowerCamel(); } }
@Override public String getLocalPackageName() { // NodeJS module names can be hyphen separated. return Name.from(getApiWrapperModuleName().split("[^a-zA-Z0-9']+")).toLowerCamel(); }
@VisibleForTesting Name clientNamePrefix(String interfaceSimpleName) { Name name = getReducedServiceName(interfaceSimpleName); // If the service name matches the package name, don't include the service name in the prefix. // Eg, instead of "library.NewLibraryClient", we want "library.NewClient". // The casing of the service name does not matter. // Elements of the package path are usually all lowercase, even if they are multi-worded. if (name.toLowerCamel().equalsIgnoreCase(getLocalPackageName())) { return Name.from(); } return name; }
@Override public String getPackageServiceName(InterfaceConfig interfaceConfig) { return getReducedServiceName(interfaceConfig.getInterfaceModel().getSimpleName()) .toLowerCamel(); }
@Override public String getFieldGetFunctionName(FeatureConfig featureConfig, FieldConfig fieldConfig) { FieldModel field = fieldConfig.getField(); return Name.from(field.getSimpleName()).toLowerCamel(); }
@Test public void testMultipleWords() { Name name = Name.from("factory_decorator", "delegate_impl"); assertThat(name.toLowerUnderscore()).isEqualTo("factory_decorator_delegate_impl"); assertThat(name.toUpperUnderscore()).isEqualTo("FACTORY_DECORATOR_DELEGATE_IMPL"); assertThat(name.toLowerCamel()).isEqualTo("factoryDecoratorDelegateImpl"); assertThat(name.toUpperCamel()).isEqualTo("FactoryDecoratorDelegateImpl"); }
@Test public void testFromUpperCamel() { Name name = Name.upperCamel("FactoryDecorator", "DelegateImpl"); assertThat(name.toLowerUnderscore()).isEqualTo("factory_decorator_delegate_impl"); assertThat(name.toUpperUnderscore()).isEqualTo("FACTORY_DECORATOR_DELEGATE_IMPL"); assertThat(name.toLowerCamel()).isEqualTo("factoryDecoratorDelegateImpl"); assertThat(name.toUpperCamel()).isEqualTo("FactoryDecoratorDelegateImpl"); }
@Test public void testUpperWordAndNumber() { Name name = Name.upperCamel("Dog", "V2"); assertThat(name.toLowerUnderscore()).isEqualTo("dog_v2"); assertThat(name.toUpperUnderscore()).isEqualTo("DOG_V2"); assertThat(name.toLowerCamel()).isEqualTo("dogV2"); assertThat(name.toUpperCamel()).isEqualTo("DogV2"); }
@Test public void testSingleWord() { Name name = Name.from("dog"); assertThat(name.toLowerUnderscore()).isEqualTo("dog"); assertThat(name.toUpperUnderscore()).isEqualTo("DOG"); assertThat(name.toLowerCamel()).isEqualTo("dog"); assertThat(name.toUpperCamel()).isEqualTo("Dog"); }
@Test public void testWordAndNumber() { Name name = Name.from("dog", "2"); assertThat(name.toLowerUnderscore()).isEqualTo("dog_2"); assertThat(name.toUpperUnderscore()).isEqualTo("DOG_2"); assertThat(name.toLowerCamel()).isEqualTo("dog2"); assertThat(name.toUpperCamel()).isEqualTo("Dog2"); }
@Test public void testFromLowerCamel() { Name name = Name.lowerCamel("factoryDecorator", "delegateImpl"); assertThat(name.toLowerUnderscore()).isEqualTo("factory_decorator_delegate_impl"); assertThat(name.toUpperUnderscore()).isEqualTo("FACTORY_DECORATOR_DELEGATE_IMPL"); assertThat(name.toLowerCamel()).isEqualTo("factoryDecoratorDelegateImpl"); assertThat(name.toUpperCamel()).isEqualTo("FactoryDecoratorDelegateImpl"); }
@Test public void separateAcronyms() { Name name = Name.upperCamel("IAM", "HTTP", "XML", "Dog"); assertThat(name.toLowerUnderscore()).isEqualTo("iam_http_xml_dog"); assertThat(name.toUpperUnderscore()).isEqualTo("IAM_HTTP_XML_DOG"); assertThat(name.toLowerCamel()).isEqualTo("iamHttpXmlDog"); assertThat(name.toUpperCamel()).isEqualTo("IamHttpXmlDog"); }
@Test public void upperCamelUpperAcronymsCombined() { Name name = Name.upperCamelKeepUpperAcronyms("IAMHTTPXML"); assertThat(name.toLowerUnderscore()).isEqualTo("iam_http_xml"); assertThat(name.toUpperUnderscore()).isEqualTo("IAM_HTTP_XML"); assertThat(name.toLowerCamel()).isEqualTo("iamHTTPXML"); assertThat(name.toUpperCamel()).isEqualTo("IAMHTTPXML"); } }
@Test public void testEmpty() { Name name = Name.from(); assertThat(name.toLowerUnderscore()).isEqualTo(""); assertThat(name.toUpperUnderscore()).isEqualTo(""); assertThat(name.toLowerCamel()).isEqualTo(""); assertThat(name.toUpperCamel()).isEqualTo(""); }
@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"); }
@Test public void combinedAcronyms() { Name name = Name.upperCamel("IAMHTTPXML"); assertThat(name.toLowerUnderscore()).isEqualTo("iam_http_xml"); assertThat(name.toUpperUnderscore()).isEqualTo("IAM_HTTP_XML"); assertThat(name.toLowerCamel()).isEqualTo("iamHttpXml"); assertThat(name.toUpperCamel()).isEqualTo("IamHttpXml"); }
@Test public void upperCamelUpperAcronymsSeparate() { Name name = Name.upperCamelKeepUpperAcronyms("IAM", "HTTP", "XML", "Dog"); assertThat(name.toLowerUnderscore()).isEqualTo("iam_http_xml_dog"); assertThat(name.toUpperUnderscore()).isEqualTo("IAM_HTTP_XML_DOG"); assertThat(name.toLowerCamel()).isEqualTo("iamHTTPXMLDog"); assertThat(name.toUpperCamel()).isEqualTo("IAMHTTPXMLDog"); }