There were a few quirks with words like "in" and "equals" so I had to go with upper case but it all works now. Here's some example usage code:
import org.ofbiz.entity.condition.EntityConditionBuilder
expBldr = new EntityExpressionBuilder()
// build regular EntityConditions
equalsExp = expBldr.EQUALS(productId: "GZ-1000)
inExp = expBldr.IN(productId: ["GZ-1000", "GZ-1006"])
// build an EntityConditionList
orExp = expBldr.OR() {
EQUALS(productId: "GZ-1000")
IN(productId: ["GZ-1000", "GZ-1006"])
AND() {
LIKE(productName: "%Gizmo%")
LIKE(productName: "%Micro%")
}
}
// you can also build an EntityConditionList by passing a single or list of
EntityConditions
// list
orExp = expBldr.OR([equalsExp, inExpr])
// single
orExp = expBldr.OR(equalsExp)
// add an existing EntityCondition and also some nested ones
orExp = expBldr.OR(equalsExpr) {
IN(productId: ["GZ-1000", "GZ-1006"])
AND() {
LIKE(productName: "%Gizmo%")
LIKE(productName: "%Micro%")
}
}
Regards
Scott
On 18/04/2010, at 5:01 PM, Ean Schuessler wrote:
> That's some very interesting stuff you have going there. I'd definitely use
> that.
>
> ----- "Scott Gray (JIRA)" wrote:
>> [
>> https://issues.apache.org/jira/browse/OFBIZ-1968?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12858261#action_12858261
>> ]
>> Scott Gray commented on OFBIZ-1968:
>> -----------------------------------
>> Here's an example I can actually get to work for building entity
>> expressions:
>> {code}
>> entityCondition = expression.AND() {
>> equals (productId: 12345),
>> in (productId: [1, 2, 3, 4]),
>> like (productId: "1234%"),
>> OR() {
>> equals (productId: "54321"),
>> between (productId: [0, 1, 2, 3, 4, 5])
>> }
>> }
>> {code}
>> Any thoughts?
>
> --
> Ean Schuessler, CTO Brainfood.com
> [email protected] - http://www.brainfood.com - 214-720-0700 x 315
>
>
smime.p7s
Description: S/MIME cryptographic signature
