Author: janstey
Date: Wed Oct 22 05:46:16 2008
New Revision: 707060

URL: http://svn.apache.org/viewvc?rev=707060&view=rev
Log:
CAMEL-1014 - Add generic type for an expression as a sub element

Added:
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionSubElementType.java
   (with props)
Removed:
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/CompletedPredicate.java
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/HandledPredicate.java
Modified:
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregatorType.java
    
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExceptionType.java
    
activemq/camel/trunk/camel-core/src/main/resources/org/apache/camel/model/jaxb.index

Modified: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregatorType.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregatorType.java?rev=707060&r1=707059&r2=707060&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregatorType.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregatorType.java
 Wed Oct 22 05:46:16 2008
@@ -60,7 +60,7 @@
     @XmlAttribute(required = false)
     private String strategyRef;
     @XmlElement(name = "completedPredicate", required = false)
-    private CompletedPredicate completedPredicate;
+    private ExpressionSubElementType completedPredicate;
 
     public AggregatorType() {
     }
@@ -140,8 +140,8 @@
             Expression aggregateExpression = 
getExpression().createExpression(routeContext);
 
             Predicate predicate = null;
-            if (completedPredicate != null) {
-                predicate = completedPredicate.createPredicate(routeContext);
+            if (getCompletedPredicate() != null) {
+                predicate = 
getCompletedPredicate().createPredicate(routeContext);
             }
             if (predicate != null) {
                 aggregator = new Aggregator(from, processor, 
aggregateExpression, strategy, predicate);
@@ -225,12 +225,12 @@
         this.strategyRef = strategyRef;
     }
 
-    public CompletedPredicate getCompletePredicate() {
-        return completedPredicate;
+    public void setCompletedPredicate(ExpressionSubElementType 
completedPredicate) {
+        this.completedPredicate = completedPredicate;
     }
 
-    public void setCompletePredicate(CompletedPredicate completedPredicate) {
-        this.completedPredicate = completedPredicate;
+    public ExpressionSubElementType getCompletedPredicate() {
+        return completedPredicate;
     }
 
     // Fluent API
@@ -273,7 +273,7 @@
     public ExpressionClause<AggregatorType> completedPredicate() {
         checkNoCompletedPredicate();
         ExpressionClause<AggregatorType> clause = new 
ExpressionClause<AggregatorType>(this);
-        completedPredicate = new CompletedPredicate(clause);
+        setCompletedPredicate(new 
ExpressionSubElementType((Expression)clause));
         return clause;
     }
 
@@ -282,12 +282,12 @@
      */
     public AggregatorType completedPredicate(Predicate predicate) {
         checkNoCompletedPredicate();
-        completedPredicate = new CompletedPredicate(predicate);
+        setCompletedPredicate(new ExpressionSubElementType(predicate));
         return this;
     }
 
     protected void checkNoCompletedPredicate() {
-        if (completedPredicate != null) {
+        if (getCompletedPredicate() != null) {
             throw new IllegalArgumentException("There already is a 
completedPredicate defined for this aggregator: " + this);
         }
     }

Modified: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExceptionType.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExceptionType.java?rev=707060&r1=707059&r2=707060&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExceptionType.java
 (original)
+++ 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExceptionType.java
 Wed Oct 22 05:46:16 2008
@@ -56,7 +56,7 @@
     @XmlElement(name = "redeliveryPolicy", required = false)
     private RedeliveryPolicyType redeliveryPolicy;
     @XmlElement(name = "handled", required = false)
-    private HandledPredicate handled;
+    private ExpressionSubElementType handled;
     @XmlElementRef
     private List<ProcessorType<?>> outputs = new ArrayList<ProcessorType<?>>();
     @XmlTransient
@@ -227,11 +227,11 @@
         return handledPolicy;
     }
 
-    public void setHandled(HandledPredicate handled) {
+    public void setHandled(ExpressionSubElementType handled) {
         this.handled = handled;
     }
 
-    public HandledPredicate getHandled() {
+    public ExpressionSubElementType getHandled() {
         return handled;
     }    
     

Added: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionSubElementType.java
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionSubElementType.java?rev=707060&view=auto
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionSubElementType.java
 (added)
+++ 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionSubElementType.java
 Wed Oct 22 05:46:16 2008
@@ -0,0 +1,93 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.camel.Expression;
+import org.apache.camel.Predicate;
+import org.apache.camel.model.language.ExpressionType;
+import org.apache.camel.spi.RouteContext;
+
+/**
+ * Represents an expression sub element
+ */
[EMAIL PROTECTED](name = "expression")
[EMAIL PROTECTED](XmlAccessType.FIELD)
+public class ExpressionSubElementType {
+    @XmlElementRef
+    private ExpressionType expressionType;
+    @XmlTransient
+    private Expression expression;
+    @XmlTransient
+    private Predicate predicate;
+
+    public ExpressionSubElementType() {
+    }
+
+    public ExpressionSubElementType(Expression expression) {
+        this.expression = expression;
+    }
+
+    public ExpressionSubElementType(Predicate predicate) {
+        this.predicate = predicate;
+    }   
+    
+    public ExpressionType getExpressionType() {
+        return expressionType;
+    }
+
+    public void setExpressionType(ExpressionType expressionType) {
+        this.expressionType = expressionType;
+    }
+
+    public Expression getExpression() {
+        return expression;
+    }   
+    
+    public void setExpression(Expression expression) {
+        this.expression = expression;
+    }
+
+    public void setPredicate(Predicate predicate) {
+        this.predicate = predicate;
+    }
+
+    public Predicate getPredicate() {
+        return predicate;
+    }    
+    
+    public Expression createExpression(RouteContext routeContext) {
+        ExpressionType expressionType = getExpressionType();
+        if (expressionType != null && expression == null) {
+            expression = expressionType.createExpression(routeContext);
+        }
+        return expression;
+    }
+    
+    public Predicate createPredicate(RouteContext routeContext) {
+        ExpressionType expressionType = getExpressionType();
+        if (expressionType != null && getPredicate() == null) {
+            setPredicate(expressionType.createPredicate(routeContext));
+        }
+        return getPredicate();
+    }
+}

Propchange: 
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ExpressionSubElementType.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
activemq/camel/trunk/camel-core/src/main/resources/org/apache/camel/model/jaxb.index
URL: 
http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/resources/org/apache/camel/model/jaxb.index?rev=707060&r1=707059&r2=707060&view=diff
==============================================================================
--- 
activemq/camel/trunk/camel-core/src/main/resources/org/apache/camel/model/jaxb.index
 (original)
+++ 
activemq/camel/trunk/camel-core/src/main/resources/org/apache/camel/model/jaxb.index
 Wed Oct 22 05:46:16 2008
@@ -18,11 +18,11 @@
 BeanRef
 CatchType
 ChoiceType
-CompletedPredicate
 ConvertBodyType
 DelayerType
 Description
 ExceptionType
+ExpressionSubElementType
 FilterType
 FinallyType
 FromType


Reply via email to