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