You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by or...@apache.org on 2023/06/13 11:46:18 UTC
[camel] 06/07: (chores) camel-core-languages: cleanup duplicated code handling escaping quotes
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 ad31ff0a6f84cc94c8dd9fd03354ccaf928366ef
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Tue Jun 13 09:43:23 2023 +0200
(chores) camel-core-languages: cleanup duplicated code handling escaping quotes
---
.../camel/language/simple/SimpleExpressionParser.java | 19 ++-----------------
.../camel/language/simple/SimplePredicateParser.java | 19 ++-----------------
.../java/org/apache/camel/support/LanguageHelper.java | 16 ++++++++++++++++
3 files changed, 20 insertions(+), 34 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 59515f8c8ff..2b512ebea28 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
@@ -33,6 +33,7 @@ import org.apache.camel.language.simple.types.SimpleIllegalSyntaxException;
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.LanguageHelper;
import org.apache.camel.support.builder.ExpressionBuilder;
import org.apache.camel.util.StringHelper;
@@ -223,7 +224,7 @@ public class SimpleExpressionParser extends BaseSimpleParser {
exp = StringHelper.removeLeadingAndEndingQuotes(exp);
sb.append("\"");
// " should be escaped to \"
- exp = escapeQuotes(exp);
+ exp = LanguageHelper.escapeQuotes(exp);
// \n \t \r should be escaped
exp = exp.replaceAll("\n", "\\\\n");
exp = exp.replaceAll("\t", "\\\\t");
@@ -242,22 +243,6 @@ public class SimpleExpressionParser extends BaseSimpleParser {
return sb.toString();
}
- private static String escapeQuotes(String text) {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < text.length(); i++) {
- char prev = i > 0 ? text.charAt(i - 1) : 0;
- char ch = text.charAt(i);
-
- if (ch == '"' && (i == 0 || prev != '\\')) {
- sb.append('\\');
- sb.append('"');
- } else {
- sb.append(ch);
- }
- }
- return sb.toString();
- }
-
// --------------------------------------------------------------
// 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 b68897431b9..83353f65106 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,6 +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;
@@ -173,7 +174,7 @@ public class SimplePredicateParser extends BaseSimpleParser {
exp = StringHelper.removeLeadingAndEndingQuotes(exp);
sb.append("\"");
// " should be escaped to \"
- exp = escapeQuotes(exp);
+ exp = LanguageHelper.escapeQuotes(exp);
// \n \t \r should be escaped
exp = exp.replaceAll("\n", "\\\\n");
exp = exp.replaceAll("\t", "\\\\t");
@@ -191,22 +192,6 @@ public class SimplePredicateParser extends BaseSimpleParser {
return sb.toString();
}
- private static String escapeQuotes(String text) {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < text.length(); i++) {
- char prev = i > 0 ? text.charAt(i - 1) : 0;
- char ch = text.charAt(i);
-
- if (ch == '"' && (i == 0 || prev != '\\')) {
- sb.append('\\');
- sb.append('"');
- } else {
- sb.append(ch);
- }
- }
- return sb.toString();
- }
-
/**
* Parses the tokens and crates the AST nodes.
* <p/>
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java
index 307d5aaf902..3e7e627c195 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/LanguageHelper.java
@@ -184,4 +184,20 @@ public final class LanguageHelper {
}
return answer;
}
+
+ public static String escapeQuotes(String text) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0; i < text.length(); i++) {
+ char prev = i > 0 ? text.charAt(i - 1) : 0;
+ char ch = text.charAt(i);
+
+ if (ch == '"' && (i == 0 || prev != '\\')) {
+ sb.append('\\');
+ sb.append('"');
+ } else {
+ sb.append(ch);
+ }
+ }
+ return sb.toString();
+ }
}