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();
+    }
 }