1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package javax.faces.validator;
20
21 import java.util.Collection;
22
23 import javax.faces.FacesException;
24 import javax.faces.application.FacesMessage;
25
26
27
28
29
30
31
32
33 public class ValidatorException
34 extends FacesException
35 {
36 private static final long serialVersionUID = 5965885122446047949L;
37 private FacesMessage _facesMessage;
38 private Collection<FacesMessage> _facesMessages;
39
40 public ValidatorException(Collection<FacesMessage> messages)
41 {
42 super(facesMessagesToString(messages));
43 _facesMessages = messages;
44 }
45
46 public ValidatorException(Collection<FacesMessage> messages, Throwable cause)
47 {
48 super(facesMessagesToString(messages),cause);
49 _facesMessages = messages;
50 }
51
52 public ValidatorException(FacesMessage message)
53 {
54 super(facesMessageToString(message));
55 _facesMessage = message;
56 }
57
58 public ValidatorException(FacesMessage message,
59 Throwable cause)
60 {
61 super(facesMessageToString(message), cause);
62 _facesMessage = message;
63 }
64
65 public FacesMessage getFacesMessage()
66 {
67 return _facesMessage;
68 }
69
70 public Collection<FacesMessage> getFacesMessages()
71 {
72 return _facesMessages;
73 }
74
75 private static String facesMessageToString(FacesMessage message)
76 {
77 String summary = message.getSummary();
78 String detail = message.getDetail();
79
80 if (summary != null)
81 {
82 if (detail != null)
83 {
84 return summary + ": " + detail;
85 }
86
87 return summary;
88 }
89
90 return detail != null ? detail : "";
91 }
92
93 private static String facesMessagesToString(Collection<FacesMessage> messages)
94 {
95 if (messages == null || messages.isEmpty())
96 {
97 return "";
98 }
99 StringBuilder sb = new StringBuilder();
100
101 String separator = "";
102 for (FacesMessage message : messages)
103 {
104 if (message != null)
105 {
106 String summary = message.getSummary();
107 String detail = message.getDetail();
108
109 if (summary != null)
110 {
111 sb.append(separator);
112 sb.append(summary);
113 if (detail != null)
114 {
115 sb.append(": ");
116 sb.append(detail);
117 }
118 separator = ", ";
119 }
120 }
121 }
122 return sb.toString();
123 }
124 }