package com.sample import com.sample.DroolsTest.Message; import com.sample.DroolsTest.Message.Type; rule "Hello World" when m : Message( status == Message.Type.HELLO, message : message ) then System.out.println( message ); m.setMessage( "Goodbye cruel world" ); m.setStatus( Message.Type.GOODBYE ); update( m ); end rule "Hello Recall" when m : Message( statusHistory contains Message.Type.HELLO ) then System.out.println( "At some point I said " + Message.Type.HELLO ); end rule "Silly Hello Recall" when m : Message( status == Message.Type.OK_I_AM_SERIOUSLY_SAYING_GOODBYE_NOW && statusHistory contains Message.Type.HELLO ) then System.out.println( m.getStatus() + " is the current status AND at some point I said " + Message.Type.HELLO ); end rule "GoodBye" when m : Message( status == Message.Type.GOODBYE, message : message ) then System.out.println( message ); m.setStatus( Message.Type.OK_I_AM_SERIOUSLY_SAYING_GOODBYE_NOW ); update(m); end rule "Goodbye Recall" when m : Message( statusHistory contains Message.Type.GOODBYE ) then System.out.println( "At some point I said " + Message.Type.GOODBYE ); end