]> WPIA git - gigi.git/blob - src/org/cacert/gigi/output/template/IfStatement.java
29cfc768f2ac674706a367325ef5eb6aa90b6dea
[gigi.git] / src / org / cacert / gigi / output / template / IfStatement.java
1 package org.cacert.gigi.output.template;
2
3 import java.io.PrintWriter;
4 import java.util.Collection;
5 import java.util.Map;
6
7 import org.cacert.gigi.localisation.Language;
8
9 public final class IfStatement implements Translatable {
10
11     private final String variable;
12
13     private final TemplateBlock iftrue;
14
15     private final TemplateBlock iffalse;
16
17     public IfStatement(String variable, TemplateBlock body) {
18         this.variable = variable;
19         this.iftrue = body;
20         this.iffalse = null;
21     }
22
23     public IfStatement(String variable, TemplateBlock iftrue, TemplateBlock iffalse) {
24         this.variable = variable;
25         this.iftrue = iftrue;
26         this.iffalse = iffalse;
27     }
28
29     @Override
30     public void output(PrintWriter out, Language l, Map<String, Object> vars) {
31         Object o = vars.get(variable);
32
33         if ( !(o == null || Boolean.FALSE.equals(o))) {
34             iftrue.output(out, l, vars);
35         } else if (iffalse != null) {
36             iffalse.output(out, l, vars);
37         }
38     }
39
40     @Override
41     public void addTranslations(Collection<String> s) {
42         iftrue.addTranslations(s);
43         if (iffalse != null) {
44             iffalse.addTranslations(s);
45         }
46     }
47
48 }