[rules-users] generic properties

Edson Tirelli tirelli at post.com
Tue Jul 29 09:43:09 EDT 2008


   Hi Thomas and all,

   Drools delegates most of the complex expression evaluation to MVEL and it
seems that it currently does not support variables as indexes in the
map/collection simplified syntax. So, it will not work for now.
   The good news is that we work very close with MVEL's author and if we
kindly ask him (translation: offer him a few drinks and/or gifts) :) he
usually adds support to such things.. ;) if so, just upgrading MVEL
dependency jar will be enough to make it work, no need for a new drools
release (hopefully). I will talk to him.

   Meanwhile, tip for the curious: MVEL has a shell tool quite useful to
play and check such things. Just run org.mvel.MVELSH having the MVEL jar in
your classpath and you can play with it:

Welcome to MVEL!
mvel$ x = new java.util.HashMap()
OUT: {}
mvel$ x["a"] = "p"
OUT: p
mvel$ v="b"
OUT: b
mvel$ x[v]="q"
org.mvel.PropertyAccessException: unable to resolve property: failed to
access property: <<v>> in: class java.util.HashMap
ERROR: unable to resolve token: v
mvel$ w=10
OUT: 10
mvel$ x[w]="r"
org.mvel.PropertyAccessException: unable to resolve property: failed to
access property: <<w>> in: class java.util.HashMap
mvel$ x[10]="r"
OUT: r
mvel$ x
OUT: {a=p, 10=r}
mvel$

   []s
   Edson


2008/7/24 thomas kukofka <thomaskukofka at web.de>

>
> Thanks,
>
> but I've still Problems if I try to use
> io: InputObject ( stringParameters[InputObject.Parameter.ParameterName] ==
> "something")
>
> =>Field/method 'InputObject' not found for class
> 'com.rules.InputObject'Rule Compilation error
>
> Parameter is an enum witch contains all allowed Parameters of InputObject
>
> Kind Regards
> Thomas
>
> 2008/7/23 Edson Tirelli <tirelli at post.com>:
>
>>
>>
>>    If you make your map available through a get, you can use simplified
>> Map syntax like this:
>>
>> public Map getStringParameters() {
>>         return stringParameter;
>>     }
>>
>>
>> io: InputObject ( stringParameters["propertyname"] == "something")
>>
>>    []s
>>    Edson
>>
>> 2008/7/23 thomas kukofka <thomaskukofka at web.de>:
>>
>>> Hello ,
>>>
>>> I just recognized, that this doesn't work. But it is possible to use
>>> plain Java code in the rule, also if-conditions and for and while-loops
>>> etc.. However more Java code makes the rule less readable and elegant.
>>> Is there another possibility to use generic input objects?
>>>
>>> Thomas
>>>
>>>
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>>
>>
>>
>> --
>> Edson Tirelli
>> JBoss Drools Core Development
>> JBoss, a division of Red Hat @ www.jboss.com
>>
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>


-- 
Edson Tirelli
JBoss Drools Core Development
JBoss, a division of Red Hat @ www.jboss.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20080729/e4231269/attachment.html 


More information about the rules-users mailing list