final PackageDescr packageDescr = new PackageDescr( "p1" );
final RuleDescr ruleDescr = new RuleDescr( "rule-1" );
packageDescr.addRule( ruleDescr );
final AndDescr lhs = new AndDescr();
ruleDescr.setLhs( lhs );
final PatternDescr pattern = new PatternDescr( Cheese.class.getName(),
"stilton" );
lhs.addDescr( pattern );
BindingDescr fieldBindingDescr = new BindingDescr( "x",
"price" );
pattern.addConstraint( fieldBindingDescr );
fieldBindingDescr = new BindingDescr( "y",
"price" );
pattern.addConstraint( fieldBindingDescr );
packageDescr.addGlobal( new GlobalDescr( "map",
"java.util.Map" ) );
final EvalDescr evalDescr = new EvalDescr( "( ( Integer )map.get( new Integer(x) ) ).intValue() == y" );
lhs.addDescr( evalDescr );
ruleDescr.setConsequence( "update(stilton);" );
builder.addPackage( packageDescr );