Mercurial Hosting > nabble
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/nabble/model/ModelException.java Thu Mar 21 19:15:52 2019 -0600 @@ -0,0 +1,188 @@ +/* + +Copyright (C) 2003 Franklin Schmidt <frank@gustos.com> + +*/ + +package nabble.model; + +import nabble.naml.namespaces.TemplateException; +import java.net.MalformedURLException; + + +public class ModelException extends TemplateException { + + protected ModelException(Name name) { + super(name); + } + + protected ModelException(Name name,String msg) { + super(name,msg); + } + + protected ModelException(Name name,String msg,Exception e) { + super(name,msg,e); + } + + protected ModelException(Name name,Exception e) { + super(name,e); + } + + public static ModelException newInstance(String name,String msg) { + return new ModelException(name(name),msg); + } + + public static ModelException newInstance(String name,Exception cause) { + return new ModelException(name(name),cause); + } + + public static ModelException newInstance(String name,String msg,Exception cause) { + return new ModelException(name(name),msg,cause); + } + + + public static final class TooManyPosts extends ModelException { + TooManyPosts() { + super(name("too_many_posts"),"You have made too many posts in a short time. Please try again later."); + } + } + + public static final class NodeLoop extends ModelException { + NodeLoop(Node node) { + super(name("node_loop"),"setParent creates loop " + node); + } +// protected NodeLoop() {} + } + + public static final class RequiredSubject extends ModelException { + RequiredSubject() { + super(name("required_subject"),"The subject is required."); + } + } + + + public static final class RequiredName extends ModelException { + RequiredName() { + super(name("required_name"),"You must provide a user name."); + } + } + + public static final class InvalidPermalink extends ModelException { + public InvalidPermalink() { + super(name("invalid_permalink")); + } + } + + public static final class ReadOnly extends ModelException { + ReadOnly() { + super(name("read_only"),"Unauthorized to post here."); + } + } + + public static final class NoAnonymous extends ModelException { + public final Node authorizingNode; + + NoAnonymous(Node authorizingNode) { + super(name("no_anonymous"),"Anonymous users may not post here."); + this.authorizingNode = authorizingNode; + } + } + + public static final class AlreadyMember extends ModelException { + AlreadyMember() { + super(name("already_member"),"User is already a member."); + } + } + + public static final class InvalidRecaptcha extends ModelException { + public InvalidRecaptcha() { + super(name("invalid_recaptcha"),"Please verify that you are not a robot."); + } + } + + public static final class InvalidDate extends ModelException { + public InvalidDate(String date) { + super(name("invalid_date"),"invalid date format: " + date); + } + } + + // Spam Handling -------------------------------------------------------------- + + public static abstract class SpamException extends ModelException { + public final String badText; + + public SpamException(Name name, String badText, String msg) { + super(name, msg); + this.badText = badText; + } + } + + public static final class SubjectContainsInvalidWord extends SpamException { + public SubjectContainsInvalidWord(String badText) { + super(name("subject_contains_invalid_spam_word"),badText,"Subject cannot contain \"" + badText + '"'); + } + } + + public static final class MessageContainsInvalidWord extends SpamException { + public MessageContainsInvalidWord(String badText) { + super(name("message_contains_invalid_spam_word"),badText,"Message cannot contain \"" + badText + '"'); + } + } + + public static final class MessageContainsManyInvalidWords extends SpamException { + public MessageContainsManyInvalidWords(String badText) { + super(name("message_contains_many_invalid_spam_words"),badText,"Too many words: \"" + badText + '"'); + } + } + + public static final class SubjectContainsCommonSpamWords extends SpamException { + public SubjectContainsCommonSpamWords(String subject) { + super(name("subject_contains_common_spam_words"),subject,"Subject contains common spam words: \"" + subject + '"'); + } + } + + public static final class MessageContainsCommonSpamWords extends SpamException { + public MessageContainsCommonSpamWords(String message) { + super(name("message_contains_common_spam_words"),message,"Message contains common spam words: \"" + message + '"'); + } + } + + + + public static final class EmailFormat extends ModelException { + public final String badEmail; + + public EmailFormat(String badEmail) { + super(name("invalid_email"),"Invalid email address: '" + badEmail + "'"); + this.badEmail = badEmail; + } + } + + public static final class UrlFormat extends ModelException { + public final String badUrl; + + UrlFormat(String badUrl,MalformedURLException e) { + super(name("url_format"),"Invalid URL: '" + badUrl + "'",e); + this.badUrl = badUrl; + } + } + + public static class InvalidFile extends ModelException { + public final String fileName; + + public InvalidFile(String fileName) { + super(name("invalid_file_exception")); + this.fileName = fileName; + } + } + + public static class InvalidImage extends ModelException { + public final String fileName; + + public InvalidImage(String fileName) { + super(name("invalid_image_exception")); + this.fileName = fileName; + } + } + +}