X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Foutput%2Ftemplate%2FIfStatement.java;h=0347a363db8798f3d98356fc68bbdea737c19d1f;hb=7f0229055197cf353db26e61b1f5d84ddf5b58df;hp=02687630b8ab84757944ddae45c1103927b92905;hpb=ffab4ac1fae1a58919c7dde59d90c75df096512c;p=gigi.git diff --git a/src/org/cacert/gigi/output/template/IfStatement.java b/src/org/cacert/gigi/output/template/IfStatement.java index 02687630..0347a363 100644 --- a/src/org/cacert/gigi/output/template/IfStatement.java +++ b/src/org/cacert/gigi/output/template/IfStatement.java @@ -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 vars) { - Object o = vars.get(variable); - if (o instanceof Boolean && o == Boolean.TRUE) { - 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 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); + } + } + +}