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