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 91554c5fb18b16966e05f7883ae43d1c01f1ca41
Author: Otavio Rodolfo Piske <[email protected]>
AuthorDate: Thu Jun 30 13:02:11 2022 +0200

    (chores) camel-route-parser: remove duplicated parsing-related code
---
 .../apache/camel/parser/RouteBuilderParser.java    | 145 +++++++++------------
 1 file changed, 59 insertions(+), 86 deletions(-)

diff --git 
a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java
 
b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java
index 098532aff3f..18fe868d61e 100644
--- 
a/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java
+++ 
b/catalog/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java
@@ -61,17 +61,7 @@ public final class RouteBuilderParser {
             JavaClassSource clazz, String fullyQualifiedFileName,
             boolean includeInlinedRouteBuilders) {
 
-        List<MethodSource<JavaClassSource>> methods = new ArrayList<>();
-        MethodSource<JavaClassSource> method = 
CamelJavaParserHelper.findConfigureMethod(clazz);
-        if (method != null) {
-            methods.add(method);
-        }
-        if (includeInlinedRouteBuilders) {
-            List<MethodSource<JavaClassSource>> inlinedMethods = 
CamelJavaParserHelper.findInlinedConfigureMethods(clazz);
-            if (!inlinedMethods.isEmpty()) {
-                methods.addAll(inlinedMethods);
-            }
-        }
+        List<MethodSource<JavaClassSource>> methods = 
findAllConfigureMethods(clazz, includeInlinedRouteBuilders);
 
         CamelJavaTreeParserHelper parser = new CamelJavaTreeParserHelper();
         List<CamelNodeDetails> list = new ArrayList<>();
@@ -146,10 +136,7 @@ public final class RouteBuilderParser {
             if (!Strings.isNullOrEmpty(uri) && findEndpointByUri(endpoints, 
uri) == null) {
 
                 // we only want the relative dir name from the
-                String fileName = fullyQualifiedFileName;
-                if (fileName.startsWith(baseDir)) {
-                    fileName = fileName.substring(baseDir.length() + 1);
-                }
+                String fileName = parseFileName(baseDir, 
fullyQualifiedFileName);
                 String id = field.getName();
 
                 CamelEndpointDetails detail = new CamelEndpointDetails();
@@ -187,17 +174,7 @@ public final class RouteBuilderParser {
         }
 
         // find all the configure methods
-        List<MethodSource<JavaClassSource>> methods = new ArrayList<>();
-        MethodSource<JavaClassSource> method = 
CamelJavaParserHelper.findConfigureMethod(clazz);
-        if (method != null) {
-            methods.add(method);
-        }
-        if (includeInlinedRouteBuilders) {
-            List<MethodSource<JavaClassSource>> inlinedMethods = 
CamelJavaParserHelper.findInlinedConfigureMethods(clazz);
-            if (!inlinedMethods.isEmpty()) {
-                methods.addAll(inlinedMethods);
-            }
-        }
+        List<MethodSource<JavaClassSource>> methods = 
findAllConfigureMethods(clazz, includeInlinedRouteBuilders);
 
         // look if any of these fields are used in the route only as consumer 
or producer, as then we can
         // determine this to ensure when we edit the endpoint we should only 
the options accordingly
@@ -210,31 +187,9 @@ public final class RouteBuilderParser {
                         unparsable.add(result.getElement());
                     }
                 } else {
-                    String fileName = fullyQualifiedFileName;
-                    if (fileName.startsWith(baseDir)) {
-                        fileName = fileName.substring(baseDir.length() + 1);
-                    }
+                    String fileName = parseFileName(baseDir, 
fullyQualifiedFileName);
 
-                    CamelEndpointDetails detail = new CamelEndpointDetails();
-                    detail.setFileName(fileName);
-                    detail.setClassName(clazz.getQualifiedName());
-                    detail.setMethodName(configureMethod.getName());
-                    detail.setEndpointInstance(null);
-                    detail.setEndpointUri(result.getElement());
-                    int line = findLineNumber(clazz.toUnformattedString(), 
result.getPosition());
-                    if (line > -1) {
-                        detail.setLineNumber("" + line);
-                    }
-                    int lineEnd = findLineNumber(clazz.toUnformattedString(), 
result.getPosition() + result.getLength());
-                    if (lineEnd > -1) {
-                        detail.setLineNumberEnd("" + lineEnd);
-                    }
-                    detail.setAbsolutePosition(result.getPosition());
-                    int linePos = 
findLinePosition(clazz.toUnformattedString(), result.getPosition());
-                    if (linePos > -1) {
-                        detail.setLinePosition(linePos);
-                    }
-                    
detail.setEndpointComponentName(endpointComponentName(result.getElement()));
+                    CamelEndpointDetails detail = 
buildCamelEndpointDetails(clazz, configureMethod, result, fileName);
                     detail.setConsumerOnly(true);
                     detail.setProducerOnly(false);
                     endpoints.add(detail);
@@ -250,31 +205,9 @@ public final class RouteBuilderParser {
                 } else {
                     // the same endpoint uri may be used in multiple places in 
the same route
                     // so we should maybe add all of them
-                    String fileName = fullyQualifiedFileName;
-                    if (fileName.startsWith(baseDir)) {
-                        fileName = fileName.substring(baseDir.length() + 1);
-                    }
+                    String fileName = parseFileName(baseDir, 
fullyQualifiedFileName);
 
-                    CamelEndpointDetails detail = new CamelEndpointDetails();
-                    detail.setFileName(fileName);
-                    detail.setClassName(clazz.getQualifiedName());
-                    detail.setMethodName(configureMethod.getName());
-                    detail.setEndpointInstance(null);
-                    detail.setEndpointUri(result.getElement());
-                    int line = findLineNumber(clazz.toUnformattedString(), 
result.getPosition());
-                    if (line > -1) {
-                        detail.setLineNumber("" + line);
-                    }
-                    int endLine = findLineNumber(clazz.toUnformattedString(), 
result.getPosition() + result.getLength());
-                    if (endLine > -1) {
-                        detail.setLineNumberEnd("" + endLine);
-                    }
-                    detail.setAbsolutePosition(result.getPosition());
-                    int linePos = 
findLinePosition(clazz.toUnformattedString(), result.getPosition());
-                    if (linePos > -1) {
-                        detail.setLinePosition(linePos);
-                    }
-                    
detail.setEndpointComponentName(endpointComponentName(result.getElement()));
+                    CamelEndpointDetails detail = 
buildCamelEndpointDetails(clazz, configureMethod, result, fileName);
                     detail.setConsumerOnly(false);
                     detail.setProducerOnly(true);
                     endpoints.add(detail);
@@ -283,6 +216,55 @@ public final class RouteBuilderParser {
         }
     }
 
+    private static List<MethodSource<JavaClassSource>> findAllConfigureMethods(
+            JavaClassSource clazz, boolean includeInlinedRouteBuilders) {
+        List<MethodSource<JavaClassSource>> methods = new ArrayList<>();
+        MethodSource<JavaClassSource> method = 
CamelJavaParserHelper.findConfigureMethod(clazz);
+        if (method != null) {
+            methods.add(method);
+        }
+        if (includeInlinedRouteBuilders) {
+            List<MethodSource<JavaClassSource>> inlinedMethods = 
CamelJavaParserHelper.findInlinedConfigureMethods(clazz);
+            if (!inlinedMethods.isEmpty()) {
+                methods.addAll(inlinedMethods);
+            }
+        }
+        return methods;
+    }
+
+    private static CamelEndpointDetails buildCamelEndpointDetails(
+            JavaClassSource clazz, MethodSource<JavaClassSource> 
configureMethod, ParserResult result, String fileName) {
+        CamelEndpointDetails detail = new CamelEndpointDetails();
+        detail.setFileName(fileName);
+        detail.setClassName(clazz.getQualifiedName());
+        detail.setMethodName(configureMethod.getName());
+        detail.setEndpointInstance(null);
+        detail.setEndpointUri(result.getElement());
+        int line = findLineNumber(clazz.toUnformattedString(), 
result.getPosition());
+        if (line > -1) {
+            detail.setLineNumber("" + line);
+        }
+        int lineEnd = findLineNumber(clazz.toUnformattedString(), 
result.getPosition() + result.getLength());
+        if (lineEnd > -1) {
+            detail.setLineNumberEnd("" + lineEnd);
+        }
+        detail.setAbsolutePosition(result.getPosition());
+        int linePos = findLinePosition(clazz.toUnformattedString(), 
result.getPosition());
+        if (linePos > -1) {
+            detail.setLinePosition(linePos);
+        }
+        
detail.setEndpointComponentName(endpointComponentName(result.getElement()));
+        return detail;
+    }
+
+    private static String parseFileName(String baseDir, String 
fullyQualifiedFileName) {
+        String fileName = fullyQualifiedFileName;
+        if (fileName.startsWith(baseDir)) {
+            fileName = fileName.substring(baseDir.length() + 1);
+        }
+        return fileName;
+    }
+
     /**
      * Parses the java source class to discover Camel simple expressions.
      *
@@ -299,10 +281,7 @@ public final class RouteBuilderParser {
             List<ParserResult> expressions = 
CamelJavaParserHelper.parseCamelLanguageExpressions(method, "simple");
             for (ParserResult result : expressions) {
                 if (result.isParsed()) {
-                    String fileName = fullyQualifiedFileName;
-                    if (fileName.startsWith(baseDir)) {
-                        fileName = fileName.substring(baseDir.length() + 1);
-                    }
+                    String fileName = parseFileName(baseDir, 
fullyQualifiedFileName);
 
                     CamelSimpleExpressionDetails detail = new 
CamelSimpleExpressionDetails();
                     detail.setFileName(fileName);
@@ -350,10 +329,7 @@ public final class RouteBuilderParser {
             List<ParserResult> expressions = 
CamelJavaParserHelper.parseCamelLanguageExpressions(method, "csimple");
             for (ParserResult result : expressions) {
                 if (result.isParsed()) {
-                    String fileName = fullyQualifiedFileName;
-                    if (fileName.startsWith(baseDir)) {
-                        fileName = fileName.substring(baseDir.length() + 1);
-                    }
+                    String fileName = parseFileName(baseDir, 
fullyQualifiedFileName);
 
                     CamelCSimpleExpressionDetails detail = new 
CamelCSimpleExpressionDetails();
                     detail.setFileName(fileName);
@@ -403,10 +379,7 @@ public final class RouteBuilderParser {
             for (ParserResult result : expressions) {
                 // route ids is assigned in java dsl using the routeId method
                 if (result.isParsed()) {
-                    String fileName = fullyQualifiedFileName;
-                    if (fileName.startsWith(baseDir)) {
-                        fileName = fileName.substring(baseDir.length() + 1);
-                    }
+                    String fileName = parseFileName(baseDir, 
fullyQualifiedFileName);
 
                     CamelRouteDetails detail = new CamelRouteDetails();
                     detail.setFileName(fileName);

Reply via email to