All pastes #544141 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-06-06 09:33 UTC
rendered paste body
<?xml version="1.0" encoding="UTF-8"?>
<package name="com.sample"
         xmlns="http://drools.org/drools-4.0"
         xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
         xs:schemaLocation="http://drools.org/drools-4.0 drools-4.0.xsd">
         
	<import name="java.util.HashMap" />
	<import name="org.drools.*" />		
	
	<global identifier="x" type="com.sample.X" />		
	<global identifier="yada" type="com.sample.Yada" />
	
	<function return-type="void" name="myFunc">
	    <parameter identifier="foo" type="Bar" />
	    <parameter identifier="bada" type="Bing" />
	    	    
	    <body>
	    	System.out.println("hello world");
		</body>		
	</function>
	
<rule name="simple_rule">
	<rule-attribute name="salience" value="10" />
	<rule-attribute name="no-loop" value="true" />
	<rule-attribute name="agenda-group" value="agenda-group" />
	<rule-attribute name="activation-group" value="activation-group" />

	<lhs>

        <pattern identifier="person" object-type="Person" >
            <or>
                <and>
                    <field-constraint field-name="age">
                        <or>
                            <and>
                                <literal-restriction evaluator="&gt;" value="60" />
                                <literal-restriction evaluator="&lt;" value="70" />
                            </and>
                            <and>
                                <literal-restriction evaluator="&lt;" value="50" />
                                <literal-restriction evaluator="&gt;" value="55" />
                            </and>
                        </or>
                    </field-constraint>

                    <field-constraint field-name="hair">
                        <literal-restriction evaluator="==" value="black" />
                    </field-constraint>
                </and>

                <and>
                    <field-constraint field-name="age">
                        <literal-restriction evaluator="==" value="40" />
                    </field-constraint>

                    <field-constraint field-name="hair">
                        <literal-restriction evaluator="==" value="pink" />
                    </field-constraint>
                </and>

                <and>
                    <field-constraint field-name="age">
                        <literal-restriction evaluator="==" value="12"/>
                    </field-constraint>
                    <field-constraint field-name="hair">
                        <or>
                            <literal-restriction evaluator="==" value="yellow"/>
                            <literal-restriction evaluator="==" value="blue" />
                        </or>
                    </field-constraint>
                </and>
            </or>
        </pattern>


        <pattern identifier="foo3" object-type="Bar" >
			<field-constraint field-name="a">
                <or>
                    <literal-restriction evaluator="==" value="3" />
                    <literal-restriction evaluator="==" value="4" />
                </or>
			</field-constraint>
			<field-constraint field-name="a3"> 
				<literal-restriction evaluator="==" value="hello" />
			</field-constraint>
			<field-constraint field-name="a4"> 
				<literal-restriction evaluator="==" value="null" />
			</field-constraint>
		</pattern>

		<pattern identifier="foo4" object-type="Bar" >
			<field-binding field-name="a" identifier="a4" />
			<field-constraint field-name="a"> 
				<literal-restriction evaluator="!=" value="4" />
				<literal-restriction evaluator="!=" value="5" />
			</field-constraint>
		</pattern>

		<pattern identifier="foo5" object-type="Bar" >
			<field-constraint field-name="b">
                <or>
                    <return-value-restriction evaluator="==" >a4 + 1</return-value-restriction>
                    <variable-restriction evaluator="&gt;" identifier="a4" />
                </or>
			</field-constraint>
		</pattern>

		<pattern identifier="foo6" object-type="Bar" >
			<field-binding field-name="a" identifier="a4" />
			<field-constraint field-name="b"> 
				<literal-restriction evaluator="==" value="6" />
			</field-constraint>
		</pattern>

		<pattern identifier="foo7" object-type="Bar" >
			<field-binding field-name="a" identifier="a4" />
			<field-binding field-name="b" identifier="b4" />
		</pattern>

		<pattern object-type="Baz" > </pattern>
	</lhs>
	<rhs>  
		  if ( a == b ) {
		    assert( foo3 );
		  } else {
		    retract( foo4 );
		  } 
		  System.out.println( a4 );
	</rhs>
</rule>

</package>