package org.jentrata.ebms.utils; import org.apache.camel.Exchange; import org.apache.camel.Expression; import org.apache.camel.builder.ValueBuilder; import org.apache.camel.support.ExpressionAdapter; /** * Camel Expression Helpers * * @author aaronwalker */ public class ExpressionHelper { /** * Creates an expression that gets the value of a header and if it is null * it evaluates a default expression * * @param name - header name * @param defaultExpression - default expression to evaluate if the header is null * @return an expression */ public static final Expression headerWithDefault(final String name, final Expression defaultExpression) { return new ValueBuilder(new ExpressionAdapter() { public Object evaluate(Exchange exchange) { Object header = exchange.getIn().getHeader(name); if(header == null) { return defaultExpression.evaluate(exchange,Object.class); } else { return header; } } @Override public String toString() { return "headerWithDefault(" + name + ", " + defaultExpression + ")"; } }); } }