[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
This commit is contained in:
Tanmay Mohapatra 2025-04-02 11:20:30 +05:30 committed by GitHub
parent 8e329feb6a
commit 8375b96535
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -454,29 +454,6 @@ public abstract class AbstractJuliaCodegen extends DefaultCodegen {
return input.replace("\"", "\\\"");
}
protected String escapeRegex(String pattern) {
pattern = pattern.replaceAll("\\\\\\\\", "\\\\");
pattern = pattern.replaceAll("^/", "");
pattern = pattern.replaceAll("/$", "");
return pattern;
}
/**
* Convert OpenAPI Parameter object to Codegen Parameter object
*
* @param imports set of imports for library/package/module
* @param param OpenAPI parameter object
* @return Codegen Parameter object
*/
@Override
public CodegenParameter fromParameter(Parameter param, Set<String> imports) {
CodegenParameter parameter = super.fromParameter(param, imports);
if (parameter.pattern != null) {
parameter.pattern = escapeRegex(parameter.pattern);
}
return parameter;
}
/**
* Convert OAS Property schema to Codegen Property object.
* <p>
@ -498,9 +475,6 @@ public abstract class AbstractJuliaCodegen extends DefaultCodegen {
if (needsVarEscape(property.name)) {
property.name = "var\"" + property.name + "\"";
}
if (property.pattern != null) {
property.pattern = escapeRegex(property.pattern);
}
return property;
}
@ -531,6 +505,19 @@ public abstract class AbstractJuliaCodegen extends DefaultCodegen {
}
}
@Override
public String toRegularExpression(String pattern) {
if (pattern == null) {
return pattern;
}
pattern = escapeText(pattern);
// escapeText unnecessarily escapes `\` such that `\.` in the regex ends up as `\\.` for example.
// we need to restore it back by converting `\\` to `\`
pattern = pattern.replaceAll("\\\\\\\\", "\\\\");
return pattern;
}
/**
* Convert OAS Operation object to Codegen Operation object
*