1 package org.cacert.gigi.output.template;
3 import java.io.PrintWriter;
4 import java.util.HashMap;
7 import org.cacert.gigi.localisation.Language;
8 import org.cacert.gigi.output.Outputable;
10 public final class ForeachStatement implements Outputable {
12 private final String variable;
14 private final TemplateBlock body;
16 public ForeachStatement(String variable, TemplateBlock body) {
17 this.variable = variable;
22 public void output(PrintWriter out, Language l, Map<String, Object> vars) {
23 Object o = vars.get(variable);
24 if (o instanceof IterableDataset) {
25 IterableDataset id = (IterableDataset) o;
26 Map<String, Object> subcontext = new HashMap<String, Object>(vars);
27 while (id.next(l, subcontext)) {
28 body.output(out, l, subcontext);