This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new 541b9cc  CAMEL-17046: Special language builder
541b9cc is described below

commit 541b9cc6d4716cf0a3c944c356497ec3b73be03d
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Thu Oct 7 07:26:49 2021 +0200

    CAMEL-17046: Special language builder
---
 .../apache/camel/builder/DatasonnetBuilder.java    |  4 ++--
 .../apache/camel/model/ExpressionNodeHelper.java   | 27 ++++++++++++++++++----
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/DatasonnetBuilder.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/DatasonnetBuilder.java
index 4a2ae88..cb711fa 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/builder/DatasonnetBuilder.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/builder/DatasonnetBuilder.java
@@ -26,8 +26,8 @@ import org.apache.camel.spi.Language;
 /**
  * Creates a DataSonnet language builder.
  * <p/>
- * This builder is available in the Java DSL from the {@link RouteBuilder} 
which means that using datasonnet language for
- * {@link Expression}s or {@link Predicate}s is very easy with the help of 
this builder.
+ * This builder is available in the Java DSL from the {@link RouteBuilder} 
which means that using datasonnet language
+ * for {@link Expression}s or {@link Predicate}s is very easy with the help of 
this builder.
  */
 public class DatasonnetBuilder implements Predicate, Expression, 
ExpressionResultTypeAware {
 
diff --git 
a/core/camel-core-model/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
 
b/core/camel-core-model/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
index 4b8d805..556e591 100644
--- 
a/core/camel-core-model/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
+++ 
b/core/camel-core-model/src/main/java/org/apache/camel/model/ExpressionNodeHelper.java
@@ -18,8 +18,10 @@ package org.apache.camel.model;
 
 import org.apache.camel.Expression;
 import org.apache.camel.Predicate;
+import org.apache.camel.builder.DatasonnetBuilder;
 import org.apache.camel.builder.SimpleBuilder;
 import org.apache.camel.builder.ValueBuilder;
+import org.apache.camel.model.language.DatasonnetExpression;
 import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.model.language.SimpleExpression;
 import org.apache.camel.model.language.XPathExpression;
@@ -45,11 +47,19 @@ public final class ExpressionNodeHelper {
     public static ExpressionDefinition toExpressionDefinition(Expression 
expression) {
         if (expression instanceof SimpleBuilder) {
             SimpleBuilder builder = (SimpleBuilder) expression;
-            // only transfer over the expression text and result type from 
SimpleBuilder
-            // as we want to use the definition objects in the route graph
+            // we want to use the definition objects in the route graph
             SimpleExpression answer = new SimpleExpression(builder.getText());
             answer.setResultType(builder.getResultType());
             return answer;
+        } else if (expression instanceof DatasonnetBuilder) {
+            DatasonnetBuilder builder = (DatasonnetBuilder) expression;
+            // we want to use the definition objects in the route graph
+            DatasonnetExpression answer = new 
DatasonnetExpression(builder.getText());
+            answer.setExpression(builder.getText());
+            answer.setResultType(builder.getResultType());
+            answer.setBodyMediaType(builder.getBodyMediaType());
+            answer.setOutputMediaType(builder.getOutputMediaType());
+            return answer;
         } else if (expression instanceof ExpressionResultTypeAware
                 && 
expression.getClass().getName().equals("org.apache.camel.language.xpath.XPathBuilder"))
 {
             ExpressionResultTypeAware aware = (ExpressionResultTypeAware) 
expression;
@@ -83,10 +93,19 @@ public final class ExpressionNodeHelper {
     public static ExpressionDefinition toExpressionDefinition(Predicate 
predicate) {
         if (predicate instanceof SimpleBuilder) {
             SimpleBuilder builder = (SimpleBuilder) predicate;
-            // only transfer over the expression text and result type from 
SimpleBuilder
-            // as we want to use the definition objects in the route graph
+            // we want to use the definition objects in the route graph
             SimpleExpression answer = new SimpleExpression(builder.getText());
             answer.setExpression(builder.getText());
+            answer.setResultType(builder.getResultType());
+            return answer;
+        } else if (predicate instanceof DatasonnetBuilder) {
+            DatasonnetBuilder builder = (DatasonnetBuilder) predicate;
+            // we want to use the definition objects in the route graph
+            DatasonnetExpression answer = new 
DatasonnetExpression(builder.getText());
+            answer.setExpression(builder.getText());
+            answer.setResultType(builder.getResultType());
+            answer.setBodyMediaType(builder.getBodyMediaType());
+            answer.setOutputMediaType(builder.getOutputMediaType());
             return answer;
         } else if (predicate instanceof ExpressionResultTypeAware
                 && 
predicate.getClass().getName().equals("org.apache.camel.language.xpath.XPathBuilder"))
 {

Reply via email to