diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java index 771dcf8efa3d..a475c6c9e752 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java @@ -484,6 +484,9 @@ public String toEnumVarName(String value, String datatype) { var = WordUtils.capitalizeFully(var); var = var.replaceAll("\\W+", ""); + if (var.length() == 0) { + return "EMPTY"; + } if (var.matches("\\d.*")) { return "_" + var; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java index fea63abb1f1e..e1f3ead65b29 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/JavaClientCodegen.java @@ -904,6 +904,9 @@ public String toEnumVarName(String value, String datatype) { // string String var = value.replaceAll("\\W+", "_").replaceAll("_+", "_").toUpperCase(Locale.getDefault()); + if (var.length() == 0) { + return "EMPTY"; + } if (var.matches("\\d.*")) { return "_" + var; } else { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaClientCodegen.java index 97c18f2a5ef6..f02714bd8ba5 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PureCloudJavaClientCodegen.java @@ -9,6 +9,7 @@ import org.openapitools.codegen.*; import org.openapitools.codegen.templating.mustache.PrefixNumberWithValue; import org.openapitools.codegen.templating.mustache.StringReplaceLambda; +import org.openapitools.codegen.templating.mustache.ReplaceEmptyStringWithValueLambda; import org.openapitools.codegen.utils.ModelUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -381,6 +382,7 @@ protected ImmutableMap.Builder addMustacheLambdas() { return super.addMustacheLambdas() .put("replace", new StringReplaceLambda(replaceMap)) + .put("replaceEmptyStringWithEmptyLabel", new ReplaceEmptyStringWithValueLambda("EMPTY")) .put("prefixNumberWithUnderscore", new PrefixNumberWithValue("_", false)) .put("prefixNumberWithWord", new PrefixNumberWithValue("NUMBER_", true)); } diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/ReplaceEmptyStringWithValueLambda.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/ReplaceEmptyStringWithValueLambda.java new file mode 100644 index 000000000000..ebe2f02824a3 --- /dev/null +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/templating/mustache/ReplaceEmptyStringWithValueLambda.java @@ -0,0 +1,54 @@ +/* + * Copyright 2018 OpenAPI-Generator Contributors (https://openapi-generator.tech) + * Copyright 2018 SmartBear Software + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.openapitools.codegen.templating.mustache; + +import com.samskivert.mustache.Mustache; +import com.samskivert.mustache.Template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Locale; + +/** + * Replace empty string with EMPTY + */ +public class ReplaceEmptyStringWithValueLambda implements Mustache.Lambda { + private String value = "Empty"; + + /** + * Constructs a new instance of {@link ReplaceEmptyStringWithValueLambda} + */ + public ReplaceEmptyStringWithValueLambda(String value) { + this.value = value; + } + + public ReplaceEmptyStringWithValueLambda() { + } + + @Override + public void execute(Template.Fragment fragment, Writer writer) throws IOException { + String text = fragment.execute(); + if (text == null) { + return; + } + if (text.length() == 0) { + text = value; + } + writer.write(text); + } +}