package test.language.antlr.StringTemplate;
import java.io.StringReader;
import junit.framework.TestCase;
import org.antlr.stringtemplate.CommonGroupLoader;
import org.antlr.stringtemplate.StringTemplate;
import org.antlr.stringtemplate.StringTemplateGroup;
public class FileTemplateTest extends TestCase{
String templates = "group simple;"
+ ""
+ "vardef(type,name) ::= \"<type> <name>;\""
+ ""
+ "method(type,name,args) ::= <<"
+ "<type> <name>(<args; separator=\",\">) {"
+ " <statements; separator=\"\n\">"
+ "}"
+ ">>";
public void testGroup() {
// Use the constructor that accepts a Reader
StringTemplateGroup group = new StringTemplateGroup(new StringReader(templates));
StringTemplate t = group.getInstanceOf("vardef");
t.setAttribute("type", "int");
t.setAttribute("name", "foo");
System.out.println(t);
}
public void testFile() {
StringTemplateGroup group = new StringTemplateGroup("myGroup");
StringTemplate query = group.getInstanceOf("tmp/theQuery");
query.setAttribute("column", "name");
query.setAttribute("column", "email");
query.setAttribute("table", "User");
System.out.println(query);
}
public void testGroupFile() {
StringTemplateGroup.registerGroupLoader(new CommonGroupLoader("tmp", StringTemplateGroup.DEFAULT_ERROR_LISTENER));
StringTemplateGroup group = StringTemplateGroup.loadGroup("simple");
StringTemplate t = group.getInstanceOf("vardef");
t.setAttribute("type", "int");
t.setAttribute("name", "foo");
t.setAttribute("name", "fo1");
System.out.println(t);
t = group.getInstanceOf("table");
t.setAttribute("type", "int");
t.setAttribute("name", "upper");
t.setAttribute("name", "down");
System.out.println(t);
}
};