X-Git-Url: https://code.wpia.club/?p=gigi.git;a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Foutput%2Ftemplate%2FTemplate.java;h=8ad47bc2876a271dea1cce221c4a732cc2907190;hp=9dbe4dc76c720a19beaa4424ebe46db1988686f4;hb=4cb0252dc568fd6c56e986289a2c45e4a8884fb3;hpb=dd2df5279f12cb801851244785a9ebc2566b6ef5 diff --git a/src/org/cacert/gigi/output/template/Template.java b/src/org/cacert/gigi/output/template/Template.java index 9dbe4dc7..8ad47bc2 100644 --- a/src/org/cacert/gigi/output/template/Template.java +++ b/src/org/cacert/gigi/output/template/Template.java @@ -27,7 +27,7 @@ import org.cacert.gigi.util.HTMLEncoder; */ public class Template implements Outputable { - private static class ParseResult { + protected static class ParseResult { TemplateBlock block; @@ -106,7 +106,11 @@ public class Template implements Outputable { } } - private ParseResult parse(Reader r) throws IOException { + protected ParseResult parse(Reader r) throws IOException { + return parseContent(r); + } + + protected ParseResult parseContent(Reader r) throws IOException { LinkedList splitted = new LinkedList(); LinkedList commands = new LinkedList(); StringBuffer buf = new StringBuffer(); @@ -137,10 +141,10 @@ public class Template implements Outputable { if (m.matches()) { String type = m.group(1); String variable = m.group(2); - ParseResult body = parse(r); + ParseResult body = parseContent(r); if (type.equals("if")) { if ("else".equals(body.getEndType())) { - commands.add(new IfStatement(variable, body.getBlock("else"), parse(r).getBlock("}"))); + commands.add(new IfStatement(variable, body.getBlock("else"), parseContent(r).getBlock("}"))); } else { commands.add(new IfStatement(variable, body.getBlock("}"))); } @@ -186,6 +190,11 @@ public class Template implements Outputable { @Override public void output(PrintWriter out, Language l, Map vars) { + tryReload(); + data.output(out, l, vars); + } + + protected void tryReload() { if (source != null && lastLoaded < source.lastModified()) { try { System.out.println("Reloading template.... " + source); @@ -197,7 +206,6 @@ public class Template implements Outputable { e.printStackTrace(); } } - data.output(out, l, vars); } protected static void outputVar(PrintWriter out, Language l, Map vars, String varname, boolean unescaped) {