As per my email the other day if you were to write an XSLT here is what it would do

<parameter identifer="person">
   <class>Person</class>
</parameter>

<java:condition>person.getName().equals("tom")</java:condition>
----------------
person : Person()
eval( person.getName().equals("tom")  )
----------------

However that is no longer optimal in Drools 3.0 and should be
Person( name == "tom" )

If you need to bind  then its
p : Person( name  == "tom" )

Mark



Ronald van Kuijk wrote:
AINAE, but it could be as simple as 'replacing' condition with when and
consequence with then, but I'll let the experts tell me.

Ronald

2006/4/13, Dmitry Goldenberg <[EMAIL PROTECTED]>:
I don't understand the relationship between the XML-based DRL notation and
this new lingo with "when" / "then".

With the DRL notation, my understanding is that you write an XML structure
like the one I'm including below.  How does this change with the when/then
notation?  Thanks.


<?xml version="1.0"?>

<rule-set name="SamplePolicyRuleSet"

  xmlns="http://drools.org/rules";

  xmlns:java="http://drools.org/semantics/java";

  xmlns:xs="http://www.w3.org/2001/XMLSchema-instance";

  xs:schemaLocation="http://drools.org/rules rules.xsd
http://drools.org/semantics/java java.xsd">



  <!-- Imports -->

  <java:import>java.lang.Object</java:import>

  <java:import>java.lang.String</java:import>

  <!-- Utility functions -->

  <java:functions>

    public boolean f1(com.weblayers.platform.rule.PolicyExecContextcontext)

    {

        return ...;

    }

    public boolean f2(com.weblayers.platform.rule.PolicyExecContextcontext)

    {

        return ...;

    }

  </java:functions>



  <!-First Rule: IF (P1 AND P2) THEN RETURN OK -->

  <rule name="First Rule">

    <!-- Rule parameters -->

    <parameter identifier="context">

      <class>MyContext</class>

    </parameter>



    <!-- Rule Conditions -->

    <java:condition>

      f1() && f2()

    </java:condition>



    <!-- Rule Consequences -->

    <java:consequence>

       context.setReturn(Constants.OK);

    </java:consequence>

  </rule>



  <!-Second Rule: IF (!(P1 AND P2)) THEN RETURN FAILURE -->

  <rule name="Second Rule">

    <!-- Rule parameters -->

    <parameter identifier="context">

      <class>MyContext</class>

    </parameter>



    <!-- Rule Conditions -->

    <java:condition>

      !(f1() && f2())

    </java:condition>



    <!-- Rule Consequences -->

    <java:consequence>

       context.setVerdict(Constants.FAIL);

    </java:consequence>

  </rule>



</rule-set>







Reply via email to