diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellExperimentalClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellExperimentalClientCodegen.java index ff2e1d0b75ebcf4ae368994c421cf0307346beef..8de0ecb5cdd84107102741896a007ccef57d5b01 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellExperimentalClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/PowerShellExperimentalClientCodegen.java @@ -372,39 +372,75 @@ public class PowerShellExperimentalClientCodegen extends DefaultCodegen implemen "System.Nullable[Boolean]" )); - // https://richardspowershellblog.wordpress.com/2009/05/02/powershell-reserved-words/ + // list of reserved words - must be in lower case reservedWords = new HashSet<String>(Arrays.asList( - "Begin", - "Break", - "Catch", - "Continue", - "Data", - "Do", - "Dynamicparam", - "Else", - "Elseif", - "End", - "Exit", - "Filter", - "Finally", - "For", - "Foreach", - "From", - "Function", - "If", - "In", - "Param", - "Process", - "Return", - "Switch", - "Throw", - "Trap", - "Try", - "Until", - "While", - "Local", - "Private", - "Where" + // https://richardspowershellblog.wordpress.com/2009/05/02/powershell-reserved-words/ + "begin", + "break", + "catch", + "continue", + "data", + "do", + "dynamicparam", + "else", + "elseif", + "end", + "exit", + "filter", + "finally", + "for", + "foreach", + "from", + "function", + "if", + "in", + "param", + "process", + "return", + "switch", + "throw", + "trap", + "try", + "until", + "while", + "local", + "private", + "where", + // special variables + "args", + "consolefilename", + "error", + "event", + "eventargs", + "eventsubscriber", + "executioncontext", + "false", + "foreach", + "home", + "host", + "input", + "lastexitcode", + "matches", + "myinvocation", + "nestedpromptlevel", + "null", + "pid", + "profile", + "pscmdlet", + "pscommandpath", + "psculture", + "psdebugcontext", + "pshome", + "psitem", + "psscriptroot", + "pssenderinfo", + "psuiculture", + "psversiontable", + "sender", + "shellid", + "stacktrace", + "this", + "true" )); defaultIncludes = new HashSet<String>(Arrays.asList( @@ -634,7 +670,7 @@ public class PowerShellExperimentalClientCodegen extends DefaultCodegen implemen @Override public String escapeReservedWord(String name) { - return "_" + name; + return "Var" + name; } /** @@ -654,23 +690,23 @@ public class PowerShellExperimentalClientCodegen extends DefaultCodegen implemen name = name + "_" + modelNameSuffix; } - name = sanitizeName(name); + // camelize the model name + // phone_number => PhoneNumber + name = camelize(sanitizeName(name)); // model name cannot use reserved keyword, e.g. return if (isReservedWord(name)) { - LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + camelize("model_" + name)); - name = "model_" + name; // e.g. return => ModelReturn (after camelize) + LOGGER.warn(name + " (reserved word or special variable name) cannot be used as model name. Renamed to " + camelize("model_" + name)); + name = camelize("model_" + name); // e.g. return => ModelReturn (after camelize) } // model name starts with number if (name.matches("^\\d.*")) { LOGGER.warn(name + " (model name starts with number) cannot be used as model name. Renamed to " + camelize("model_" + name)); - name = "model_" + name; // e.g. 200Response => Model200Response (after camelize) + name = camelize("model_" + name); // e.g. 200Response => Model200Response (after camelize) } - // camelize the model name - // phone_number => PhoneNumber - return camelize(name); + return name; } @Override @@ -736,27 +772,7 @@ public class PowerShellExperimentalClientCodegen extends DefaultCodegen implemen @Override public String toParamName(String name) { - // sanitize name - name = sanitizeName(name); - - // replace - with _ e.g. created-at => created_at - name = name.replaceAll("-", "_"); - - // if it's all upper case, do nothing - if (name.matches("^[A-Z_]*$")) { - return name; - } - - // camelize the variable name - // pet_id => PetId - name = camelize(name, false); - - // for reserved word or word starting with number, append _ - if (isReservedWord(name) || name.matches("^\\d.*")) { - name = escapeReservedWord(name); - } - - return name; + return toVarName(name); } @Override @@ -835,17 +851,13 @@ public class PowerShellExperimentalClientCodegen extends DefaultCodegen implemen // sanitize name name = sanitizeName(name); - // if it's all uppper case, do nothing - if (name.matches("^[A-Z_]*$")) { - return name; - } - // camelize the variable name // pet_id => PetId name = camelize(name); // for reserved word or word starting with number, append _ if (isReservedWord(name) || name.matches("^\\d.*")) { + LOGGER.warn(name + " (reserved word or special variable name) cannot be used in naming. Renamed to " + escapeReservedWord(name)); name = escapeReservedWord(name); } @@ -1028,4 +1040,5 @@ public class PowerShellExperimentalClientCodegen extends DefaultCodegen implemen public String toRegularExpression(String pattern) { return escapeText(pattern); } + } diff --git a/samples/client/petstore/powershell-experimental/src/PSPetstore/PSPetstore.psd1 b/samples/client/petstore/powershell-experimental/src/PSPetstore/PSPetstore.psd1 index a481d378d49a2d62815b0ff9f37e9f6d172b3df3..726f4ea51112527f65decd050a8191e1c0498cae 100644 --- a/samples/client/petstore/powershell-experimental/src/PSPetstore/PSPetstore.psd1 +++ b/samples/client/petstore/powershell-experimental/src/PSPetstore/PSPetstore.psd1 @@ -3,7 +3,7 @@ # # Generated by: OpenAPI Generator Team # -# Generated on: 4/9/20 +# Generated on: 4/10/20 # @{