]> WPIA git - gigi.git/blob - src/org/cacert/gigi/GigiApiException.java
8851ec4412efaf4f848a4ed142de11344bbc1291
[gigi.git] / src / org / cacert / gigi / GigiApiException.java
1 package org.cacert.gigi;
2
3 import java.io.PrintWriter;
4 import java.sql.SQLException;
5 import java.util.LinkedList;
6
7 import org.cacert.gigi.localisation.Language;
8
9 public class GigiApiException extends Exception {
10
11     SQLException e;
12
13     LinkedList<String> messages = new LinkedList<>();
14
15     public GigiApiException(SQLException e) {
16         super(e);
17         this.e = e;
18     }
19
20     public GigiApiException(String message) {
21         super(message);
22         messages.add(message);
23     }
24
25     public GigiApiException() {
26
27     }
28
29     public void mergeInto(GigiApiException e2) {
30         messages.addAll(e2.messages);
31         if (e == null) {
32             e = e2.e;
33         }
34     }
35
36     public boolean isInternalError() {
37         return e != null;
38     }
39
40     public void format(PrintWriter out, Language language) {
41         out.println("<div class='formError'>");
42         if (isInternalError()) {
43             e.printStackTrace();
44             out.print("<div>");
45             out.println(language.getTranslation("An internal error ouccured."));
46             out.println("</div>");
47         }
48         for (String message : messages) {
49             out.print("<div>");
50             out.print(language.getTranslation(message));
51             out.println("</div>");
52         }
53         out.println("</div>");
54
55     }
56
57     public boolean isEmpty() {
58         return e == null && messages.size() == 0;
59     }
60
61 }