X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2Foutput%2Ftemplate%2FForeachStatement.java;h=4c8b1027b5f7dfb3df420b309fffe699fad94d26;hb=449f75a2b5d97ebf34bec2df715b71aa7e31afb0;hp=38aad35f8f95d1d9573aaddb98807ccc546027f3;hpb=aade4c55a068d4b8211d67754cb6060e6c7a42b0;p=gigi.git diff --git a/src/org/cacert/gigi/output/template/ForeachStatement.java b/src/org/cacert/gigi/output/template/ForeachStatement.java index 38aad35f..4c8b1027 100644 --- a/src/org/cacert/gigi/output/template/ForeachStatement.java +++ b/src/org/cacert/gigi/output/template/ForeachStatement.java @@ -1,30 +1,49 @@ package org.cacert.gigi.output.template; import java.io.PrintWriter; +import java.util.Collection; import java.util.HashMap; import java.util.Map; -import org.cacert.gigi.Language; -import org.cacert.gigi.output.Outputable; - -final class ForeachStatement implements Outputable { - private final String variable; - private final TemplateBlock body; - - ForeachStatement(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 IterableDataset) { - IterableDataset id = (IterableDataset) o; - Map subcontext = new HashMap(vars); - while (id.next(l, subcontext)) { - body.output(out, l, subcontext); - } - } - } -} \ No newline at end of file +import org.cacert.gigi.localisation.Language; + +/** + * Outputs an {@link Outputable} multiple times based on a given + * {@link IterableDataset}. + */ +public final class ForeachStatement implements Translatable { + + private final String variable; + + private final TemplateBlock body; + + /** + * Creates a new {@link ForeachStatement}. + * + * @param variable + * the variable to take the {@link IterableDataset} from. + * @param body + * the body to output multiple times. + */ + public ForeachStatement(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 IterableDataset) { + IterableDataset id = (IterableDataset) o; + Map subcontext = new HashMap(vars); + while (id.next(l, subcontext)) { + body.output(out, l, subcontext); + } + } + } + + @Override + public void addTranslations(Collection s) { + body.addTranslations(s); + } +}