Java 骆驼滤波方法签名

Java 骆驼滤波方法签名,java,apache-camel,esb,middleware,Java,Apache Camel,Esb,Middleware,我有一个OrderPOJO,在我的驼峰路线上,我希望通过如下过滤器传递每个Order实例(消息): ExpensiveOrderFilter eof = new ExpensiveOrderFilter(); from("direct:whatever") .filter().method(eof) .to("direct:wherever"); 如果他们的订单#getPrice()超过$100.00,则过滤器应该只允许订单s public class ExpensiveOr

我有一个
Order
POJO,在我的驼峰路线上,我希望通过如下过滤器传递每个
Order
实例(消息):

ExpensiveOrderFilter eof = new ExpensiveOrderFilter();

from("direct:whatever")
    .filter().method(eof)
    .to("direct:wherever");
如果他们的
订单#getPrice()
超过$100.00,则过滤器应该只允许
订单
s

public class ExpensiveOrderFilter {
    public void filterCheapOrders(Order order) {
        if(order.getPrice() < 100.00)
            ???
        else
            ???
    }
}
公共类ExpensiveOrderFilter{
公共无效过滤器过滤器(订单){
if(order.getPrice()<100.00)
???
其他的
???
}
}

filtercheaporters
方法需要什么样的外观才能正确过滤掉“便宜的”(direct:where?提前谢谢

这有两个部分。第一个是
方法(..)
是一种称为谓词的Camel类型。您将调用的任何实际方法都需要返回布尔值,因此:

public class ExpensiveOrderFilter {
    public boolean isCheapOrder(Order order) {
        return order.getPrice() < 100.00;
    }
}
只有廉价订单才会继续。对于直截了当的表达式,您也可以考虑构建到CAMEL中的表达式语言,并跳过Bean:

.filter().simple("${body.price} < 100")
.filter().simple(${body.price}<100”)

Order
参数传递到
isCheapOrder(Order-Order)
方法的何处?是“eof”吗?eof只是ExpensiveOrderFilter的一个实例。Camel将使用bean绑定()将交换的有效负载(orderpojo)传递给Order参数。
.filter().simple("${body.price} < 100")