Author: mark.proctor at jboss.com
Date: 2007-07-28 21:12:53 -0400 (Sat, 28 Jul 2007)
New Revision: 13824
Added:
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/NumberGuessExample.java
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.drl
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.rf
labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.rfm
Log:
JBRULES-1039 Add Number Guess example with Rule Flow
Added: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/NumberGuessExample.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/NumberGuessExample.java (rev 0)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/java/org/drools/examples/NumberGuessExample.java 2007-07-29 01:12:53 UTC (rev 13824)
@@ -0,0 +1,126 @@
+package org.drools.examples;
+
+import java.io.InputStreamReader;
+import java.util.Random;
+
+import org.drools.RuleBase;
+import org.drools.RuleBaseFactory;
+import org.drools.StatefulSession;
+import org.drools.WorkingMemory;
+import org.drools.compiler.PackageBuilder;
+import org.drools.event.DefaultRuleFlowEventListener;
+import org.drools.event.RuleFlowEventListener;
+import org.drools.event.RuleFlowGroupDeactivatedEvent;
+
+public class NumberGuessExample {
+
+ public static final void main(String[] args) throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( ShoppingExample.class.getResourceAsStream( "NumberGuess.drl" ) ) );
+
+ builder.addRuleFlow( new InputStreamReader( ShoppingExample.class.getResourceAsStream( "NumberGuess.rfm" ) ) );
+
+ final RuleBase ruleBase = RuleBaseFactory.newRuleBase();
+ ruleBase.addPackage( builder.getPackage() );
+
+ final StatefulSession session = ruleBase.newStatefulSession();
+
+ session.insert( new GameRules( 100,
+ 5 ) );
+ session.insert( new RandomNumber() );
+ session.insert( new Game() );
+
+ session.startProcess( "Number Guess" );
+ session.fireAllRules();
+
+ session.dispose();
+ }
+
+ public static class RandomNumber {
+ private int randomNumber;
+
+ public RandomNumber() {
+ this.randomNumber = new Random().nextInt( 100 );
+ }
+
+ public int getValue() {
+ return this.randomNumber;
+ }
+ }
+
+ public static class Guess {
+ private int value;
+
+ public Guess(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return this.value;
+ }
+
+ public String toString() {
+ return "Guess " + this.value;
+ }
+ }
+
+ public static class GameRules {
+ private int maxRange;
+ private int allowedGuesses;
+
+ public GameRules(int maxRange,
+ int allowedGuesses) {
+ this.maxRange = maxRange;
+ this.allowedGuesses = allowedGuesses;
+ }
+
+ public int getAllowedGuesses() {
+ return allowedGuesses;
+ }
+
+ public int getMaxRange() {
+ return maxRange;
+ }
+
+ }
+
+ public static class Game {
+ private int biggest;
+ private int smallest;
+ private int guessCount;
+
+ public void begin() {
+ this.guessCount = 0;
+ this.biggest = 0;
+ this.smallest = 100;
+ }
+
+ public void incrementGuessCount() {
+ guessCount++;
+ }
+
+ public int getBiggest() {
+ return this.biggest;
+ }
+
+ public int getSmallest() {
+ return this.smallest;
+ }
+
+ public int getGuessCount() {
+ return this.guessCount;
+ }
+
+ public void setGuessCount(int guessCount) {
+ this.guessCount = guessCount;
+ }
+
+ public void setBiggest(int biggest) {
+ this.biggest = biggest;
+ }
+
+ public void setSmallest(int smallest) {
+ this.smallest = smallest;
+ }
+ }
+}
Added: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.drl
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.drl (rev 0)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.drl 2007-07-29 01:12:53 UTC (rev 13824)
@@ -0,0 +1,92 @@
+package org.drools.examples
+
+dialect "mvel"
+
+import org.drools.examples.NumberGuessExample.RandomNumber
+import org.drools.examples.NumberGuessExample.Guess
+import org.drools.examples.NumberGuessExample.Game
+import org.drools.examples.NumberGuessExample.GameRules
+
+import java.io.InputStreamReader;
+import java.io.BufferedReader;
+
+rule "Get user Guess"
+ ruleflow-group "Guess"
+ no-loop
+ when
+ $r : RandomNumber()
+ rules : GameRules( allowed : allowedGuesses )
+ game : Game( guessCount < allowed )
+ not ( Guess() )
+ then
+ System.out.println( "You have " + ( rules.allowedGuesses - game.guessCount ) + " out of " + rules.allowedGuesses + " guesses left.\nPlease enter your guess from 0 to " + rules.maxRange );
+ br = new BufferedReader( new InputStreamReader( System.in ) );
+
+ game.guessCount = game.guessCount + 1;
+ update( game );
+ i = br.readLine();
+ insert( new Guess( i ) );
+end
+
+rule "Record the highest Guess"
+ ruleflow-group "To High"
+ no-loop
+ when
+ game : Game( biggestGuess : biggest )
+ Guess( $value : value > biggestGuess )
+ then
+ with ( game ) { biggest = $value };
+ update ( game );
+end
+
+rule "Notify too high"
+ ruleflow-group "To High"
+ when
+ Guess()
+ then
+ System.out.println( "Your guess was too high" );
+end
+
+rule "Record the lowest Guess"
+ ruleflow-group "To Low"
+ no-loop
+ when
+ Game( smallestGuess : smallest )
+ Guess( $value : value < smallestGuess )
+ then
+ with ( game ) { smallest = $value };
+ update ( game );
+end
+
+rule "Notify too low"
+ ruleflow-group "To Low"
+ when
+ Guess()
+ then
+ System.out.println( "Your guess was too low" );
+end
+
+rule "Guess correct ntofication"
+ ruleflow-group "Guess correct"
+ when
+ then
+ System.out.println( "You guessed correctly" );
+end
+
+rule "Guess incorrect, retract Guess"
+ ruleflow-group "Guess incorrect"
+ when
+ guess : Guess()
+ then
+ retract( guess );
+end
+
+
+rule "No more Guesses ntofication"
+ ruleflow-group "No more Guesses"
+ when
+ $r : RandomNumber()
+ then
+ System.out.println( "You have no more guesses\nThe correct guess was " + $r.value );
+end
+
Added: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.rf
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.rf (rev 0)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.rf 2007-07-29 01:12:53 UTC (rev 13824)
@@ -0,0 +1,840 @@
+<org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper id="1" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ProcessWrapper>
+ <default>
+ <elements id="2">
+ <entry>
+ <string>5-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.EndNodeWrapper id="3" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="4">
+ <x>473</x>
+ <y>392</y>
+ <width>80</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.EndNodeImpl" id="5">
+ <id>5</id>
+ <name>End</name>
+ <incomingConnections id="6">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="7">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.JoinImpl" id="8">
+ <type>2</type>
+ <id>11</id>
+ <name>No more guesses Join</name>
+ <incomingConnections id="9">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="10">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="11">
+ <ruleFlowGroup>Guess correct</ruleFlowGroup>
+ <id>12</id>
+ <name>Guess correct</name>
+ <incomingConnections id="12">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="13">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.SplitImpl" id="14">
+ <type>2</type>
+ <constraints id="15">
+ <entry>
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="16">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.SplitImpl" reference="14"/>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="17">
+ <ruleFlowGroup>To High</ruleFlowGroup>
+ <id>3</id>
+ <name>To High</name>
+ <incomingConnections id="18">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="16"/>
+ </incomingConnections>
+ <outgoingConnections id="19">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="20">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="17"/>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" id="21">
+ <type>2</type>
+ <id>8</id>
+ <name>incorrect guess</name>
+ <incomingConnections id="22">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="20"/>
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="23">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="24">
+ <ruleFlowGroup>To Low</ruleFlowGroup>
+ <id>4</id>
+ <name>To Low</name>
+ <incomingConnections id="25">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="26">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.SplitImpl" reference="14"/>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="24"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </incomingConnections>
+ <outgoingConnections id="27">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="23"/>
+ </outgoingConnections>
+ </from>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" reference="21"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </incomingConnections>
+ <outgoingConnections id="28">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="29">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.JoinImpl" reference="21"/>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="30">
+ <ruleFlowGroup>Guess incorrect</ruleFlowGroup>
+ <id>7</id>
+ <name>Guess incorrect</name>
+ <incomingConnections id="31">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="29"/>
+ </incomingConnections>
+ <outgoingConnections id="32">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="33">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="30"/>
+ <to class="org.drools.ruleflow.core.impl.SplitImpl" id="34">
+ <type>2</type>
+ <constraints id="35">
+ <entry>
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="36">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.SplitImpl" reference="34"/>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="37">
+ <ruleFlowGroup>No more Guesses</ruleFlowGroup>
+ <id>13</id>
+ <name>No more Guesses</name>
+ <incomingConnections id="38">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="36"/>
+ </incomingConnections>
+ <outgoingConnections id="39">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="40">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="37"/>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" reference="8"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ <org.drools.ruleflow.core.impl.ConstraintImpl id="41">
+ <name>No More Guesses</name>
+ <constraint>GameRules( allowed : allowedGuesses )
+Game( guessCount >= allowed )</constraint>
+ <priority>1</priority>
+ </org.drools.ruleflow.core.impl.ConstraintImpl>
+ </entry>
+ <entry>
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="42">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.SplitImpl" reference="34"/>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" id="43">
+ <type>2</type>
+ <id>10</id>
+ <name>More guesses Join</name>
+ <incomingConnections id="44">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="45">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.StartNodeImpl" id="46">
+ <id>1</id>
+ <name>Start</name>
+ <incomingConnections id="47"/>
+ <outgoingConnections id="48">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="45"/>
+ </outgoingConnections>
+ </from>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" reference="43"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="42"/>
+ </incomingConnections>
+ <outgoingConnections id="49">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="50">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.JoinImpl" reference="43"/>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="51">
+ <ruleFlowGroup>Guess</ruleFlowGroup>
+ <id>2</id>
+ <name>Guess</name>
+ <incomingConnections id="52">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="50"/>
+ </incomingConnections>
+ <outgoingConnections id="53">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="54">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="51"/>
+ <to class="org.drools.ruleflow.core.impl.SplitImpl" reference="14"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ <org.drools.ruleflow.core.impl.ConstraintImpl id="55">
+ <name>More guesses</name>
+ <constraint>GameRules( allowed : allowedGuesses )
+Game( guessCount < allowed )</constraint>
+ <priority>1</priority>
+ </org.drools.ruleflow.core.impl.ConstraintImpl>
+ </entry>
+ </constraints>
+ <id>9</id>
+ <name>More Guesses?</name>
+ <incomingConnections id="56">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="33"/>
+ </incomingConnections>
+ <outgoingConnections id="57">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="42"/>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="36"/>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ <org.drools.ruleflow.core.impl.ConstraintImpl id="58">
+ <name>Guess to high</name>
+ <constraint>RandomNumber( randomValue : value )
+Guess( value > randomValue )</constraint>
+ <priority>1</priority>
+ </org.drools.ruleflow.core.impl.ConstraintImpl>
+ </entry>
+ <entry>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="13"/>
+ <org.drools.ruleflow.core.impl.ConstraintImpl id="59">
+ <name>Guess correct</name>
+ <constraint>RandomNumber( randomValue : value )
+Guess( value == randomValue )</constraint>
+ <priority>1</priority>
+ </org.drools.ruleflow.core.impl.ConstraintImpl>
+ </entry>
+ <entry>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="26"/>
+ <org.drools.ruleflow.core.impl.ConstraintImpl id="60">
+ <name>Guess to low</name>
+ <constraint>RandomNumber( randomValue : value )
+Guess( value < randomValue )</constraint>
+ <priority>1</priority>
+ </org.drools.ruleflow.core.impl.ConstraintImpl>
+ </entry>
+ </constraints>
+ <id>6</id>
+ <name>Guess correct?</name>
+ <incomingConnections id="61">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="54"/>
+ </incomingConnections>
+ <outgoingConnections id="62">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="16"/>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="26"/>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="13"/>
+ </outgoingConnections>
+ </from>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="11"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </incomingConnections>
+ <outgoingConnections id="63">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="10"/>
+ </outgoingConnections>
+ </from>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" reference="8"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="40"/>
+ </incomingConnections>
+ <outgoingConnections id="64">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="7"/>
+ </outgoingConnections>
+ </from>
+ <to class="org.drools.ruleflow.core.impl.EndNodeImpl" reference="5"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </incomingConnections>
+ <outgoingConnections id="65"/>
+ </element>
+ <incomingConnections id="66">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="67" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="68"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.JoinWrapper" id="69" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="70">
+ <x>440</x>
+ <y>288</y>
+ <width>142</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.JoinImpl" reference="8"/>
+ <incomingConnections id="71">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="72" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="73"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" id="74" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="75">
+ <x>315</x>
+ <y>288</y>
+ <width>80</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="11"/>
+ <incomingConnections id="76">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="77" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="78"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.SplitWrapper" id="79" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="80">
+ <x>99</x>
+ <y>288</y>
+ <width>103</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.SplitImpl" reference="14"/>
+ <incomingConnections id="81">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="82" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="83"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" id="84" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="85">
+ <x>110</x>
+ <y>204</y>
+ <width>80</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="51"/>
+ <incomingConnections id="86">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="87" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="88"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.JoinWrapper" id="89" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="90">
+ <x>88</x>
+ <y>138</y>
+ <width>125</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.JoinImpl" reference="43"/>
+ <incomingConnections id="91">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="92" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="93"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.StartNodeWrapper" id="94" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="95">
+ <x>110</x>
+ <y>60</y>
+ <width>80</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.StartNodeImpl" reference="46"/>
+ <incomingConnections id="96"/>
+ <outgoingConnections id="97">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="92"/>
+ </outgoingConnections>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ </source>
+ <target class="org.drools.eclipse.flow.ruleflow.core.JoinWrapper" reference="89"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="45"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="98" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="99">
+ <org.eclipse.draw2d.geometry.Point id="100">
+ <x>820</x>
+ <y>155</y>
+ </org.eclipse.draw2d.geometry.Point>
+ </bendpoints>
+ <source class="org.drools.eclipse.flow.ruleflow.core.SplitWrapper" id="101" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="102">
+ <x>774</x>
+ <y>288</y>
+ <width>93</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.SplitImpl" reference="34"/>
+ <incomingConnections id="103">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="104" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="105">
+ <org.eclipse.draw2d.geometry.Point id="106">
+ <x>819</x>
+ <y>581</y>
+ </org.eclipse.draw2d.geometry.Point>
+ </bendpoints>
+ <source class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" id="107" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="108">
+ <x>110</x>
+ <y>561</y>
+ <width>80</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="30"/>
+ <incomingConnections id="109">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="110" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="111"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.JoinWrapper" id="112" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="113">
+ <x>103</x>
+ <y>469</y>
+ <width>95</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.JoinImpl" reference="21"/>
+ <incomingConnections id="114">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="115" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="116"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" id="117" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="118">
+ <x>11</x>
+ <y>392</y>
+ <width>80</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="17"/>
+ <incomingConnections id="119">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="120" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="121"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.SplitWrapper" reference="79"/>
+ <target class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" reference="117"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="16"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </incomingConnections>
+ <outgoingConnections id="122">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="115"/>
+ </outgoingConnections>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ </source>
+ <target class="org.drools.eclipse.flow.ruleflow.core.JoinWrapper" reference="112"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="20"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="123" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="124"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" id="125" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="126">
+ <x>213</x>
+ <y>392</y>
+ <width>80</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="24"/>
+ <incomingConnections id="127">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="128" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="129"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.SplitWrapper" reference="79"/>
+ <target class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" reference="125"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="26"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </incomingConnections>
+ <outgoingConnections id="130">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="123"/>
+ </outgoingConnections>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ </source>
+ <target class="org.drools.eclipse.flow.ruleflow.core.JoinWrapper" reference="112"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="23"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </incomingConnections>
+ <outgoingConnections id="131">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="110"/>
+ </outgoingConnections>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ </source>
+ <target class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" reference="107"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="29"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </incomingConnections>
+ <outgoingConnections id="132">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="104"/>
+ </outgoingConnections>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ </source>
+ <target class="org.drools.eclipse.flow.ruleflow.core.SplitWrapper" reference="101"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="33"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </incomingConnections>
+ <outgoingConnections id="133">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="98"/>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="134" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="135"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.SplitWrapper" reference="101"/>
+ <target class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" id="136" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <default>
+ <constraint id="137">
+ <x>631</x>
+ <y>288</y>
+ <width>102</width>
+ <height>40</height>
+ </constraint>
+ <element class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="37"/>
+ <incomingConnections id="138">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="134"/>
+ </incomingConnections>
+ <outgoingConnections id="139">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper id="140" serialization="custom">
+ <org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <default>
+ <type>1</type>
+ <bendpoints id="141"/>
+ <source class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" reference="136"/>
+ <target class="org.drools.eclipse.flow.ruleflow.core.JoinWrapper" reference="69"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="40"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </outgoingConnections>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ </target>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="36"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </outgoingConnections>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <org.drools.eclipse.flow.ruleflow.core.SplitWrapper>
+ <default/>
+ </org.drools.eclipse.flow.ruleflow.core.SplitWrapper>
+ </source>
+ <target class="org.drools.eclipse.flow.ruleflow.core.JoinWrapper" reference="89"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="42"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </incomingConnections>
+ <outgoingConnections id="142">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="87"/>
+ </outgoingConnections>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ </source>
+ <target class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" reference="84"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="50"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </incomingConnections>
+ <outgoingConnections id="143">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="82"/>
+ </outgoingConnections>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ </source>
+ <target class="org.drools.eclipse.flow.ruleflow.core.SplitWrapper" reference="79"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="54"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </incomingConnections>
+ <outgoingConnections id="144">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="120"/>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="128"/>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="77"/>
+ </outgoingConnections>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ <org.drools.eclipse.flow.ruleflow.core.SplitWrapper>
+ <default/>
+ </org.drools.eclipse.flow.ruleflow.core.SplitWrapper>
+ </source>
+ <target class="org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper" reference="74"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="13"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </incomingConnections>
+ <outgoingConnections id="145">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="72"/>
+ </outgoingConnections>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ </source>
+ <target class="org.drools.eclipse.flow.ruleflow.core.JoinWrapper" reference="69"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="10"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="140"/>
+ </incomingConnections>
+ <outgoingConnections id="146">
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper reference="67"/>
+ </outgoingConnections>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ </source>
+ <target class="org.drools.eclipse.flow.ruleflow.core.EndNodeWrapper" reference="3"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ElementConnection>
+ <org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ <default>
+ <connection class="org.drools.ruleflow.core.impl.ConnectionImpl" reference="7"/>
+ </default>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.ConnectionWrapper>
+ </incomingConnections>
+ <outgoingConnections id="147"/>
+ <parent class="org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper" reference="1"/>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.DefaultElementWrapper>
+ </org.drools.eclipse.flow.ruleflow.core.EndNodeWrapper>
+ </entry>
+ <entry>
+ <string>9-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.SplitWrapper reference="101"/>
+ </entry>
+ <entry>
+ <string>2-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper reference="84"/>
+ </entry>
+ <entry>
+ <string>13-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper reference="136"/>
+ </entry>
+ <entry>
+ <string>4-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper reference="125"/>
+ </entry>
+ <entry>
+ <string>11-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.JoinWrapper reference="69"/>
+ </entry>
+ <entry>
+ <string>12-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper reference="74"/>
+ </entry>
+ <entry>
+ <string>7-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper reference="107"/>
+ </entry>
+ <entry>
+ <string>3-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.RuleSetNodeWrapper reference="117"/>
+ </entry>
+ <entry>
+ <string>6-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.SplitWrapper reference="79"/>
+ </entry>
+ <entry>
+ <string>10-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.JoinWrapper reference="89"/>
+ </entry>
+ <entry>
+ <string>1-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.StartNodeWrapper reference="94"/>
+ </entry>
+ <entry>
+ <string>8-Wrapper</string>
+ <org.drools.eclipse.flow.ruleflow.core.JoinWrapper reference="112"/>
+ </entry>
+ </elements>
+ <process class="org.drools.ruleflow.core.impl.RuleFlowProcessImpl" id="148">
+ <nodes id="149">
+ <entry>
+ <long>4</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="24"/>
+ </entry>
+ <entry>
+ <long>8</long>
+ <org.drools.ruleflow.core.impl.JoinImpl reference="21"/>
+ </entry>
+ <entry>
+ <long>11</long>
+ <org.drools.ruleflow.core.impl.JoinImpl reference="8"/>
+ </entry>
+ <entry>
+ <long>3</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="17"/>
+ </entry>
+ <entry>
+ <long>7</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="30"/>
+ </entry>
+ <entry>
+ <long>12</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="11"/>
+ </entry>
+ <entry>
+ <long>2</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="51"/>
+ </entry>
+ <entry>
+ <long>13</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="37"/>
+ </entry>
+ <entry>
+ <long>9</long>
+ <org.drools.ruleflow.core.impl.SplitImpl reference="34"/>
+ </entry>
+ <entry>
+ <long>6</long>
+ <org.drools.ruleflow.core.impl.SplitImpl reference="14"/>
+ </entry>
+ <entry>
+ <long>1</long>
+ <org.drools.ruleflow.core.impl.StartNodeImpl reference="46"/>
+ </entry>
+ <entry>
+ <long>10</long>
+ <org.drools.ruleflow.core.impl.JoinImpl reference="43"/>
+ </entry>
+ <entry>
+ <long>5</long>
+ <org.drools.ruleflow.core.impl.EndNodeImpl reference="5"/>
+ </entry>
+ </nodes>
+ <variables id="150"/>
+ <lastNodeId>13</lastNodeId>
+ <imports id="151">
+ <string>org.drools.examples.NumberGuessExample.Game</string>
+ <string>org.drools.examples.NumberGuessExample.GameRules</string>
+ <string>org.drools.examples.NumberGuessExample.RandomNumber</string>
+ </imports>
+ <id>Number Guess</id>
+ <name>Number Guess</name>
+ <type>RuleFlow</type>
+ </process>
+ <routerLayout>2</routerLayout>
+ </default>
+ </org.drools.eclipse.flow.common.editor.core.ProcessWrapper>
+</org.drools.eclipse.flow.ruleflow.core.RuleFlowProcessWrapper>
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.rfm
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.rfm (rev 0)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-drl/src/main/rules/org/drools/examples/NumberGuess.rfm 2007-07-29 01:12:53 UTC (rev 13824)
@@ -0,0 +1,305 @@
+<org.drools.ruleflow.core.impl.RuleFlowProcessImpl id="1">
+ <nodes id="2">
+ <entry>
+ <long>4</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl id="3">
+ <ruleFlowGroup>To Low</ruleFlowGroup>
+ <id>4</id>
+ <name>To Low</name>
+ <incomingConnections id="4">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="5">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.SplitImpl" id="6">
+ <type>2</type>
+ <constraints id="7">
+ <entry>
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="8">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.SplitImpl" reference="6"/>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="9">
+ <ruleFlowGroup>To High</ruleFlowGroup>
+ <id>3</id>
+ <name>To High</name>
+ <incomingConnections id="10">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="8"/>
+ </incomingConnections>
+ <outgoingConnections id="11">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="12">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="9"/>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" id="13">
+ <type>2</type>
+ <id>8</id>
+ <name>incorrect guess</name>
+ <incomingConnections id="14">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="12"/>
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="15">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="3"/>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" reference="13"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </incomingConnections>
+ <outgoingConnections id="16">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="17">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.JoinImpl" reference="13"/>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="18">
+ <ruleFlowGroup>Guess incorrect</ruleFlowGroup>
+ <id>7</id>
+ <name>Guess incorrect</name>
+ <incomingConnections id="19">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="17"/>
+ </incomingConnections>
+ <outgoingConnections id="20">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="21">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="18"/>
+ <to class="org.drools.ruleflow.core.impl.SplitImpl" id="22">
+ <type>2</type>
+ <constraints id="23">
+ <entry>
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="24">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.SplitImpl" reference="22"/>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="25">
+ <ruleFlowGroup>No more Guesses</ruleFlowGroup>
+ <id>13</id>
+ <name>No more Guesses</name>
+ <incomingConnections id="26">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="24"/>
+ </incomingConnections>
+ <outgoingConnections id="27">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="28">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="25"/>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" id="29">
+ <type>2</type>
+ <id>11</id>
+ <name>No more guesses Join</name>
+ <incomingConnections id="30">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="31">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="32">
+ <ruleFlowGroup>Guess correct</ruleFlowGroup>
+ <id>12</id>
+ <name>Guess correct</name>
+ <incomingConnections id="33">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="34">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.SplitImpl" reference="6"/>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="32"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </incomingConnections>
+ <outgoingConnections id="35">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="31"/>
+ </outgoingConnections>
+ </from>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" reference="29"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="28"/>
+ </incomingConnections>
+ <outgoingConnections id="36">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="37">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.JoinImpl" reference="29"/>
+ <to class="org.drools.ruleflow.core.impl.EndNodeImpl" id="38">
+ <id>5</id>
+ <name>End</name>
+ <incomingConnections id="39">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="37"/>
+ </incomingConnections>
+ <outgoingConnections id="40"/>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ <org.drools.ruleflow.core.impl.ConstraintImpl id="41">
+ <name>No More Guesses</name>
+ <constraint>GameRules( allowed : allowedGuesses )
+Game( guessCount >= allowed )</constraint>
+ <priority>1</priority>
+ </org.drools.ruleflow.core.impl.ConstraintImpl>
+ </entry>
+ <entry>
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="42">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.SplitImpl" reference="22"/>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" id="43">
+ <type>2</type>
+ <id>10</id>
+ <name>More guesses Join</name>
+ <incomingConnections id="44">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="45">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.StartNodeImpl" id="46">
+ <id>1</id>
+ <name>Start</name>
+ <incomingConnections id="47"/>
+ <outgoingConnections id="48">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="45"/>
+ </outgoingConnections>
+ </from>
+ <to class="org.drools.ruleflow.core.impl.JoinImpl" reference="43"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="42"/>
+ </incomingConnections>
+ <outgoingConnections id="49">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="50">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.JoinImpl" reference="43"/>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" id="51">
+ <ruleFlowGroup>Guess</ruleFlowGroup>
+ <id>2</id>
+ <name>Guess</name>
+ <incomingConnections id="52">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="50"/>
+ </incomingConnections>
+ <outgoingConnections id="53">
+ <org.drools.ruleflow.core.impl.ConnectionImpl id="54">
+ <type>1</type>
+ <from class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="51"/>
+ <to class="org.drools.ruleflow.core.impl.SplitImpl" reference="6"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ <org.drools.ruleflow.core.impl.ConstraintImpl id="55">
+ <name>More guesses</name>
+ <constraint>GameRules( allowed : allowedGuesses )
+Game( guessCount < allowed )</constraint>
+ <priority>1</priority>
+ </org.drools.ruleflow.core.impl.ConstraintImpl>
+ </entry>
+ </constraints>
+ <id>9</id>
+ <name>More Guesses?</name>
+ <incomingConnections id="56">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="21"/>
+ </incomingConnections>
+ <outgoingConnections id="57">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="42"/>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="24"/>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </outgoingConnections>
+ </to>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ <org.drools.ruleflow.core.impl.ConstraintImpl id="58">
+ <name>Guess to high</name>
+ <constraint>RandomNumber( randomValue : value )
+Guess( value > randomValue )</constraint>
+ <priority>1</priority>
+ </org.drools.ruleflow.core.impl.ConstraintImpl>
+ </entry>
+ <entry>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="34"/>
+ <org.drools.ruleflow.core.impl.ConstraintImpl id="59">
+ <name>Guess correct</name>
+ <constraint>RandomNumber( randomValue : value )
+Guess( value == randomValue )</constraint>
+ <priority>1</priority>
+ </org.drools.ruleflow.core.impl.ConstraintImpl>
+ </entry>
+ <entry>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="5"/>
+ <org.drools.ruleflow.core.impl.ConstraintImpl id="60">
+ <name>Guess to low</name>
+ <constraint>RandomNumber( randomValue : value )
+Guess( value < randomValue )</constraint>
+ <priority>1</priority>
+ </org.drools.ruleflow.core.impl.ConstraintImpl>
+ </entry>
+ </constraints>
+ <id>6</id>
+ <name>Guess correct?</name>
+ <incomingConnections id="61">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="54"/>
+ </incomingConnections>
+ <outgoingConnections id="62">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="8"/>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="5"/>
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="34"/>
+ </outgoingConnections>
+ </from>
+ <to class="org.drools.ruleflow.core.impl.RuleSetNodeImpl" reference="3"/>
+ </org.drools.ruleflow.core.impl.ConnectionImpl>
+ </incomingConnections>
+ <outgoingConnections id="63">
+ <org.drools.ruleflow.core.impl.ConnectionImpl reference="15"/>
+ </outgoingConnections>
+ </org.drools.ruleflow.core.impl.RuleSetNodeImpl>
+ </entry>
+ <entry>
+ <long>8</long>
+ <org.drools.ruleflow.core.impl.JoinImpl reference="13"/>
+ </entry>
+ <entry>
+ <long>11</long>
+ <org.drools.ruleflow.core.impl.JoinImpl reference="29"/>
+ </entry>
+ <entry>
+ <long>3</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="9"/>
+ </entry>
+ <entry>
+ <long>7</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="18"/>
+ </entry>
+ <entry>
+ <long>12</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="32"/>
+ </entry>
+ <entry>
+ <long>2</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="51"/>
+ </entry>
+ <entry>
+ <long>13</long>
+ <org.drools.ruleflow.core.impl.RuleSetNodeImpl reference="25"/>
+ </entry>
+ <entry>
+ <long>9</long>
+ <org.drools.ruleflow.core.impl.SplitImpl reference="22"/>
+ </entry>
+ <entry>
+ <long>6</long>
+ <org.drools.ruleflow.core.impl.SplitImpl reference="6"/>
+ </entry>
+ <entry>
+ <long>1</long>
+ <org.drools.ruleflow.core.impl.StartNodeImpl reference="46"/>
+ </entry>
+ <entry>
+ <long>10</long>
+ <org.drools.ruleflow.core.impl.JoinImpl reference="43"/>
+ </entry>
+ <entry>
+ <long>5</long>
+ <org.drools.ruleflow.core.impl.EndNodeImpl reference="38"/>
+ </entry>
+ </nodes>
+ <variables id="64"/>
+ <lastNodeId>13</lastNodeId>
+ <imports id="65">
+ <string>org.drools.examples.NumberGuessExample.Game</string>
+ <string>org.drools.examples.NumberGuessExample.GameRules</string>
+ <string>org.drools.examples.NumberGuessExample.RandomNumber</string>
+ </imports>
+ <id>Number Guess</id>
+ <name>Number Guess</name>
+ <type>RuleFlow</type>
+</org.drools.ruleflow.core.impl.RuleFlowProcessImpl>
\ No newline at end of file