]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/output/template/IfStatement.java
upd: restrict permissions of org "master" admin on organisation
[gigi.git] / src / org / cacert / gigi / output / template / IfStatement.java
index 970cdfd96d0e6dfbb5e67771d0efefa10079eb8a..0347a363db8798f3d98356fc68bbdea737c19d1f 100644 (file)
@@ -3,23 +3,37 @@ package org.cacert.gigi.output.template;
 import java.io.PrintWriter;
 import java.util.Map;
 
-import org.cacert.gigi.Language;
-import org.cacert.gigi.output.Outputable;
-
-final class IfStatement implements Outputable {
-       private final String variable;
-       private final TemplateBlock body;
-
-       IfStatement(String variable, TemplateBlock body) {
-               this.variable = variable;
-               this.body = body;
-       }
-
-       @Override
-       public void output(PrintWriter out, Language l, Map<String, Object> vars) {
-               Object o = vars.get(variable);
-               if (!(o == Boolean.FALSE || o == null)) {
-                       body.output(out, l, vars);
-               }
-       }
-}
\ No newline at end of file
+import org.cacert.gigi.localisation.Language;
+
+public final class IfStatement implements Outputable {
+
+    private final String variable;
+
+    private final TemplateBlock iftrue;
+
+    private final TemplateBlock iffalse;
+
+    public IfStatement(String variable, TemplateBlock body) {
+        this.variable = variable;
+        this.iftrue = body;
+        this.iffalse = null;
+    }
+
+    public IfStatement(String variable, TemplateBlock iftrue, TemplateBlock iffalse) {
+        this.variable = variable;
+        this.iftrue = iftrue;
+        this.iffalse = iffalse;
+    }
+
+    @Override
+    public void output(PrintWriter out, Language l, Map<String, Object> vars) {
+        Object o = vars.get(variable);
+
+        if ( !(o == null || Boolean.FALSE.equals(o))) {
+            iftrue.output(out, l, vars);
+        } else if (iffalse != null) {
+            iffalse.output(out, l, vars);
+        }
+    }
+
+}