Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation.java @ 674:d5f9ba1d055f
Added calculation base class to collect the problems during the calculations. Adjusted calculation 4 to use the mechanism.
flys-artifacts/trunk@2098 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 10 Jun 2011 09:19:27 +0000 |
parents | |
children | c501f27c1f71 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Calculation.java Fri Jun 10 09:19:27 2011 +0000 @@ -0,0 +1,79 @@ +package de.intevation.flys.artifacts.model; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; + +import java.util.List; +import java.util.ArrayList; + +public class Calculation +{ + public static class Problem { + + protected Double km; + protected String msg; + + public Problem() { + } + + public Problem(String msg) { + this.msg = msg; + } + + public Problem(double km, String msg) { + this.km = km; + this.msg = msg; + } + + public Element toXML(Document document) { + Element problem = document.createElement("problem"); + if (km != null) { + problem.setAttribute("km", String.valueOf(km)); + } + problem.setTextContent(msg); + return problem; + } + } // class Problem + + protected List<Problem> problems; + + public Calculation() { + } + + protected List<Problem> checkProblems() { + if (problems == null) { + problems = new ArrayList<Problem>(); + } + return problems; + } + + public void addProblem(String msg) { + checkProblems().add(new Problem(msg)); + } + + public void addProblem(double km, String msg) { + checkProblems().add(new Problem(km, msg)); + } + + public boolean hasProblems() { + return problems != null && !problems.isEmpty(); + } + + public List<Problem> getProblems() { + return problems; + } + + public void toXML(Document document) { + + Element root = document.createElement("problems"); + + if (hasProblems()) { + for (Problem problem: problems) { + root.appendChild(problem.toXML(document)); + } + } + + document.appendChild(root); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :