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 <[EMAIL PROTECTED]>

>
> 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 <[EMAIL PROTECTED]>:
>
>>
>>
>>    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 <[EMAIL PROTECTED]>:
>>
>>> 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
>>> [email protected]
>>> 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
>> [email protected]
>> https://lists.jboss.org/mailman/listinfo/rules-users
>>
>>
>
> _______________________________________________
> rules-users mailing list
> [email protected]
> 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
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to