ingo@686: package de.intevation.flys.artifacts.model; ingo@686: ingo@686: import org.w3c.dom.Document; ingo@686: import org.w3c.dom.Element; ingo@686: ingo@686: import java.util.List; ingo@686: import java.util.ArrayList; ingo@686: ingo@686: import java.io.Serializable; ingo@686: sascha@710: import de.intevation.artifacts.CallMeta; sascha@710: ingo@686: public class Calculation ingo@686: implements Serializable ingo@686: { ingo@686: public static class Problem ingo@686: implements Serializable ingo@686: { ingo@686: protected Double km; ingo@686: protected String msg; ingo@686: ingo@686: public Problem() { ingo@686: } ingo@686: ingo@686: public Problem(String msg) { ingo@686: this.msg = msg; ingo@686: } ingo@686: ingo@686: public Problem(double km, String msg) { ingo@686: this.km = km; ingo@686: this.msg = msg; ingo@686: } ingo@686: sascha@710: public Element toXML(Document document, CallMeta meta) { sascha@710: // TODO: i18n ingo@686: Element problem = document.createElement("problem"); ingo@686: if (km != null) { ingo@686: problem.setAttribute("km", String.valueOf(km)); ingo@686: } ingo@686: problem.setTextContent(msg); ingo@686: return problem; ingo@686: } ingo@686: } // class Problem ingo@686: ingo@686: protected List problems; ingo@686: ingo@686: public Calculation() { ingo@686: } ingo@686: sascha@709: public Calculation(String msg) { sascha@709: addProblem(msg); sascha@709: } sascha@709: ingo@686: protected List checkProblems() { ingo@686: if (problems == null) { ingo@686: problems = new ArrayList(); ingo@686: } ingo@686: return problems; ingo@686: } ingo@686: ingo@686: public void addProblem(String msg) { ingo@686: checkProblems().add(new Problem(msg)); ingo@686: } ingo@686: ingo@686: public void addProblem(double km, String msg) { ingo@686: checkProblems().add(new Problem(km, msg)); ingo@686: } ingo@686: ingo@686: public boolean hasProblems() { ingo@686: return problems != null && !problems.isEmpty(); ingo@686: } ingo@686: ingo@686: public int numProblems() { ingo@686: return problems != null ? problems.size() : 0; ingo@686: } ingo@686: ingo@686: public List getProblems() { ingo@686: return problems; ingo@686: } ingo@686: sascha@710: public void toXML(Document document, CallMeta meta) { ingo@686: ingo@686: Element root = document.createElement("problems"); ingo@686: ingo@686: if (hasProblems()) { ingo@686: for (Problem problem: problems) { sascha@710: root.appendChild(problem.toXML(document, meta)); ingo@686: } ingo@686: } ingo@686: ingo@686: document.appendChild(root); ingo@686: } ingo@686: } ingo@686: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :