/* * Created on 9.7.2004, changed 27.7.2004 */ package net.sf.tomp.xml.include.xtcl; import net.sf.tomp.xml.type.xtcl.TypeDatabaseFilterCommand; import net.sf.tomp.xml.type.xtcl.TypeDetectorFilterCommand; import net.sf.tomp.xtcl.Command; import net.sf.tomp.xtcl.CommandLineReader; import net.sf.tomp.xtcl.CompilerBase; /** * @author tomp */ public class XTCompiler extends CompilerBase { public Command compile(String[] cl, CommandLineReader clr) throws Exception { Command commandToReturn = null; if (cl.length == 0) { return null; } int i = 0; String ci = cl[i++]; // ADAPTIVEXINCLUDER $varname $typedatabasevarname [param1=val1...] if (ci.equalsIgnoreCase("ADAPTIVEXINCLUDER")) { AdaptiveXIncluderCommand command = new AdaptiveXIncluderCommand(); command.setVar(cl[i++]); command.setTypeDatabaseVar(cl[i++]); // set all param=value pairs i = setParameters(cl, i, command); commandToReturn = command; // ADAPTIVEFILTER $varname $typedatabasevarname [param1=val1 ...] } else if (ci.equalsIgnoreCase("ADAPTIVEFILTER")) { AdaptiveFilterCommand command = new AdaptiveFilterCommand(); command.setVar(cl[i++]); command.setTypeDatabaseVar(cl[i++]); //System.out.println(command); // set all param=value pairs i = setParameters(cl, i, command); commandToReturn = command; // TYPEDETECTORFILTER $varname $typedbvarname [param1=val1 ...] } else if (ci.equalsIgnoreCase("TYPEDETECTORFILTER")) { TypeDetectorFilterCommand command = new TypeDetectorFilterCommand(); command.setVar(cl[i++]); command.setTypeDatabaseVar(cl[i++]); //System.out.println(command); // set all param=value pairs i = setParameters(cl, i, command); commandToReturn = command; // TYPEDATABASEFILTER $varname } else if (ci.equalsIgnoreCase("TYPEDATABASEFILTER")) { TypeDatabaseFilterCommand command = new TypeDatabaseFilterCommand(); if (i < cl.length) { command.setVar(cl[i++]); } //System.out.println(command); commandToReturn = command; } else { return compileByNextCompiler(ci, cl, clr); } assertWholeLineRead(ci, i, cl, commandToReturn); //System.out.println("Compiled command="+commandToReturn); return commandToReturn; } }