可重用的条件/表达式类

时间:2009-05-07 09:53:11

标签: java expression functor

我在某些情况下需要一些类来表示和操作条件(通常在UI中,因此用户通过组合不同的条件类型来构建查询,然后代码可以根据要查询的基础系统对其进行转换,例如lucene和db)。我搜遍了一组可重复使用的类,我确信这必须在许多现有的地方使用(所有表达语言都是初学者),但找不到任何容易使用的东西。我自己最终编写了两次编码,但是对于不重复使用我确定存在的东西感到很难过。

典型需求是:   - 几个运营商:和/或等   - 可变数量的操作数   - 结合条件来构建表达式   - 序列化表达式   - 从/到字符串

解析/格式化表达式

有人找到了类似的东西吗?

4 个答案:

答案 0 :(得分:1)

听起来你可能正在寻找Functors(又称函数对象)。 如果是这样,这SO question将是相关的,wrt。选择:Commons functor(已经提到)是另一种选择,但也有其他选择。

所有函子库都带有框架(非常简单;一元,二元谓词,映射功能,通过链接组合)和最常用的基本函数集。

答案 1 :(得分:0)

这听起来像是在找Hibernate Criteria API之类的东西。缺点是您与数据库绑定甚至更糟糕的是特定的持久性框架实现。它也没有满足你们的所有要求,所以我认为这不是一个好的选择......

答案 2 :(得分:0)

您可以查看ANTLR

答案 3 :(得分:0)

看看Apache Commons Functor。例如。 UnaryPredicateUnaryAndUnaryOr等。内置实现是Serializable,但我不知道从字符串解析。不过,我认为这是你想要的一个非常好的开始。另外,请根据库查看this IBM tutorial