|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.camel.util.toolbox.FlexibleAggregationStrategy<E>
public class FlexibleAggregationStrategy<E>
The Flexible Aggregation Strategy is a highly customizable, fluently configurable aggregation strategy. It allows you to quickly
allows you to quickly whip up an AggregationStrategy
that is capable of performing the most typical aggregation duties,
with zero Java code.
Predicate
written in any language, such as XPath, OGNL, Simple, Javascript, etc.Collection
type, e.g. in a HashSet, LinkedList, ArrayList, etc.
Nested Class Summary | |
---|---|
static interface |
FlexibleAggregationStrategy.CompletionAwareMixin
|
static interface |
FlexibleAggregationStrategy.TimeoutAwareMixin
|
Constructor Summary | |
---|---|
FlexibleAggregationStrategy()
Initializes a new instance with Object as the castAs type. |
|
FlexibleAggregationStrategy(Class<E> type)
Initializes a new instance with the specified type as the castAs type. |
Method Summary | |
---|---|
FlexibleAggregationStrategy<E> |
accumulateInCollection(Class<? extends Collection> collectionType)
Accumulate the result of the pick expression in a collection of the designated type. |
Exchange |
aggregate(Exchange oldExchange,
Exchange newExchange)
Aggregates an old and new exchange together to create a single combined exchange |
FlexibleAggregationStrategy<E> |
castAs(Class<E> castAs)
Cast the result of the pick expression to this type. |
FlexibleAggregationStrategy<E> |
completionAware(FlexibleAggregationStrategy.CompletionAwareMixin completionMixin)
Plugs in logic to execute when an aggregation batch completes. |
FlexibleAggregationStrategy<E> |
condition(Predicate predicate)
Set a filter condition such as only results satisfying it will be aggregated. |
FlexibleAggregationStrategy<E> |
ignoreInvalidCasts()
Ignores invalid casts instead of throwing an exception if the pick expression result cannot be casted to the specified type. |
void |
onCompletion(Exchange exchange)
The aggregated Exchange has completed
Important: This method must not throw any exceptions. |
FlexibleAggregationStrategy<E> |
pick(Expression expression)
Set an expression to extract the element to be aggregated from the incoming Exchange . |
FlexibleAggregationStrategy<E> |
storeInBody()
Store the result of this Aggregation Strategy (whether an atomic element or a Collection) in the body of the IN message. |
FlexibleAggregationStrategy<E> |
storeInHeader(String headerName)
Store the result of this Aggregation Strategy (whether an atomic element or a Collection) in an IN message header with the designated name. |
FlexibleAggregationStrategy<E> |
storeInProperty(String propertyName)
Store the result of this Aggregation Strategy (whether an atomic element or a Collection) in a property with the designated name. |
FlexibleAggregationStrategy<E> |
storeNulls()
Enables storing null values in the resulting collection. |
void |
timeout(Exchange oldExchange,
int index,
int total,
long timeout)
A timeout occurred. |
FlexibleAggregationStrategy<E> |
timeoutAware(FlexibleAggregationStrategy.TimeoutAwareMixin timeoutMixin)
Plugs in logic to execute when a timeout occurs. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public FlexibleAggregationStrategy()
Object
as the castAs
type.
public FlexibleAggregationStrategy(Class<E> type)
castAs
type.
type
- The castAs type.Method Detail |
---|
public FlexibleAggregationStrategy<E> pick(Expression expression)
Exchange
.
All results are cast to the castAs
type (or the type specified in the constructor).
By default, it picks the full IN message body of the incoming exchange.
expression
- The picking expression.
public FlexibleAggregationStrategy<E> condition(Predicate predicate)
predicate
- The condition.
public FlexibleAggregationStrategy<E> accumulateInCollection(Class<? extends Collection> collectionType)
storeNulls()
option is enabled.
collectionType
- The type of the Collection to aggregate into.
public FlexibleAggregationStrategy<E> storeInProperty(String propertyName)
propertyName
- The property name.
public FlexibleAggregationStrategy<E> storeInHeader(String headerName)
headerName
- The header name.
public FlexibleAggregationStrategy<E> storeInBody()
public FlexibleAggregationStrategy<E> castAs(Class<E> castAs)
castAs
- Type for the cast.
public FlexibleAggregationStrategy<E> storeNulls()
public FlexibleAggregationStrategy<E> ignoreInvalidCasts()
public FlexibleAggregationStrategy<E> timeoutAware(FlexibleAggregationStrategy.TimeoutAwareMixin timeoutMixin)
timeoutMixin
-
public FlexibleAggregationStrategy<E> completionAware(FlexibleAggregationStrategy.CompletionAwareMixin completionMixin)
completionMixin
-
public Exchange aggregate(Exchange oldExchange, Exchange newExchange)
AggregationStrategy
aggregate
in interface AggregationStrategy
oldExchange
- the oldest exchange (is null on first aggregation as we only have the new exchange)newExchange
- the newest exchange (can be null if there was no data possible to acquire)
public void timeout(Exchange oldExchange, int index, int total, long timeout)
TimeoutAwareAggregationStrategy
timeout
in interface TimeoutAwareAggregationStrategy
oldExchange
- the current aggregated exchange, or the original Exchange
if no aggregation
has been done before the timeout occurredindex
- the index, may be -1 if not possible to determine the indextotal
- the total, may be -1 if not possible to determine the totaltimeout
- the timeout value in millis, may be -1 if not possible to determine the timeoutpublic void onCompletion(Exchange exchange)
CompletionAwareAggregationStrategy
Exchange
has completed
Important: This method must not throw any exceptions.
onCompletion
in interface CompletionAwareAggregationStrategy
exchange
- the current aggregated exchange, or the original Exchange
if no aggregation
has been done before the completion occurred
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |