comparison src/nabble/model/ModelException.java @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:7ecd1a4ef557
1 /*
2
3 Copyright (C) 2003 Franklin Schmidt <frank@gustos.com>
4
5 */
6
7 package nabble.model;
8
9 import nabble.naml.namespaces.TemplateException;
10 import java.net.MalformedURLException;
11
12
13 public class ModelException extends TemplateException {
14
15 protected ModelException(Name name) {
16 super(name);
17 }
18
19 protected ModelException(Name name,String msg) {
20 super(name,msg);
21 }
22
23 protected ModelException(Name name,String msg,Exception e) {
24 super(name,msg,e);
25 }
26
27 protected ModelException(Name name,Exception e) {
28 super(name,e);
29 }
30
31 public static ModelException newInstance(String name,String msg) {
32 return new ModelException(name(name),msg);
33 }
34
35 public static ModelException newInstance(String name,Exception cause) {
36 return new ModelException(name(name),cause);
37 }
38
39 public static ModelException newInstance(String name,String msg,Exception cause) {
40 return new ModelException(name(name),msg,cause);
41 }
42
43
44 public static final class TooManyPosts extends ModelException {
45 TooManyPosts() {
46 super(name("too_many_posts"),"You have made too many posts in a short time. Please try again later.");
47 }
48 }
49
50 public static final class NodeLoop extends ModelException {
51 NodeLoop(Node node) {
52 super(name("node_loop"),"setParent creates loop " + node);
53 }
54 // protected NodeLoop() {}
55 }
56
57 public static final class RequiredSubject extends ModelException {
58 RequiredSubject() {
59 super(name("required_subject"),"The subject is required.");
60 }
61 }
62
63
64 public static final class RequiredName extends ModelException {
65 RequiredName() {
66 super(name("required_name"),"You must provide a user name.");
67 }
68 }
69
70 public static final class InvalidPermalink extends ModelException {
71 public InvalidPermalink() {
72 super(name("invalid_permalink"));
73 }
74 }
75
76 public static final class ReadOnly extends ModelException {
77 ReadOnly() {
78 super(name("read_only"),"Unauthorized to post here.");
79 }
80 }
81
82 public static final class NoAnonymous extends ModelException {
83 public final Node authorizingNode;
84
85 NoAnonymous(Node authorizingNode) {
86 super(name("no_anonymous"),"Anonymous users may not post here.");
87 this.authorizingNode = authorizingNode;
88 }
89 }
90
91 public static final class AlreadyMember extends ModelException {
92 AlreadyMember() {
93 super(name("already_member"),"User is already a member.");
94 }
95 }
96
97 public static final class InvalidRecaptcha extends ModelException {
98 public InvalidRecaptcha() {
99 super(name("invalid_recaptcha"),"Please verify that you are not a robot.");
100 }
101 }
102
103 public static final class InvalidDate extends ModelException {
104 public InvalidDate(String date) {
105 super(name("invalid_date"),"invalid date format: " + date);
106 }
107 }
108
109 // Spam Handling --------------------------------------------------------------
110
111 public static abstract class SpamException extends ModelException {
112 public final String badText;
113
114 public SpamException(Name name, String badText, String msg) {
115 super(name, msg);
116 this.badText = badText;
117 }
118 }
119
120 public static final class SubjectContainsInvalidWord extends SpamException {
121 public SubjectContainsInvalidWord(String badText) {
122 super(name("subject_contains_invalid_spam_word"),badText,"Subject cannot contain \"" + badText + '"');
123 }
124 }
125
126 public static final class MessageContainsInvalidWord extends SpamException {
127 public MessageContainsInvalidWord(String badText) {
128 super(name("message_contains_invalid_spam_word"),badText,"Message cannot contain \"" + badText + '"');
129 }
130 }
131
132 public static final class MessageContainsManyInvalidWords extends SpamException {
133 public MessageContainsManyInvalidWords(String badText) {
134 super(name("message_contains_many_invalid_spam_words"),badText,"Too many words: \"" + badText + '"');
135 }
136 }
137
138 public static final class SubjectContainsCommonSpamWords extends SpamException {
139 public SubjectContainsCommonSpamWords(String subject) {
140 super(name("subject_contains_common_spam_words"),subject,"Subject contains common spam words: \"" + subject + '"');
141 }
142 }
143
144 public static final class MessageContainsCommonSpamWords extends SpamException {
145 public MessageContainsCommonSpamWords(String message) {
146 super(name("message_contains_common_spam_words"),message,"Message contains common spam words: \"" + message + '"');
147 }
148 }
149
150
151
152 public static final class EmailFormat extends ModelException {
153 public final String badEmail;
154
155 public EmailFormat(String badEmail) {
156 super(name("invalid_email"),"Invalid email address: '" + badEmail + "'");
157 this.badEmail = badEmail;
158 }
159 }
160
161 public static final class UrlFormat extends ModelException {
162 public final String badUrl;
163
164 UrlFormat(String badUrl,MalformedURLException e) {
165 super(name("url_format"),"Invalid URL: '" + badUrl + "'",e);
166 this.badUrl = badUrl;
167 }
168 }
169
170 public static class InvalidFile extends ModelException {
171 public final String fileName;
172
173 public InvalidFile(String fileName) {
174 super(name("invalid_file_exception"));
175 this.fileName = fileName;
176 }
177 }
178
179 public static class InvalidImage extends ModelException {
180 public final String fileName;
181
182 public InvalidImage(String fileName) {
183 super(name("invalid_image_exception"));
184 this.fileName = fileName;
185 }
186 }
187
188 }