]> WPIA git - gigi.git/blob - src/org/cacert/gigi/output/AssurancesDisplay.java
upd: enforce pattern of making templates static and final.
[gigi.git] / src / org / cacert / gigi / output / AssurancesDisplay.java
1 package org.cacert.gigi.output;
2
3 import java.io.PrintWriter;
4 import java.util.Map;
5
6 import org.cacert.gigi.dbObjects.Assurance;
7 import org.cacert.gigi.localisation.Language;
8 import org.cacert.gigi.output.template.IterableDataset;
9 import org.cacert.gigi.output.template.Outputable;
10 import org.cacert.gigi.output.template.Template;
11
12 public class AssurancesDisplay implements Outputable {
13
14     private static final Template template = new Template(AssurancesDisplay.class.getResource("AssurancesDisplay.templ"));
15
16     private boolean assurer;
17
18     public String assuranceArray;
19
20     public AssurancesDisplay(String assuranceArray, boolean assurer) {
21         this.assuranceArray = assuranceArray;
22         this.assurer = assurer;
23     }
24
25     @Override
26     public void output(PrintWriter out, Language l, Map<String, Object> vars) {
27         final Assurance[] assurances = (Assurance[]) vars.get(assuranceArray);
28         if (assurer) {
29             vars.put("verb", l.getTranslation("To"));
30         } else {
31             vars.put("verb", l.getTranslation("From"));
32         }
33
34         IterableDataset assuranceGroup = new IterableDataset() {
35
36             private int i = 0;
37
38             @Override
39             public boolean next(Language l, Map<String, Object> vars) {
40                 if (i >= assurances.length) {
41                     return false;
42                 } else {
43                     Assurance assurance = assurances[i];
44                     vars.put("id", assurance.getId());
45                     vars.put("method", assurance.getMethod());
46                     if (assurer) {
47                         vars.put("verbVal", assurance.getTo().getName());
48                     } else {
49                         vars.put("verbVal", assurance.getFrom().getName());
50                     }
51                     vars.put("date", assurance.getDate());
52                     vars.put("location", assurance.getLocation());
53                     vars.put("points", assurance.getPoints());
54                     i++;
55                     return true;
56                 }
57             }
58         };
59         vars.put("assurances", assuranceGroup);
60         template.output(out, l, vars);
61     }
62
63 }