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(a)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(a)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(a)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(a)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(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/rules-users
>
>
_______________________________________________
rules-users mailing list
rules-users(a)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