[jboss-svn-commits] JBL Code SVN: r7834 - in labs/jbossrules/trunk/drools-examples/src/main/rules/org/drools/benchmark: . waltzdb
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Nov 26 09:31:25 EST 2006
Author: mfrandsen
Date: 2006-11-26 09:31:23 -0500 (Sun, 26 Nov 2006)
New Revision: 7834
Added:
labs/jbossrules/trunk/drools-examples/src/main/rules/org/drools/benchmark/waltzdb/
labs/jbossrules/trunk/drools-examples/src/main/rules/org/drools/benchmark/waltzdb/waltzdb.drl
Log:
waltzdb benchmark rules
Added: labs/jbossrules/trunk/drools-examples/src/main/rules/org/drools/benchmark/waltzdb/waltzdb.drl
===================================================================
--- labs/jbossrules/trunk/drools-examples/src/main/rules/org/drools/benchmark/waltzdb/waltzdb.drl 2006-11-26 14:30:29 UTC (rev 7833)
+++ labs/jbossrules/trunk/drools-examples/src/main/rules/org/drools/benchmark/waltzdb/waltzdb.drl 2006-11-26 14:31:23 UTC (rev 7834)
@@ -0,0 +1,954 @@
+#created on: 02/11/2006
+package org.drools.benchmark.waltzdb
+
+import org.drools.benchmark.waltzdb.Stage;
+import org.drools.benchmark.waltzdb.Line;
+import org.drools.benchmark.waltzdb.Edge;
+import org.drools.benchmark.waltzdb.EdgeLabel;
+import org.drools.benchmark.waltzdb.Junction;
+import org.drools.benchmark.waltzdb.Label;
+import org.drools.benchmark.waltzdb.Illegal;
+/*
+# Reverse the edges
+#(p reverse_edges
+# (stage ^value duplicate)
+# (line ^p1 <p1> ^p2 <p2>)
+# -->
+# (make edge ^p1 <p1> ^p2 <p2> ^joined false)
+# (make edge ^p1 <p2> ^p2 <p1> ^joined false)
+# (remove 2))
+*/
+rule "reverse_edges"
+ when
+ Stage( value == Stage.DUPLICATE )
+ $line : Line( $p1:p1, $p2:p2 )
+ then
+ System.out.println( "Edge " + $p1 + " " + $p2 );
+ System.out.println( "Edge " + $p2 + " " + $p1 );
+ assert( new Edge( $p1, $p2, false ) );
+ assert( new Edge( $p2, $p1, false ) );
+ retract( $line );
+end
+# Reversing is done
+#(p done_reversing
+# (stage ^value duplicate)
+# - (line)
+# -->
+# (modify 1 ^value detect_junctions))
+rule "done_reversing"
+ when
+ $stage : Stage( value == Stage.DUPLICATE )
+ not ( Line( ) )
+ then
+ $stage.setValue( Stage.DETECT_JUNCTIONS );
+ modify( $stage );
+ System.out.println( "Stage.DETECT_JUNCTIONS" );
+end
+
+/*
+(p make_3_junction
+ (stage ^value detect_junctions)
+ (edge ^p1 <base_point> ^p2 <p1> ^joined false)
+ (edge ^p1 <base_point> ^p2 {<p2> <> <p1>} ^joined false)
+ (edge ^p1 <base_point> ^p2 {<p3> <> <p1> <> <p2>} ^joined false)
+ -->
+ (make junction
+ ^type 3j
+ ^name (make_3_junction <base_point> <p1> <p2> <p3>)
+ ^base_point <base_point>
+ ^visited no)
+ (modify 2 ^type 3j ^joined true)
+ (modify 3 ^type 3j ^joined true)
+ (modify 4 ^type 3j ^joined true))
+*/
+rule "make_3_junction"
+ when
+ Stage( value == Stage.DETECT_JUNCTIONS )
+ $edge1 : Edge( $basePoint : p1, $p1 : p2, joined == false )
+ $edge2 : Edge( p1 == $basePoint, $p2 : p2 != $p1, joined == false )
+ $edge3 : Edge( p1 == $basePoint, $p3 : p2 != $p1, p2 != $p2, joined == false )
+ then
+ Junction junction = new Junction( $basePoint, "3j", "make_3_junction " + $basePoint + " " + $p1 + " " + " " + $p2 + " " + $p3, "no" );
+ assert( junction );
+ System.out.println( junction.toString( ) );
+ $edge1.setJoined( true );
+ $edge1.setType( "3j" );
+ $edge2.setJoined( true );
+ $edge2.setType( "3j" );
+ $edge3.setJoined( true );
+ $edge3.setType( "3j" );
+ modify( $edge1 );
+ modify( $edge2 );
+ modify( $edge3 );
+end
+/*
+(p make_L
+ (stage ^value detect_junctions)
+ (edge ^p1 <base_point> ^p2 <p2> ^joined false)
+ (edge ^p1 <base_point> ^p2 {<p3> <> <p2>} ^joined false)
+ - (edge ^p1 <base_point> ^p2 {<> <p2> <> <p3>})
+ -->
+ (make junction
+ ^type 2j
+ ^name L
+ ^base_point <base_point>
+ ^p1 <p2>
+ ^p2 <p3>
+ ^visited no)
+ (modify 2 ^type 2j ^joined true)
+ (modify 3 ^type 2j ^joined true))
+
+*/
+rule "make_L"
+ when
+ Stage( value == Stage.DETECT_JUNCTIONS )
+ $edge1 : Edge( $basePoint : p1, $p2 : p2, joined == false )
+ $edge2 : Edge( p1 == $basePoint, $p3 : p2 != $p2, joined == false )
+ not( Edge( p1 == $basePoint, p2 != $p2, p2 != $p3 ) )
+ then
+ Junction junction = new Junction( "2j", "L", $basePoint, $p2, $p3, "no" );
+ assert( junction );
+ System.out.println( junction.toString() );
+ $edge1.setJoined( true );
+ $edge1.setType( "2j" );
+ $edge2.setJoined( true );
+ $edge2.setType( "2j" );
+ modify( $edge1 );
+ modify( $edge2 );
+end
+
+/*
+(p done_detecting
+ (stage ^value detect_junctions)
+ - (edge ^joined false)
+ -->
+ (modify 1 ^value find_initial_boundary))
+
+*/
+rule "done_detecting"
+ when
+ $stage : Stage( value == Stage.DETECT_JUNCTIONS )
+ not( Edge ( joined == false ) )
+ then
+ $stage.setValue( Stage.FIND_INITIAL_BOUNDARY );
+ modify( $stage );
+ System.out.println( "Stage: FIND_INITIAL_BOUNDARY" );
+end
+
+/*
+(p initial_boundary_junction_L
+ (stage ^value find_initial_boundary)
+ (junction ^type 2j ^base_point <bp> ^p1 <p1> ^p2 <p2>)
+ (edge ^p1 <bp> ^p2 <p1>)
+ (edge ^p1 <bp> ^p2 <p2>)
+ -(junction ^base_point > <bp>)
+ -->
+ (modify 2 ^visited yes)
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name B ^l_id 1)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name B ^l_id 1)
+ (modify 1 ^value find_second_boundary))
+*/
+rule "initial_boundary_junction_L"
+ when
+ $stage : Stage( value == Stage.FIND_INITIAL_BOUNDARY )
+ $junction : Junction( type == "2j", $basePoint : basePoint, $p1 : p1, $p2 : p2 )
+ Edge( p1 == $basePoint, p2 == $p1 )
+ Edge( p1 == $basePoint, p2 == $p2 )
+ not Junction( type == "2j", basePoint > $basePoint )//type == "2j" not in original
+ then
+ $junction.setVisited( "yes" );
+ modify( $junction );
+ assert( new EdgeLabel( $basePoint, $p1, "B", "1" ) );
+ assert( new EdgeLabel( $basePoint, $p2, "B", "1" ) );
+ $stage.setValue( Stage.FIND_SECOND_BOUDARY );
+ modify( $stage );
+ System.out.println( "Stage.FIND_SECOND_BOUDARY" );
+end
+/*
+
+(p initial_boundary_junction_arrow
+ (stage ^value find_initial_boundary)
+ (junction ^type 3j ^name arrow ^base_point <bp> ^p1 <p1> ^p2 <p2> ^p3 <p3>)
+ (edge ^p1 <bp> ^p2 <p1>)
+ (edge ^p1 <bp> ^p2 <p2>)
+ (edge ^p1 <bp> ^p2 <p3>)
+ -(junction ^base_point > <bp>)
+ -->
+ (modify 2 ^visited yes)
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name B ^l_id 14)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name + ^l_id 14)
+ (make edge_label ^p1 <bp> ^p2 <p3> ^l_name B ^l_id 14)
+ (modify 1 ^value find_second_boundary))
+
+*/
+rule "initial_boundary_junction_arrow"
+ when
+ $stage : Stage( value == Stage.FIND_INITIAL_BOUNDARY )
+ $junction : Junction( type == "3j", name == "arrow", $basePoint : basePoint, $p1 : p1, $p2 : p2, $p3 : p3 )
+ $edge1 : Edge( p1 == $basePoint, p2 == $p1 )
+ $edge2 : Edge( p1 == $basePoint, p2 == $p2 )
+ $edge2 : Edge( p1 == $basePoint, p2 == $p3 )
+ not ( Junction( basePoint > $basePoint ) )
+ then
+ $junction.setVisited( "yes" );
+ modify( $junction );
+ assert( new EdgeLabel( $basePoint, $p1, "B", "14" ) );
+ assert( new EdgeLabel( $basePoint, $p2, "+", "14" ) );
+ assert( new EdgeLabel( $basePoint, $p3, "B", "14" ) );
+ $stage.setValue( Stage.FIND_SECOND_BOUDARY );
+ modify( $stage );
+ System.out.println( "Stage.FIND_SECOND_BOUDARY" );
+end
+
+/*
+(p second_boundary_junction_L
+ (stage ^value find_second_boundary)
+ (junction ^type 2j ^base_point <bp> ^p1 <p1> ^p2 <p2>)
+ (edge ^p1 <bp> ^p2 <p1>)
+ (edge ^p1 <bp> ^p2 <p2>)
+ -(junction ^base_point < <bp>)
+ -->
+ (modify 2 ^visited yes)
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name B ^l_id 1)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name B ^l_id 1)
+ (modify 1 ^value labeling))
+
+
+*/
+rule "second_boundary_junction_L"
+ when
+ $stage : Stage( value == Stage.FIND_SECOND_BOUDARY )
+ $junction : Junction( type == "2j", $basePoint : basePoint, $p1 : p1, $p2 : p2 )
+ Edge( p1 == $basePoint, p2 == $p1)
+ Edge( p1 == $basePoint, p2 == $p2)
+ not (Junction ( basePoint < $basePoint ) )
+ then
+ $junction.setVisited( "yes" );
+ modify( $junction );
+ assert( new EdgeLabel( $basePoint, $p1, "B", "1" ) );
+ assert( new EdgeLabel($basePoint, $p2, "B", "1" ) );
+ $stage.setValue( Stage.LABELING );
+ modify( $stage );
+ System.out.println( "Stage.LABELING" );
+end
+
+/*
+
+(p second_boundary_junction_arrow
+ (stage ^value find_second_boundary)
+ (junction ^type 3j ^name arrow ^base_point <bp> ^p1 <p1> ^p2 <p2> ^p3 <p3>)
+ (edge ^p1 <bp> ^p2 <p1>)
+ (edge ^p1 <bp> ^p2 <p2>)
+ (edge ^p1 <bp> ^p2 <p3>)
+ -(junction ^base_point < <bp>)
+ -->
+ (modify 2 ^visited yes)
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name B ^l_id 14)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name + ^l_id 14)
+ (make edge_label ^p1 <bp> ^p2 <p3> ^l_name B ^l_id 14)
+ (modify 1 ^value labeling))
+
+*/
+rule "second_boundary_junction_arrow"
+ when
+ $stage : Stage( value == Stage.FIND_SECOND_BOUDARY )
+ $junction : Junction( type == "3j", name == "arrow", $basePoint : basePoint, $p1 : p1, $p2 : p2, $p3 : p3 )
+ Edge( p1 == $basePoint, p2 == $p1 )
+ Edge( p1 == $basePoint, p2 == $p2 )
+ Edge( p1 == $basePoint, p2 == $p3 )
+ not ( Junction( basePoint < $basePoint ) )
+ then
+ $junction.setVisited( "yes" );
+ modify( $junction );
+ assert( new EdgeLabel( $basePoint, $p1, "B", "14" ) );
+ assert( new EdgeLabel( $basePoint, $p2, "+", "14" ) );
+ assert( new EdgeLabel( $basePoint, $p3, "B", "14" ) );
+ $stage.setValue( Stage.LABELING );
+ modify( $stage );
+ System.out.println( "Stage.LABELING" );
+end
+
+/*
+(p start_visit_3_junction
+ (stage ^value labeling)
+ (junction ^base_point <bp> ^type 3j ^p1 <p1> ^p2 <p2> ^p3 <p3> ^visited no)
+ -->
+ (modify 1 ^value visiting_3j)
+ (modify 2 ^visited now))
+
+*/
+rule "start_visit_3_junction"
+ when
+ $stage : Stage( value == Stage.LABELING )
+ $junction : Junction( type == "3j", $basePoint : basePoint, $p1 : p1, $p2 : p2, $p3 : p3, visited == "no" )
+ then
+ $stage.setValue( Stage.VISITING_3J );
+ modify( $stage );
+ $junction.setVisited( "now" );
+ modify( $junction );
+ System.out.println( "Stage.VISITING_3J" );
+end
+
+/*
+(p visit_3j_0
+ (stage ^value visiting_3j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^p3 <p3> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2> ^n3 <n3>)
+ (edge_label ^p1 <p1> ^p2 <bp> ^l_name <n1>)
+ (edge_label ^p1 <p2> ^p2 <bp> ^l_name <n2>)
+ (edge_label ^p1 <p3> ^p2 <bp> ^l_name <n3>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ ; (write edge_label <bp> <p3> <n3> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p3> ^l_name <n3> ^l_id <id>))
+
+*/
+rule "visit_3j_0"
+ when
+ Stage( value == Stage.VISITING_3J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, $p3 : p3, visited == "now" )
+ Label(name == $name, $id : id, $n1 : n1, $n2 : n2, $n3 : n3 )
+ EdgeLabel( p1 == $p1, p2 == $basePoint, labelName == $n1 )
+ EdgeLabel( p1 == $p2, p2 == $basePoint, labelName == $n2 )
+ EdgeLabel( p1 == $p3, p2 == $basePoint, labelName == $n3 )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id ) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p3 + " " + $n3 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+ assert( new EdgeLabel( $basePoint, $p3, $n3, $id ) );
+end
+
+/*
+
+(p visit_3j_1
+ (stage ^value visiting_3j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^p3 <p3> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2> ^n3 <n3>)
+ -(edge_label ^p1 <p1> ^p2 <bp>)
+ (edge_label ^p1 <p2> ^p2 <bp> ^l_name <n2>)
+ (edge_label ^p1 <p3> ^p2 <bp> ^l_name <n3>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ ; (write edge_label <bp> <p3> <n3> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p3> ^l_name <n3> ^l_id <id>))
+
+*/
+rule "visit_3j_1"
+ when
+ Stage( value == Stage.VISITING_3J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, $p3 : p3, visited == "now" )
+ Label( name == $name, $id : id, $n1 : n1, $n2 : n2, $n3 : n3 )
+ not ( EdgeLabel( p1 == $p1, p2 == $basePoint ) )
+ EdgeLabel( p1 == $p2, p2 == $basePoint, labelName == $n2 )
+ EdgeLabel( p1 == $p3, p2 == $basePoint, labelName == $n3 )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id ) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p3 + " " + $n3 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+ assert( new EdgeLabel( $basePoint, $p3, $n3, $id ) );
+end
+
+/*
+
+(p visit_3j_2
+ (stage ^value visiting_3j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^p3 <p3> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2> ^n3 <n3>)
+ (edge_label ^p1 <p1> ^p2 <bp> ^l_name <n1>)
+ -(edge_label ^p1 <p2> ^p2 <bp>)
+ (edge_label ^p1 <p3> ^p2 <bp> ^l_name <n3>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ ; (write edge_label <bp> <p3> <n3> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p3> ^l_name <n3> ^l_id <id>))
+
+*/
+rule "visit_3j_2"
+ when
+ Stage( value == Stage.VISITING_3J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, $p3 : p3, visited == "now" )
+ Label( name == $name, $id : id, $n1 : n1, $n2 : n2, $n3 : n3 )
+ EdgeLabel( p1 == $p1, p2 == $basePoint, labelName == $n1 )
+ not ( EdgeLabel( p1 == $p2, p2 == $basePoint ) )
+ EdgeLabel( p1 == $p3, p2 == $basePoint, labelName == $n3 )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id ) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p3 + " " + $n3 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+ assert( new EdgeLabel( $basePoint, $p3, $n3, $id ) );
+end
+
+/*
+
+(p visit_3j_3
+ (stage ^value visiting_3j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^p3 <p3> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2> ^n3 <n3>)
+ -(edge_label ^p1 <p1> ^p2 <bp>)
+ -(edge_label ^p1 <p2> ^p2 <bp>)
+ (edge_label ^p1 <p3> ^p2 <bp> ^l_name <n3>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ ; (write edge_label <bp> <p3> <n3> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p3> ^l_name <n3> ^l_id <id>))
+
+*/
+rule "visit_3j_3"
+ when
+ Stage( value == Stage.VISITING_3J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, $p3 : p3, visited == "now" )
+ Label( name == $name, $id : id, $n1 : n1, $n2 : n2, $n3 : n3 )
+ not ( EdgeLabel( p1 == $p1, p2 == $basePoint ) )
+ not ( EdgeLabel( p1 == $p2, p2 == $basePoint ) )
+ EdgeLabel( p1 == $p3, p2 == $basePoint, labelName == $n3 )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p3 + " " + $n3 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+ assert( new EdgeLabel( $basePoint, $p3, $n3, $id ) );
+end
+
+/*
+
+(p visit_3j_4
+ (stage ^value visiting_3j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^p3 <p3> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2> ^n3 <n3>)
+ (edge_label ^p1 <p1> ^p2 <bp> ^l_name <n1>)
+ (edge_label ^p1 <p2> ^p2 <bp> ^l_name <n2>)
+ -(edge_label ^p1 <p3> ^p2 <bp>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ ; (write edge_label <bp> <p3> <n3> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p3> ^l_name <n3> ^l_id <id>))
+
+*/
+rule "visit_3j_4"
+ when
+ Stage( value == Stage.VISITING_3J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, $p3 : p3, visited == "now" )
+ Label( name == $name, $id : id, $n1 : n1, $n2 : n2, $n3 : n3 )
+ EdgeLabel( p1 == $p1, p2 == $basePoint, labelName == $n1 )
+ EdgeLabel( p1 == $p2, p2 == $basePoint, labelName == $n2 )
+ not ( EdgeLabel( p1 == $p3, p2 == $basePoint) )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p3 + " " + $n3 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+ assert( new EdgeLabel( $basePoint, $p3, $n3, $id ) );
+end
+
+/*
+
+(p visit_3j_5
+ (stage ^value visiting_3j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^p3 <p3> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2> ^n3 <n3>)
+ -(edge_label ^p1 <p1> ^p2 <bp>)
+ (edge_label ^p1 <p2> ^p2 <bp> ^l_name <n2>)
+ -(edge_label ^p1 <p3> ^p2 <bp>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ ; (write edge_label <bp> <p3> <n3> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p3> ^l_name <n3> ^l_id <id>))
+
+*/
+rule "visit_3j_5"
+ when
+ Stage( value == Stage.VISITING_3J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, $p3 : p3, visited == "now" )
+ Label(name == $name, $id : id, $n1 : n1, $n2 : n2, $n3 : n3 )
+ not ( EdgeLabel( p1 == $p1, p2 == $basePoint ) )
+ EdgeLabel( p1 == $p2, p2 == $basePoint, labelName == $n2 )
+ not ( EdgeLabel( p1 == $p3, p2 == $basePoint ) )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id ) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p3 + " " + $n3 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+ assert( new EdgeLabel( $basePoint, $p3, $n3, $id ) );
+end
+
+/*
+
+(p visit_3j_6
+ (stage ^value visiting_3j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^p3 <p3> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2> ^n3 <n3>)
+ (edge_label ^p1 <p1> ^p2 <bp> ^l_name <n1>)
+ -(edge_label ^p1 <p2> ^p2 <bp>)
+ -(edge_label ^p1 <p3> ^p2 <bp>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ ; (write edge_label <bp> <p3> <n3> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p3> ^l_name <n3> ^l_id <id>))
+
+*/
+rule "visit_3j_6"
+ when
+ Stage( value == Stage.VISITING_3J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, $p3 : p3, visited == "now" )
+ Label( name == $name, $id : id, $n1 : n1, $n2 : n2, $n3 : n3 )
+ EdgeLabel( p1 == $p1, p2 == $basePoint, labelName == $n1 )
+ not ( EdgeLabel( p1 == $p2, p2 == $basePoint ) )
+ not ( EdgeLabel( p1 == $p3, p2 == $basePoint ) )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id ) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p3 + " " + $n3 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+ assert( new EdgeLabel( $basePoint, $p3, $n3, $id ) );
+end
+
+/*
+
+(p visit_3j_7
+ (stage ^value visiting_3j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^p3 <p3> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2> ^n3 <n3>)
+ -(edge_label ^p1 <p1> ^p2 <bp>)
+ -(edge_label ^p1 <p2> ^p2 <bp>)
+ -(edge_label ^p1 <p3> ^p2 <bp>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ ; (write edge_label <bp> <p3> <n3> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p3> ^l_name <n3> ^l_id <id>))
+
+*/
+rule "visit_3j_7"
+ when
+ Stage( value == Stage.VISITING_3J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, $p3 : p3, visited == "now" )
+ Label( name == $name, $id : id, $n1 : n1, $n2 : n2, $n3 : n3 )
+ not ( EdgeLabel( p1 == $p1, p2 == $basePoint ) )
+ not ( EdgeLabel( p1 == $p2, p2 == $basePoint ) )
+ not ( EdgeLabel( p1 == $p3, p2 == $basePoint ) )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id ) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p3 + " " + $n3 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+ assert( new EdgeLabel( $basePoint, $p3, $n3, $id ) );
+end
+
+/*
+
+(p start_visit_2_junction
+ (stage ^value labeling)
+ (junction ^base_point <bp> ^type 2j ^p1 <p1> ^p2 <p2> ^visited no)
+ -->
+ (modify 1 ^value visiting_2j)
+ (modify 2 ^visited now))
+
+*/
+rule "start_visit_2_junction"
+ when
+ $stage : Stage( value == Stage.LABELING )
+ $junction : Junction( $basePoint : basePoint, type == "2j", $p1 : p1, $p2 : p2, visited == "no" )
+ then
+ $stage.setValue( Stage.VISITING_2J );
+ modify( $stage );
+ System.out.println( "Stage.VISITING_2J" );
+ $junction.setVisited( "now" );
+ modify( $junction );
+end
+
+/*
+
+(p visit_2j_0
+ (stage ^value visiting_2j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2>)
+ (edge_label ^p1 <p1> ^p2 <bp> ^l_name <n1>)
+ (edge_label ^p1 <p2> ^p2 <bp> ^l_name <n2>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ ; (write edge_label <bp> <p3> <n3> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>))
+
+*/
+rule "visit_2j_0"
+ when
+ Stage( value == Stage.VISITING_2J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, visited == "now" )
+ Label(name == $name, $id : id, $n1 : n1, $n2 : n2 )
+ EdgeLabel( p1 == $p1, p2 == $basePoint, labelName == $n1 )
+ EdgeLabel( p1 == $p2, p2 == $basePoint, labelName == $n2 )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id ) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+end
+
+/*
+
+(p visit_2j_1
+ (stage ^value visiting_2j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2>)
+ -(edge_label ^p1 <p1> ^p2 <bp>)
+ (edge_label ^p1 <p2> ^p2 <bp> ^l_name <n2>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>))
+
+*/
+rule "visit_2j_1"
+ when
+ Stage( value == Stage.VISITING_2J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, visited == "now" )
+ Label( name == $name, $id : id, $n1 : n1, $n2 : n2 )
+ not ( EdgeLabel( p1 == $p1, p2 == $basePoint ) )
+ EdgeLabel( p1 == $p2, p2 == $basePoint, labelName == $n2 )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+end
+
+/*
+
+(p visit_2j_2
+ (stage ^value visiting_2j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2>)
+ (edge_label ^p1 <p1> ^p2 <bp> ^l_name <n1>)
+ -(edge_label ^p1 <p2> ^p2 <bp>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>))
+
+*/
+rule "visit_2j_2"
+ when
+ Stage( value == Stage.VISITING_2J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, visited == "now" )
+ Label( name == $name, $id : id, $n1 : n1, $n2 : n2 )
+ EdgeLabel( p1 == $p1, p2 == $basePoint, labelName == $n1 )
+ not ( EdgeLabel( p1 == $p2, p2 == $basePoint) )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+end
+
+/*
+
+(p visit_2j_3
+ (stage ^value visiting_2j)
+ (junction ^name <n> ^base_point <bp> ^p1 <p1> ^p2 <p2> ^visited now)
+ (label ^name <n> ^id <id> ^n1 <n1> ^n2 <n2>)
+ -(edge_label ^p1 <p1> ^p2 <bp>)
+ -(edge_label ^p1 <p2> ^p2 <bp>)
+ -(edge_label ^p1 <bp> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ ; (write edge_label <bp> <p3> <n3> <id> (crlf))
+ (make edge_label ^p1 <bp> ^p2 <p1> ^l_name <n1> ^l_id <id>)
+ (make edge_label ^p1 <bp> ^p2 <p2> ^l_name <n2> ^l_id <id>))
+
+*/
+rule "visit_2j_3"
+ when
+ Stage( value == Stage.VISITING_2J )
+ Junction( $name : name, $basePoint : basePoint, $p1 : p1, $p2 : p2, visited == "now" )
+ Label(name == $name, $id : id, $n1 : n1, $n2 : n2 )
+ not ( EdgeLabel( p1 == $p1, p2 == $basePoint ) )
+ not ( EdgeLabel( p1 == $p2, p2 == $basePoint ) )
+ not ( EdgeLabel( p1 == $basePoint, labelId == $id ) )
+ then
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p1 + " " + $n1 + " " + $id );
+ System.out.println( "EdgeLabel " + $basePoint + " " + $p2 + " " + $n2 + " " + $id );
+ assert( new EdgeLabel( $basePoint, $p1, $n1, $id ) );
+ assert( new EdgeLabel( $basePoint, $p2, $n2, $id ) );
+end
+
+/*
+
+(p end_visit
+ (stage ^value << visiting_3j visiting_2j >>)
+ (junction ^visited now)
+ -->
+ (modify 1 ^value marking))
+
+*/
+rule "end_visit"
+ when
+ $stage : ( Stage( value == Stage.VISITING_2J ) || Stage( value == Stage.VISITING_3J ) )
+ $junction : Junction( visited == "now" )
+ then
+ $stage.setValue( Stage.MARKING );
+ modify( $stage );
+ System.out.println( "Stage.MARKING" );
+end
+/*
+(p marking
+ (stage ^value marking)
+ (junction ^base_point <bp> ^visited now)
+ (edge ^p1 <p> ^p2 <bp>)
+ (junction ^base_point <p> ^visited yes)
+ -->
+ (modify 4 ^visited check))
+
+*/
+rule "marking"
+ when
+ Stage( value == Stage.MARKING )
+ Junction( $basePoint : basePoint, visited == "now" )
+ Edge( $p1 : p1, p2 == $basePoint )
+ $junction : Junction( basePoint == $p1, visited == "yes" )
+ then
+ $junction.setVisited( "check" );
+ modify( $junction );
+end
+
+/*
+
+(p stop_marking
+ (stage ^value marking)
+ (junction ^base_point <bp> ^visited now)
+ -->
+ (modify 2 ^visited yes))
+*/
+rule "stop_marking"
+ when
+ Stage( value == Stage.MARKING )
+ $junction : Junction( $basePoint : basePoint, visited == "now" )
+ then
+ $junction.setVisited( "yes" );
+ modify( $junction );
+end
+
+/*
+(p start_checking
+ (stage ^value marking)
+ -->
+ (modify 1 ^value checking))
+*/
+rule "start_checking"
+ when
+ $stage : Stage( value == Stage.MARKING )
+ then
+ $stage.setValue( Stage.CHECKING );
+ modify( $stage );
+ System.out.println( "Stage.CHECKING" );
+end
+
+/*
+(p checking
+ (stage ^value checking)
+ (junction ^base_point <bp> ^visited check)
+ (edge_label ^p1 <bp> ^p2 <p> ^l_name <n> ^l_id <id>)
+ (junction ^base_point <p> ^visited yes)
+ -(edge_label ^p1 <p> ^p2 <bp> ^l_name <n>)
+ -->
+ (modify 1 ^value remove_label)
+ (make illegal ^bp <bp> ^l_id <id>))
+*/
+rule "checking1"
+ when
+ $stage : Stage( value == Stage.CHECKING )
+ $junction : Junction( $basePoint : basePoint, visited == "check" )
+ EdgeLabel( p1 == $basePoint, $p2 : p2, $labelName : labelName, $labelId : labelId )
+ Junction( basePoint == $p2, visited == "yes" )
+ not ( EdgeLabel( p1 == $p2, p2 == $basePoint, labelName == $labelName ) )
+ then
+ $stage.setValue( Stage.REMOVE_LABEL );
+ modify( $stage );
+ System.out.println( "Stage.REMOVE_LABEL" );
+ assert ( new Illegal( $basePoint, $labelId ) );
+end
+/*
+(p remove_label_3j
+ (stage ^value remove_label)
+ (illegal ^bp <bp> ^l_id <id>)
+ (junction ^type 3j ^base_point <bp> ^p1 <p1> ^p2 <p2> ^p3 <p3>)
+ (edge_label ^p1 <bp> ^p2 <p1> ^l_id <id>)
+ (edge_label ^p1 <bp> ^p2 <p2> ^l_id <id>)
+ (edge_label ^p1 <bp> ^p2 <p3> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <id> (crlf))
+ ; (write edge_label <bp> <p2> <id> (crlf))
+ (modify 1 ^value checking)
+ (remove 2)
+ (remove 4)
+ (remove 5)
+ (remove 6))
+*/
+rule "remove_label_3j"
+ when
+ $stage : Stage( value == Stage.REMOVE_LABEL )
+ $illegal : Illegal( $basePoint : basePoint, $labelId : labelId )
+ Junction( type == "3j", basePoint == $basePoint, $p1 : p1, $p2 : p2, $p3 : p3 )
+ $edgeLabel1 : EdgeLabel( p1 == $basePoint, p2 == $p1, labelId == $labelId )
+ $edgeLabel2 : EdgeLabel( p1 == $basePoint, p2 == $p2, labelId == $labelId )
+ $edgeLabel3 : EdgeLabel( p1 == $basePoint, p2 == $p3, labelId == $labelId )
+ then
+ $stage.setValue( Stage.CHECKING );
+ modify( $stage );
+ System.out.println( "Stage.CHECKING" );
+ retract( $illegal );
+ retract( $edgeLabel1 );
+ retract( $edgeLabel2 );
+ retract( $edgeLabel3 );
+end
+
+/*
+(p remove_edge_2j
+ (stage ^value remove_label)
+ (illegal ^bp <bp> ^l_id <id>)
+ (junction ^type 2j ^base_point <bp> ^p1 <p1> ^p2 <p2>)
+ (edge_label ^p1 <bp> ^p2 <p1> ^l_id <id>)
+ (edge_label ^p1 <bp> ^p2 <p2> ^l_id <id>)
+ -->
+ ; (write edge_label <bp> <p1> <n1> <id> (crlf))
+ ; (write edge_label <bp> <p2> <n2> <id> (crlf))
+ (modify 1 ^value checking)
+ (remove 2)
+ (remove 4)
+ (remove 5))
+*/
+rule "remove_edge_2j"
+ when
+ $stage : Stage( value == Stage.REMOVE_LABEL )
+ $illegal : Illegal( $basePoint : basePoint, $labelId : labelId )
+ Junction( type == "2j", basePoint == $basePoint,$p1 : p1, $p2 : p2 )
+ $edgeLabel1 : EdgeLabel( p1 == $basePoint, p2 == $p1, labelId == $labelId )
+ $edgeLabel2 : EdgeLabel( p1 == $basePoint, p2 == $p2, labelId == $labelId )
+ then
+ $stage.setValue( Stage.CHECKING );
+ modify( $stage );
+ System.out.println( "Stage.CHECKING" );
+ retract( $illegal );
+ retract( $edgeLabel1 );
+ retract( $edgeLabel2 );
+end
+
+/*
+(p checking
+ (stage ^value checking)
+ (junction ^base_point <bp> ^visited check)
+ -->
+ (modify 2 ^visited yes))
+
+*/
+rule "checking2"
+ when
+ Stage( value == Stage.CHECKING )
+ $junction : Junction( $basePoint : basePoint, visited == "check" )
+ then
+ $junction.setVisited( "yes" );
+ modify( $junction );
+end
+
+/*
+(p stop_checking
+ (stage ^value checking)
+ -->
+ (modify 1 ^value labeling))
+*/
+rule "stop_checking"
+ when
+ $stage : Stage( value == Stage.CHECKING )
+ then
+ $stage.setValue( Stage.LABELING );
+ modify( $stage );
+ System.out.println( "Stage.LABELING" );
+end
+/*
+(p done_labeling
+ (stage ^value labeling)
+ -->
+ (modify 1 ^value printing))
+*/
+rule "done_labeling"
+ when
+ $stage : Stage( value == Stage.LABELING )
+ then
+ $stage.setValue( Stage.PRINTING );
+ modify( $stage );
+ System.out.println( "Stage.PRINTING" );
+end
+
+/*
+(p done
+ (stage ^value printing)
+ -->
+ (halt))
+*/
+rule "done"
+ when
+ Stage( value == Stage.PRINTING )
+ then
+ System.out.println( "Finished" );
+end
More information about the jboss-svn-commits
mailing list