Edson,<br><br>On 6 May 2011 01:14, Edson Tirelli <span dir="ltr"><<a href="mailto:ed.tirelli@gmail.com">ed.tirelli@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><br></div> Wolfgang,<div><br></div><div> These are remaining bugs that must be fixed before final. Goal is to support free form expressions as long as they return a boolean value (for traditional constraints), or any value (for positional). Period.</div>
</blockquote><div><br>(Well, as it's past 5.2.0M2...)<br><br>Given that any expression is valid, will there still be a distinction w.r.t. efficiency, as there was with traditional constraints as opposed to eval()? If yes, how can I tell whether a constraint expression is "good" or "bad"? <br>
<br>One might assume that all legacy forms will be handled as efficiently as now, but it's possible that not only<br> field == ($var + 1)<br>but also<br> field == $var + 1<br>is efficient. Or, similarly,<br> field == $var<br>
and (now) also<br> $var == field<br><br>But certainly not<br> field - 1 == $var<br>Or, at least, not until some later version ;-)<br><br>I repeat this quote (from 5.2.0<font><font size="2"><a> Drools Introduction and General User Guide) </a></font></font>and my question, what does it mean? Where is this "documented"? Is this somehow related to the efficiency issue? <br>
<br><a><quote><br></a><a>As previously we had to document the restricted
limitations of a field constraint on the LHS compared to expressions
used inside of an 'eval' or used on the RHS.</a><a><br> </quote></a><br><br>Wolfgang<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><br></div><div> Edson<br><br><div class="gmail_quote"><div><div></div><div class="h5">2011/5/5 Wolfgang Laun <span dir="ltr"><<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>></span><br>
</div></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="h5">
<h1 style="font-weight: normal;"><font size="2"><a>In the 5.2.0 Drools Introduction and General User Guide</a>, there's section 2.1.3.1, Free Form expressions in Constraints (New Parser). It contains several examples:</font><br>
</h1>#1 Person( age * 2 > $anotherPersonsAge + 2 ) <br>#2 Person( addresses["home"].streetName.startsWith( "High Park" ) )<br>#3 Person( isAdult() )<br><br>#1 does not compile: Unable to build constraint as 'age * 2' is invalid : [Rule name='exa1']<br>
<br>#2 works - although I'd very much prefer not to be swamped with MVEL extensions unless I ask for it.<br><br>#3 does not compile: Unable to Analyse Expression isAdult():<br>[Error: no such identifier: isAdult]<br>
[Near : {... isAdult() ....}]<br>
<br>Neither rule name nor line number is provided.<br><br>Would it please be possible to have a precise statement what one <i>can</i> write as a constraint?<br><a><br><br><quote><br></a><a>As previously we had to document the restricted
limitations of a field constraint on the LHS compared to expressions
used inside of an 'eval' or used on the RHS.</a><a><br> </quote><br><br>I'm sorry, but I do not understand the meaning of this sentence. What does it mean, please?<br><br>Cheers<br>Wolfgang<br>
</a><br></div></div></blockquote></div></div><br></blockquote></div><br>