]> WPIA git - gigi.git/blobdiff - src/org/cacert/gigi/GigiApiException.java
Implement and test change password form.
[gigi.git] / src / org / cacert / gigi / GigiApiException.java
index 56d7f9addbdcbee58520a7d5c3dea8e90338fd2a..7b91d125fb1d200a4e1a822ab7dac70bbf3a693a 100644 (file)
@@ -2,17 +2,31 @@ package org.cacert.gigi;
 
 import java.io.PrintWriter;
 import java.sql.SQLException;
+import java.util.LinkedList;
 
 public class GigiApiException extends Exception {
        SQLException e;
-       String message;
+       LinkedList<String> messages = new LinkedList<>();
 
        public GigiApiException(SQLException e) {
+               super(e);
                this.e = e;
        }
 
        public GigiApiException(String message) {
-               this.message = message;
+               super(message);
+               messages.add(message);
+       }
+
+       public GigiApiException() {
+
+       }
+
+       public void mergeInto(GigiApiException e2) {
+               messages.addAll(e2.messages);
+               if (e == null) {
+                       e = e2.e;
+               }
        }
 
        public boolean isInternalError() {
@@ -20,13 +34,24 @@ public class GigiApiException extends Exception {
        }
 
        public void format(PrintWriter out, Language language) {
+               out.println("<div class='formError'>");
                if (isInternalError()) {
                        e.printStackTrace();
+                       out.print("<div>");
                        out.println(language.getTranslation("An internal error ouccured."));
-               } else {
-                       out.println(language.getTranslation(message));
+                       out.println("</div>");
+               }
+               for (String message : messages) {
+                       out.print("<div>");
+                       out.print(language.getTranslation(message));
+                       out.println("</div>");
                }
+               out.println("</div>");
+
+       }
 
+       public boolean isEmpty() {
+               return e == null && messages.size() == 0;
        }
 
 }