This is an automated email from the ASF dual-hosted git repository. orpiske pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 935893a4690dac3ce78c32f4f9051b4623652bde Author: Otavio Rodolfo Piske <[email protected]> AuthorDate: Wed Aug 21 08:45:11 2024 +0200 (chores) core/camel-core-languages: minor duplicated code cleanup --- .../language/simple/SimpleExpressionParser.java | 40 ++++++++++++---------- .../language/simple/SimplePredicateParser.java | 21 +----------- 2 files changed, 23 insertions(+), 38 deletions(-) diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java index 63578bfccbc..0d54a822a41 100644 --- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java +++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimpleExpressionParser.java @@ -220,24 +220,7 @@ public class SimpleExpressionParser extends BaseSimpleParser { } sb.append(" + "); } - if (node instanceof LiteralNode) { - exp = StringHelper.removeLeadingAndEndingQuotes(exp); - sb.append("\""); - // " should be escaped to \" - exp = LanguageHelper.escapeQuotes(exp); - // \n \t \r should be escaped - exp = exp.replaceAll("\n", "\\\\n"); - exp = exp.replaceAll("\t", "\\\\t"); - exp = exp.replaceAll("\r", "\\\\r"); - if (exp.endsWith("\\") && !exp.endsWith("\\\\")) { - // there is a single trailing slash which we need to escape - exp += "\\"; - } - sb.append(exp); - sb.append("\""); - } else { - sb.append(exp); - } + parseLiteralNode(sb, node, exp); } } String code = sb.toString(); @@ -246,6 +229,27 @@ public class SimpleExpressionParser extends BaseSimpleParser { return code; } + static void parseLiteralNode(StringBuilder sb, SimpleNode node, String exp) { + if (node instanceof LiteralNode) { + exp = StringHelper.removeLeadingAndEndingQuotes(exp); + sb.append("\""); + // " should be escaped to \" + exp = LanguageHelper.escapeQuotes(exp); + // \n \t \r should be escaped + exp = exp.replaceAll("\n", "\\\\n"); + exp = exp.replaceAll("\t", "\\\\t"); + exp = exp.replaceAll("\r", "\\\\r"); + if (exp.endsWith("\\") && !exp.endsWith("\\\\")) { + // there is a single trailing slash which we need to escape + exp += "\\"; + } + sb.append(exp); + sb.append("\""); + } else { + sb.append(exp); + } + } + // -------------------------------------------------------------- // grammar // -------------------------------------------------------------- diff --git a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java index 1ba3f142fca..75173661213 100644 --- a/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java +++ b/core/camel-core-languages/src/main/java/org/apache/camel/language/simple/SimplePredicateParser.java @@ -50,9 +50,7 @@ import org.apache.camel.language.simple.types.SimpleParserException; import org.apache.camel.language.simple.types.SimpleToken; import org.apache.camel.language.simple.types.TokenType; import org.apache.camel.support.ExpressionToPredicateAdapter; -import org.apache.camel.support.LanguageHelper; import org.apache.camel.support.builder.PredicateBuilder; -import org.apache.camel.util.StringHelper; import static org.apache.camel.support.ObjectHelper.isFloatingNumber; import static org.apache.camel.support.ObjectHelper.isNumber; @@ -168,24 +166,7 @@ public class SimplePredicateParser extends BaseSimpleParser { StringBuilder sb = new StringBuilder(); for (SimpleNode node : nodes) { String exp = node.createCode(expression); - if (node instanceof LiteralNode) { - exp = StringHelper.removeLeadingAndEndingQuotes(exp); - sb.append("\""); - // " should be escaped to \" - exp = LanguageHelper.escapeQuotes(exp); - // \n \t \r should be escaped - exp = exp.replaceAll("\n", "\\\\n"); - exp = exp.replaceAll("\t", "\\\\t"); - exp = exp.replaceAll("\r", "\\\\r"); - if (exp.endsWith("\\") && !exp.endsWith("\\\\")) { - // there is a single trailing slash which we need to escape - exp += "\\"; - } - sb.append(exp); - sb.append("\""); - } else { - sb.append(exp); - } + SimpleExpressionParser.parseLiteralNode(sb, node, exp); } String code = sb.toString(); code = code.replace(BaseSimpleParser.CODE_START, "");
