http://downloads.jboss.com/drools/docs/5.0.1.26597.FINAL/drools-expert/html_single/index.html#d0e3614
http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
public void testGeneratedBeans1()
Edson
2009/10/16 leif hanack
<leif.hanack@hypoport.de>
Hi,
since Drools 5 it is possible to define a dynamic variable holder by
using the declare notation. This feature is really cool.
I can create easily helper rules, that calculate temporary values:
File: calculate_total_amount.drl
declare TotalAmount
amount : Money
end
rule "calculate total amount"
when
..
then
TotalAmount totalAmount = new TotalAmount();
totalAmount.setAmount($calculatedAmount);
insert(totalAmount);
end
Inside another file I use this helper.
File: another_rule.drl
rule "another rule"
when
TotalAmount( amount > 1000)
then
// do s.th.
end
I unit test my rule by querying a fact and verify my assertions. This
works fine, as long as the fact is a class of my factmodel.
Now my question: Is there a way to query a declared class (in this
case TotalAmount)
I tried it with some variations but without success:
import my.package.of.the.rule;
query "get total amount"
amount : TotalAmount()
end
I thought that a declare is compiled to a class, but I can not find it
in the generated classes.
Did you have any help?
An alternative might be to create a holder class. S.th. like that
rule "calculate total amount"
..
then
TotalAmount totalAmount = new TotalAmount();
totalAmount.setAmount($calculatedAmount);
insert(totalAmount);
Holder holder = new Holder();
holder.setObject(totalAmount);
insert(holder);
end
import my.package.holder;
query "get holder"
holder : Holder()
end
Thanks in advance, Leif
_______________________________________________
rules-dev mailing list
rules-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-dev
--
Edson Tirelli
JBoss Drools Core Development
JBoss by Red Hat @ www.jboss.com