<br> Hi,<br><br> If you are using 4.0.0.M2, I think this will do the job:<br><span lang="EN-GB"><span><br></span></span>function abs( int a, int b ) {<br> return Math.abs( b - a );<br>}<br><br>rule "get closer object"
<br>when<br> $a : Agent( $num1 : num )<br> $b : Poste( $num2 : num )<br> not Poste( $num3 : num -> ( abs( $num1, $num3 ) < Math.abs( $num1, $num2 ) ) )<br>then<br> // do something<br>end<br><br> If you are using
3.0.x, then it would be like:<br><br>function abs( Integer a, Integer b ) {<br>
return Math.abs( b.intValue() - a.intValue() );<br>
}<br>
<br>
rule "get closer object"<br>
when<br>
$a : Agent( $num1 : num )<br>
$b : Poste( $num2 : num )<br>
not Poste( $num3 : num -> ( abs( $num1, $num3 ) < Math.abs( $num1, $num2 ) ) )<br>
then<br>
// do something<br>
end<br>
<br> Hope it helps. Let us know if it works the way you need.<br> <br>
[]s<br> Edson<br><br><br><div><span class="gmail_quote">2007/5/3, l'ami molette <<a href="mailto:l_ami_molette@hotmail.com">l_ami_molette@hotmail.com</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div style="text-align: left;">
<p><span lang="EN-GB">Hi, I'm a
new user of JBossRules, and I have difficulties to solve a problem using
jBossRules.</span></p>
<p><span lang="EN-GB"> </span></p>
<p><span lang="EN-GB">I have two
classes (AClass.java & Bclass.java). Each one have a number (an
"int" value (AClass.getNum() & BClass.getNum())</span></p>
<p><span lang="EN-GB">, and I
want to extract a Aclass & a Bclass witch have the closest numbers. In fact
I want to minimize the value:</span></p>
<p><span lang="EN-GB">Math.abs(AClass.getNum()
- BClass.getNum()).</span></p>
<p><span lang="EN-GB"> </span></p>
<p><span lang="EN-GB">I tried to
write a rule like this:</span></p>
<p><span lang="EN-GB"> </span></p>
<p><span lang="EN-GB">rule
"My rule"</span></p>
<p><span lang="EN-GB"><span> </span>when</span></p>
<p><span lang="EN-GB"><span> </span>ACl : Agent ($AClNum :
num , $AClNom : nom)</span></p>
<p><span lang="EN-GB"><span> </span>BCl : Poste ($BClNum :
num , $BClNom : nom)</span></p>
<p><span lang="EN-GB"><span> </span>BCl2 : Poste ()</span></p>
<p><span lang="EN-GB"><span> </span>not Agent($ACl2Num : num
-> (Aminor(CalculAbsolue($ACl2Num.intValue(),BCl2.getNum()) ,
CalculAbsolue($AClNum.intValue(),$BClNum.intValue()) )))</span></p>
<p><span lang="EN-GB"><span> </span>then</span></p>
<p><span lang="EN-GB"><span> </span>System.out.println("Selected
: "+ ACl.getName() +" "+BCl.getName()+" diff: "+
CalculAbsolue(ACl.getNum(),BCl.getNum()));</span></p>
<p><span lang="EN-GB"><span> </span>retract(ACl);</span></p>
<p><span lang="EN-GB"><span> </span>retract(BCl);</span></p>
<p><span lang="EN-GB">end</span></p>
<p><span lang="EN-GB"> </span></p>
<p><span lang="EN-GB"><span> </span>function int CalculAbsolue(int a, int b){</span></p>
<p><span lang="EN-GB"><span> </span><span> </span>return
Math.abs(b-a);</span></p>
<p><span lang="EN-GB"><span> </span>}</span></p>
<p><span lang="EN-GB"><span> </span></span></p>
<p><span lang="EN-GB"><span> </span>function boolean Aminor(int a, int b){</span></p>
<p><span lang="EN-GB"><span> </span><span> </span>return
a < b;</span></p>
<p><span lang="EN-GB"><span> </span>}</span></p>
<p><span lang="EN-GB"><span> </span></span></p>
<p><span lang="EN-GB"><span> </span>--> But the rule doesn't work.</span></p>
<p><span lang="EN-GB"><span> </span>Does anyone have an idea to solve my
problem?</span></p>
<p><span lang="EN-GB"><span> </span>Thank you very much for your help.</span></p>
<p><span lang="EN-GB"><span> </span>Olivier Lafon </span></p>
<p><span lang="EN-GB"> </span></p>
<p><span lang="EN-GB">PS : (excuse
my English, I'm French)</span></p>
</div><br><hr>Essayez <a href="http://Live.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">Live.com</a>, votre nouvelle page d'accueil ! Personnalisez-la en quelques clics pour retrouver tout ce qui vous intéresse au même endroit.
<a href="http://www.live.com/getstarted" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">au même endroit.</a></div>
<br>_______________________________________________<br>rules-users mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br><a onclick="return top.js.OpenExtLink(window,event,this)" href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">
https://lists.jboss.org/mailman/listinfo/rules-users</a><br><br></blockquote></div><br><br clear="all"><br>-- <br> Edson Tirelli<br> Software Engineer - JBoss Rules Core Developer<br> Office: +55 11 3529-6000<br> Mobile: +55 11 9287-5646
<br> JBoss, a division of Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a>