package gueei.binding.gen; import java.io.File; import java.io.InputStream; import java.util.Hashtable; import java.util.Vector; import org.apache.tools.ant.Task; public class WriteTemplateTask extends Task { Vector<Entry> Entries = new Vector<Entry>(); protected Hashtable<String, String> templateData = new Hashtable<String, String>(); private File mDir; public void setDir(File dir){ mDir = dir; } private String mInput; public void setInput(String input){ if (input.startsWith("*")) input = input.substring(1).toLowerCase(); mInput = "/" + input; } private String mOutput; public void setOutput(String output){ if (output.startsWith("*")) mOutput = output.substring(1).toLowerCase(); else mOutput = output; } public Entry createEntry(){ Entry entry = new Entry(); Entries.add(entry); return entry; } public void execute() { for(Entry entry: Entries){ if (entry.value.startsWith("*")){ templateData.put(entry.key, entry.value.substring(1).toLowerCase()); }else{ templateData.put(entry.key, entry.value); } } try { log("Template: " + mInput + " generating output to: " + mDir + "/" + mOutput); InputStream stream = this.getClass().getResourceAsStream(mInput); String data = TemplateWriter.make(stream, templateData); //log(data); mDir.mkdirs(); TemplateWriter.writeToFile(mDir, mOutput, data); // log("Template: " + mInput + " generated output to: " + mDir + "/" + mOutput); } catch (Exception e) { e.printStackTrace(); } } public class Entry{ public Entry(){} String key, value; public void setKey(String key){this.key = key;} public void setValue(String value){this.value = value;} } }