ingo@1149: package de.intevation.flys.artifacts.model; ingo@1149: ingo@1149: import java.util.HashMap; ingo@1149: import java.util.Map; ingo@1149: import java.util.Set; ingo@1149: ingo@1149: import org.w3c.dom.Document; ingo@1149: import org.w3c.dom.Element; ingo@1149: ingo@1149: import org.apache.log4j.Logger; ingo@1149: ingo@1149: import de.intevation.artifacts.CallMeta; ingo@1149: ingo@1149: ingo@1149: public class WSPLGENCalculation extends Calculation { ingo@1149: ingo@1149: private static final Logger log = Logger.getLogger(WSPLGENCalculation.class); ingo@1149: ingo@1149: protected Map errors; ingo@1149: protected Map warnings; ingo@1149: ingo@1149: ingo@1149: public WSPLGENCalculation() { ingo@1149: errors = new HashMap(); ingo@1149: warnings = new HashMap(); ingo@1149: } ingo@1149: ingo@1149: ingo@1149: public void addError(Integer key, String msg) { ingo@1149: log.debug("New error: (" + key + ") " + msg); ingo@1149: errors.put(key, msg); ingo@1149: } ingo@1149: ingo@1149: ingo@1149: public void addWarning(Integer key, String msg) { ingo@1149: log.debug("New warning: (" + key + ") " + msg); ingo@1149: warnings.put(key, msg); ingo@1149: } ingo@1149: ingo@1149: ingo@1149: public int numErrors() { ingo@1149: return errors.size(); ingo@1149: } ingo@1149: ingo@1149: ingo@1149: public int numWarnings() { ingo@1149: return warnings.size(); ingo@1149: } ingo@1149: ingo@1149: ingo@1149: public void toXML(Document document, CallMeta meta) { ingo@1149: Element root = document.createElement("problems"); ingo@1149: ingo@1149: if (numErrors() > 0) { ingo@1149: Set> entrySet = errors.entrySet(); ingo@1149: ingo@1149: for (Map.Entry entry: entrySet) { ingo@1149: Element problem = document.createElement("problem"); ingo@1149: problem.setAttribute("error", String.valueOf(entry.getKey())); ingo@1149: problem.setTextContent(entry.getValue()); ingo@1149: ingo@1149: root.appendChild(problem); ingo@1149: } ingo@1149: } ingo@1149: ingo@1149: if (numWarnings() > 0) { ingo@1149: Set> entrySet = warnings.entrySet(); ingo@1149: ingo@1149: for (Map.Entry entry: entrySet) { ingo@1149: Element problem = document.createElement("problem"); ingo@1149: problem.setAttribute("error", String.valueOf(entry.getKey())); ingo@1149: problem.setTextContent(entry.getValue()); ingo@1149: ingo@1149: root.appendChild(problem); ingo@1149: } ingo@1149: } ingo@1149: ingo@1149: document.appendChild(root); ingo@1149: } ingo@1149: } ingo@1149: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :