X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Forg%2Fcacert%2Fgigi%2FGigiApiException.java;h=944fe645ece5618fb2dc93afc5318d164be6c84b;hb=bafe96665aa27ee01a09853941fcd7c46573eb5c;hp=e766d9ea9e6e56b50fa87ec69c61924da05f4c7a;hpb=7fd647e95b1505fe2e0b111a121818213f60e2b0;p=gigi.git diff --git a/src/org/cacert/gigi/GigiApiException.java b/src/org/cacert/gigi/GigiApiException.java index e766d9ea..944fe645 100644 --- a/src/org/cacert/gigi/GigiApiException.java +++ b/src/org/cacert/gigi/GigiApiException.java @@ -1,16 +1,23 @@ package org.cacert.gigi; import java.io.PrintWriter; +import java.io.StringWriter; import java.sql.SQLException; +import java.util.HashMap; import java.util.LinkedList; +import java.util.Locale; import org.cacert.gigi.localisation.Language; +import org.cacert.gigi.output.template.Outputable; +import org.cacert.gigi.output.template.TranslateCommand; public class GigiApiException extends Exception { + private static final long serialVersionUID = -164928670180852588L; + private SQLException e; - private LinkedList messages = new LinkedList<>(); + private LinkedList messages = new LinkedList<>(); public GigiApiException(SQLException e) { super(e); @@ -19,13 +26,17 @@ public class GigiApiException extends Exception { public GigiApiException(String message) { super(message); - messages.add(message); + messages.add(new TranslateCommand(message)); } public GigiApiException() { } + public GigiApiException(Outputable out) { + messages.add(out); + } + public void mergeInto(GigiApiException e2) { messages.addAll(e2.messages); if (e == null) { @@ -45,9 +56,12 @@ public class GigiApiException extends Exception { out.println(language.getTranslation("An internal error ouccured.")); out.println(""); } - for (String message : messages) { + HashMap map = new HashMap<>(); + for (Outputable message : messages) { + map.clear(); + out.print("
"); - out.print(language.getTranslation(message)); + message.output(out, language, map); out.println("
"); } out.println(""); @@ -61,11 +75,17 @@ public class GigiApiException extends Exception { @Override public String getMessage() { if (messages.size() != 0) { - StringBuffer res = new StringBuffer(); - for (String string : messages) { - res.append(string + "\n"); + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + + HashMap map = new HashMap<>(); + for (Outputable message : messages) { + map.clear(); + message.output(pw, Language.getInstance(Locale.ENGLISH), map); } - return res.toString(); + pw.flush(); + + return sw.toString(); } return ""; }