package org.drools.examples;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import org.drools.lang.descr.PackageDescr;
import org.drools.lang.descr.RuleDescr;
import org.drools.lang.descr.PatternDescr;
import org.drools.lang.descr.AndDescr;
import org.drools.xml.XmlDumper;
import org.drools.lang.descr.AttributeDescr;
import org.drools.lang.descr.ColumnDescr;
import org.drools.lang.descr.LiteralDescr;
import org.drools.lang.descr.FieldBindingDescr;

public class test2
{
 public static final void main(final String arg[])
 {
	 PackageDescr pdesc=new PackageDescr("org.drools.examples");
	 RuleDescr rdesc=new RuleDescr("Hell");
	 RuleDescr rdesc1=new RuleDescr("Good");
	 PatternDescr ptdesc=new PatternDescr();
	 AndDescr adesc=new AndDescr();
	 AttributeDescr atdesc=new AttributeDescr("no-loop","true");
	AttributeDescr at2desc=new AttributeDescr("activation-group","dekhajak");
	 ColumnDescr cdesc=new ColumnDescr("Message");
	 LiteralDescr ldesc=new LiteralDescr("status","==","Message.HELL");
	 LiteralDescr ldesc1=new LiteralDescr("status","==","Message.GOOD");
	 FieldBindingDescr fdesc=new FieldBindingDescr("message","message");
	 XmlDumper xmldumper = new XmlDumper();
	 String hope;
	 
	 pdesc.addImport("org.drools.examples.Hell.Message");
	 rdesc.SetClassName("Message");
	 
	 cdesc.setIdentifier("m");
	 
	 ptdesc.setLocation(0,1);
	 ptdesc.setEndLocation(100,101);
	 adesc.addDescr(ptdesc);
	 rdesc.setLhs(adesc);
	 
	 rdesc.setConsequence("System.out.println( message );"+ 
		"m.setMessage( \"Goodbye cruel world \" );"+
		"m.setStatus( Message.GOODBYE );"+
		"modify( m );");
	 
	 pdesc.addRule(rdesc);
	 
	
	 ptdesc.setLocation(104,105);
	 ptdesc.setEndLocation(200,201);//what r these numbers from where do we get them?
	 rdesc1.addAttribute(at2desc);
	 adesc.addDescr(ptdesc);
	 rdesc1.setLhs(adesc);
	 	 rdesc1.setConsequence("System.out.println( message ); " +
	 		"m.setMessage( message );");
	 pdesc.addRule(rdesc1);
	
	hope = xmldumper.dump(pdesc);
    System.out.println(hope);
    

 }

}