You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2007/11/05 16:29:12 UTC
svn commit: r592048 -
/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregatorType.java
Author: jstrachan
Date: Mon Nov 5 07:29:11 2007
New Revision: 592048
URL: http://svn.apache.org/viewvc?rev=592048&view=rev
Log:
allow predicates to be specified in the DSL for completion of Aggregators
Modified:
activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/AggregatorType.java
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=592048&r1=592047&r2=592048&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 Mon Nov 5 07:29:11 2007
@@ -31,6 +31,7 @@
import org.apache.camel.Predicate;
import org.apache.camel.Processor;
import org.apache.camel.Route;
+import org.apache.camel.builder.ExpressionClause;
import org.apache.camel.impl.RouteContext;
import org.apache.camel.model.language.ExpressionType;
import org.apache.camel.processor.Aggregator;
@@ -169,5 +170,31 @@
setBatchTimeout(batchTimeout);
return this;
}
-
+
+ /**
+ * Sets the predicate used to determine if the aggregation is completed
+ *
+ * @return the clause used to create the predicate
+ */
+ public ExpressionClause<AggregatorType> completedPredicate() {
+ checkNoCompletedPredicate();
+ ExpressionClause<AggregatorType> clause = new ExpressionClause<AggregatorType>(this);
+ completedPredicate = new CompletedPredicate(clause);
+ return clause;
+ }
+
+ /**
+ * Sets the predicate used to determine if the aggregation is completed
+ */
+ public AggregatorType completedPredicate(Predicate predicate) {
+ checkNoCompletedPredicate();
+ completedPredicate = new CompletedPredicate(predicate);
+ return this;
+ }
+
+ protected void checkNoCompletedPredicate() {
+ if (completedPredicate != null) {
+ throw new IllegalArgumentException("There already is a completedPredicate defined for this aggregator: " + this);
+ }
+ }
}