Skip to content

Commit 8375b96

Browse files
authored
[julia] fix regex escape on server codegen (#21009)
* [julia] fix regex escape on server codegen Fixed escaping of regex patterns on julialang server codegen. * add comment for the escapeRegex method * simplify
1 parent 8e329fe commit 8375b96

File tree

1 file changed

+13
-26
lines changed

1 file changed

+13
-26
lines changed

Diff for: modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractJuliaCodegen.java

+13-26
Original file line numberDiff line numberDiff line change
@@ -454,29 +454,6 @@ public String escapeQuotationMark(String input) {
454454
return input.replace("\"", "\\\"");
455455
}
456456

457-
protected String escapeRegex(String pattern) {
458-
pattern = pattern.replaceAll("\\\\\\\\", "\\\\");
459-
pattern = pattern.replaceAll("^/", "");
460-
pattern = pattern.replaceAll("/$", "");
461-
return pattern;
462-
}
463-
464-
/**
465-
* Convert OpenAPI Parameter object to Codegen Parameter object
466-
*
467-
* @param imports set of imports for library/package/module
468-
* @param param OpenAPI parameter object
469-
* @return Codegen Parameter object
470-
*/
471-
@Override
472-
public CodegenParameter fromParameter(Parameter param, Set<String> imports) {
473-
CodegenParameter parameter = super.fromParameter(param, imports);
474-
if (parameter.pattern != null) {
475-
parameter.pattern = escapeRegex(parameter.pattern);
476-
}
477-
return parameter;
478-
}
479-
480457
/**
481458
* Convert OAS Property schema to Codegen Property object.
482459
* <p>
@@ -498,9 +475,6 @@ public CodegenProperty fromProperty(String name, Schema schema, boolean required
498475
if (needsVarEscape(property.name)) {
499476
property.name = "var\"" + property.name + "\"";
500477
}
501-
if (property.pattern != null) {
502-
property.pattern = escapeRegex(property.pattern);
503-
}
504478
return property;
505479
}
506480

@@ -531,6 +505,19 @@ private void changeParamNames(List<CodegenParameter> paramsList, HashSet<String>
531505
}
532506
}
533507

508+
@Override
509+
public String toRegularExpression(String pattern) {
510+
if (pattern == null) {
511+
return pattern;
512+
}
513+
514+
pattern = escapeText(pattern);
515+
// escapeText unnecessarily escapes `\` such that `\.` in the regex ends up as `\\.` for example.
516+
// we need to restore it back by converting `\\` to `\`
517+
pattern = pattern.replaceAll("\\\\\\\\", "\\\\");
518+
return pattern;
519+
}
520+
534521
/**
535522
* Convert OAS Operation object to Codegen Operation object
536523
*

0 commit comments

Comments
 (0)