package org.drools.examples;


import java.io.File;
import java.io.FileWriter;

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.examples.xmlDump;
import org.drools.lang.descr.AttributeDescr;
import org.drools.lang.descr.ColumnDescr;
import org.drools.lang.descr.LiteralDescr;
import org.drools.lang.descr.FieldBindingDescr;
import org.drools.examples.xmlDump;

public class HelloWorldXml 
{
 public static final void main(final String arg[])
 {
	try
	{
	 final PackageDescr pdesc=new PackageDescr("org.drools.examples");
	 final RuleDescr rdesc=new RuleDescr("Hell");
	 final RuleDescr rdesc1=new RuleDescr("Good");
	 final PatternDescr ptdesc=new PatternDescr();
	 final AndDescr adesc=new AndDescr();
	 final AttributeDescr atdesc=new AttributeDescr("no-loop","true");
	 final ColumnDescr cdesc=new ColumnDescr("Message");
	 final LiteralDescr[] ldesc=new LiteralDescr[2];
	 final FieldBindingDescr fdesc=new FieldBindingDescr("message","message");
	 final xmlDump xmldumper = new xmlDump();
	 final String hope;
	 
	 final String[]str={"Message.HELL","Message.GOOD"};
	 	 
	 for(int i=0;i<ldesc.length;i++)
		 ldesc[i]=new LiteralDescr("status","==",str[i]);
	 
	 pdesc.addImport("org.drools.examples.Hell.Message");
	 rdesc.SetClassName("Message");
	 
	 cdesc.setIdentifier("m");
	 
	 ptdesc.setLocation(0,0);
	 ptdesc.setEndLocation(0,0);
	 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(0,0);
	 ptdesc.setEndLocation(0,0);
	 rdesc1.addAttribute(atdesc);
	 adesc.addDescr(ptdesc);
	 rdesc1.setLhs(adesc);
	 rdesc1.setConsequence("System.out.println( message ); " +
	 		"m.setMessage( message );");
	 pdesc.addRule(rdesc1);
	
	hope = xmldumper.dump(pdesc,cdesc,fdesc,ldesc);
    System.out.println(hope);
		
    
    FileWriter fw = new FileWriter(new File("d://HelloWorld.xml"));
	fw.write(hope);
	fw.flush();
	fw.close();
	
	}catch ( final Throwable t ) {
        t.printStackTrace();
    }

 }

}