Thanks, I liked it enough myself that I just went ahead and committed it :-)
Based on a couple of conversions over to it, I think it should result in a lot
less typing and better readability.
Regards
Scott
On 18/04/2010, at 9:48 PM, Jacopo Cappellato wrote:
> Very cool, Scott!
>
> Jacopo
>
> On Apr 18, 2010, at 11:39 AM, Scott Gray wrote:
>
>> 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
