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 2022/06/30 12:01:25 UTC

[camel] 02/03: (chores) camel-route-parser: remove duplicated expression-extracting code

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 8dfc47b00d234ddd9fe988d8099130dab783574a
Author: Otavio Rodolfo Piske <an...@gmail.com>
AuthorDate: Thu Jun 30 13:08:35 2022 +0200

    (chores) camel-route-parser: remove duplicated expression-extracting code
---
 .../camel/parser/helper/CamelJavaParserHelper.java | 45 +++++++++-------------
 1 file changed, 19 insertions(+), 26 deletions(-)

diff --git a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java
index 30d4df5903b..a214cc93a60 100644
--- a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java
+++ b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java
@@ -375,19 +375,7 @@ public final class CamelJavaParserHelper {
                     annotation = field.getAnnotation("org.apache.camel.EndpointInject");
                 }
                 if (annotation != null) {
-                    Expression exp = (Expression) annotation.getInternal();
-                    if (exp instanceof SingleMemberAnnotation) {
-                        exp = ((SingleMemberAnnotation) exp).getValue();
-                    } else if (exp instanceof NormalAnnotation) {
-                        List values = ((NormalAnnotation) exp).values();
-                        for (Object value : values) {
-                            MemberValuePair pair = (MemberValuePair) value;
-                            if ("uri".equals(pair.getName().toString())) {
-                                exp = pair.getValue();
-                                break;
-                            }
-                        }
-                    }
+                    Expression exp = extractExpression(annotation.getInternal());
                     String uri = CamelJavaParserHelper.getLiteralValue(clazz, block, exp);
                     if (!Strings.isNullOrEmpty(uri)) {
                         int position = ((SimpleName) arg).getStartPosition();
@@ -415,6 +403,23 @@ public final class CamelJavaParserHelper {
         uris.add(new ParserResult(node, -1, -1, arg.toString(), false));
     }
 
+    private static Expression extractExpression(Object annotation) {
+        Expression exp = (Expression) annotation;
+        if (exp instanceof SingleMemberAnnotation) {
+            exp = ((SingleMemberAnnotation) exp).getValue();
+        } else if (exp instanceof NormalAnnotation) {
+            List values = ((NormalAnnotation) exp).values();
+            for (Object value : values) {
+                MemberValuePair pair = (MemberValuePair) value;
+                if ("uri".equals(pair.getName().toString())) {
+                    exp = pair.getValue();
+                    break;
+                }
+            }
+        }
+        return exp;
+    }
+
     public static List<ParserResult> parseCamelLanguageExpressions(MethodSource<JavaClassSource> method, String language) {
         List<ParserResult> answer = new ArrayList<>();
 
@@ -630,19 +635,7 @@ public final class CamelJavaParserHelper {
                         boolean valid = "org.apache.camel.EndpointInject".equals(ann.getQualifiedName())
                                 || "org.apache.camel.cdi.Uri".equals(ann.getQualifiedName());
                         if (valid) {
-                            Expression exp = (Expression) ann.getInternal();
-                            if (exp instanceof SingleMemberAnnotation) {
-                                exp = ((SingleMemberAnnotation) exp).getValue();
-                            } else if (exp instanceof NormalAnnotation) {
-                                List values = ((NormalAnnotation) exp).values();
-                                for (Object value : values) {
-                                    MemberValuePair pair = (MemberValuePair) value;
-                                    if ("uri".equals(pair.getName().toString())) {
-                                        exp = pair.getValue();
-                                        break;
-                                    }
-                                }
-                            }
+                            Expression exp = extractExpression(ann.getInternal());
                             if (exp != null) {
                                 return getLiteralValue(clazz, block, exp);
                             }