From: <jbo...@li...> - 2006-05-18 22:05:27
|
Author: mar...@jb... Date: 2006-05-18 18:05:22 -0400 (Thu, 18 May 2006) New Revision: 4321 Added: labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/examples/HonestPoliticianExample.java labs/jbossrules/trunk/drools-examples/src/main/rules/org/drools/examples/HonestPolitician.drl Log: JBRULES-270 Honest Politician -Thanks to Peter Lin for this logical assertion and not example Added: labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/examples/HonestPoliticianExample.java =================================================================== --- labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/examples/HonestPoliticianExample.java 2006-05-18 21:50:42 UTC (rev 4320) +++ labs/jbossrules/trunk/drools-examples/src/main/java/org/drools/examples/HonestPoliticianExample.java 2006-05-18 22:05:22 UTC (rev 4321) @@ -0,0 +1,73 @@ +package org.drools.examples; + +import java.io.InputStreamReader; + +import org.drools.FactHandle; +import org.drools.RuleBase; +import org.drools.RuleBaseFactory; +import org.drools.WorkingMemory; +import org.drools.audit.WorkingMemoryFileLogger; +import org.drools.compiler.PackageBuilder; + +public class HonestPoliticianExample { + + /** + * @param args + */ + public static void main(final String[] args) throws Exception { + + final PackageBuilder builder = new PackageBuilder(); + builder.addPackageFromDrl( new InputStreamReader( HonestPoliticianExample.class.getResourceAsStream( "HonestPolitician.drl" ) ) ); + + final RuleBase ruleBase = RuleBaseFactory.newRuleBase(); + ruleBase.addPackage( builder.getPackage() ); + + final WorkingMemory workingMemory = ruleBase.newWorkingMemory(); + + final WorkingMemoryFileLogger logger = new WorkingMemoryFileLogger( workingMemory ); + logger.setFileName( "log/honest-politician" ); + + final Politician blair = new Politician("blair", true); + final Politician bush = new Politician("bush", true); + final Politician chirac = new Politician("chirac", true); + final Politician schroder = new Politician("schroder", true); + + workingMemory.assertObject( blair ); + workingMemory.assertObject( bush ); + workingMemory.assertObject( chirac ); + workingMemory.assertObject( schroder ); + + workingMemory.fireAllRules(); + + logger.writeToDisk(); + } + + public static class Politician { + private String name; + + private boolean honest; + + public Politician(String name, boolean honest) { + super(); + this.name = name; + this.honest = honest; + } + + public boolean isHonest() { + return honest; + } + + public void setHonest(boolean honest) { + this.honest = honest; + } + + public String getName() { + return name; + } + } + + public static class Hope { + + } + +} Added: labs/jbossrules/trunk/drools-examples/src/main/rules/org/drools/examples/HonestPolitician.drl =================================================================== --- labs/jbossrules/trunk/drools-examples/src/main/rules/org/drools/examples/HonestPolitician.drl 2006-05-18 21:50:42 UTC (rev 4320) +++ labs/jbossrules/trunk/drools-examples/src/main/rules/org/drools/examples/HonestPolitician.drl 2006-05-18 22:05:22 UTC (rev 4321) @@ -0,0 +1,38 @@ +package org.drools.examples + +import org.drools.examples.HonestPolitician.Politician; +import org.drools.examples.HonestPolitician.Hope; + +rule "We have an honest Politician" + when + exists( Politician( honest == true ) ) + then + assertLogical( new Hope() ); +end + +rule "Hope Lives" + salience 10 + when + exists( Hope() ) + then + System.out.println("Hurrah!!! Democracy Lives"); +end + +rule "Hope is Dead" + when + not( Hope() ) + then + System.out.println( "We are all Doomed!!! Democracy is Dead" ); +end + +rule "Currupt the Honest" + salience 5 + when + politician : Politician( honest == true ) + exists( Hope() ) + then + System.out.println( "I'm an evil corporation and I have corrupted " + politician.getName() ); + politician.setHonest( false ); + modify( politician ); +end + |