001: /*
002: * Copyright (c) 2001 - 2005 ivata limited.
003: * All rights reserved.
004: * -----------------------------------------------------------------------------
005: * ivata masks may be redistributed under the GNU General Public
006: * License as published by the Free Software Foundation;
007: * version 2 of the License.
008: *
009: * These programs are free software; you can redistribute them and/or
010: * modify them under the terms of the GNU General Public License
011: * as published by the Free Software Foundation; version 2 of the License.
012: *
013: * These programs are distributed in the hope that they will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
016: *
017: * See the GNU General Public License in the file LICENSE.txt for more
018: * details.
019: *
020: * If you would like a copy of the GNU General Public License write to
021: *
022: * Free Software Foundation, Inc.
023: * 59 Temple Place - Suite 330
024: * Boston, MA 02111-1307, USA.
025: *
026: *
027: * To arrange commercial support and licensing, contact ivata at
028: * http://www.ivata.com/contact.jsp
029: * -----------------------------------------------------------------------------
030: * $Log: ValidationException.java,v $
031: * Revision 1.5 2005/10/11 18:55:29 colinmacleod
032: * Fixed some checkstyle and javadoc issues.
033: *
034: * Revision 1.4 2005/10/02 14:06:32 colinmacleod
035: * Added/improved log4j logging.
036: *
037: * Revision 1.3 2005/09/14 12:51:52 colinmacleod
038: * Added serialVersionUID.
039: *
040: * Revision 1.2 2005/04/09 18:04:16 colinmacleod
041: * Changed copyright text to GPL v2 explicitly.
042: *
043: * Revision 1.1 2005/03/10 10:25:13 colinmacleod
044: * Moved from ivata groupware to ivata masks.
045: *
046: * Revision 1.6 2004/12/23 21:01:27 colinmacleod
047: * Updated Struts to v1.2.4.
048: * Changed base classes to use ivata masks.
049: *
050: * Revision 1.5 2004/11/12 15:57:10 colinmacleod
051: * Removed dependencies on SSLEXT.
052: * Moved Persistence classes to ivata masks.
053: *
054: * Revision 1.4 2004/07/13 19:42:43 colinmacleod
055: * Moved project to POJOs from EJBs.
056: * Applied PicoContainer to services layer (replacing session EJBs).
057: * Applied Hibernate to persistence layer (replacing entity EJBs).
058: *
059: * Revision 1.3 2004/03/21 21:16:23 colinmacleod
060: * Shortened name to ivata op.
061: *
062: * Revision 1.2 2004/02/01 22:07:29 colinmacleod
063: * Added full names to author tags
064: *
065: * Revision 1.1 2004/01/29 13:48:41 janboros
066: * Moved ivata openportal to SourceForge.
067: *
068: * Revision 1.1 2003/10/16 07:27:45 colin
069: * Moved to new CVS repository.
070: *
071: * Revision 1.3 2003/02/21 08:52:26 colin
072: * changed to implement Serializable
073: *
074: * Revision 1.2 2003/02/20 20:48:31 colin
075: * made it extend RuntimeException
076: *
077: * Revision 1.8 2003/02/20 20:27:36 colin
078: * improved validation by adding ValidationField and ValidationException
079: *
080: * Revision 1.1 2003/02/20 20:24:11 colin
081: * improved validation by adding ValidationField and ValidationException
082: * -----------------------------------------------------------------------------
083: */
084: package com.ivata.mask.validation;
085:
086: import org.apache.log4j.Logger;
087:
088: import com.ivata.mask.util.SystemException;
089:
090: /**
091: * <p>An instance of this class is thrown by <i>ivata groupware</i>
092: * server-side methods when an error occurs that prevents the method
093: * from continuing.</p>
094: *
095: * @since ivata masks 0.5 (2003-02-20)
096: * @author Colin MacLeod
097: * <a href='mailto:colin.macleod@ivata.com'>colin.macleod@ivata.com</a>
098: * @version $Revision: 1.5 $
099: * @see ValidationErrors
100: * @see org.apache.struts.action.ActionMessage
101: */
102: public class ValidationException extends SystemException {
103: /**
104: * Logger for this class.
105: */
106: private static final Logger logger = Logger
107: .getLogger(ValidationException.class);
108:
109: /**
110: * Serialization version (for <code>Serializable</code> interface).
111: */
112: private static final long serialVersionUID = 1L;
113:
114: /**
115: * <p>Contains all of the errors which caused this exception to
116: * happen.</p>
117: */
118: private ValidationErrors errors;
119:
120: /**
121: * <p>Creates a validation exception.</p>
122: *
123: * @param error error which caused the exception to occur.
124: */
125: public ValidationException(final ValidationError error) {
126: super ("ValidationException: " + error);
127:
128: errors = new ValidationErrors();
129: errors.add(error);
130: }
131:
132: /**
133: * <p>Creates a validation exception.</p>
134: *
135: * @param errorsParam errors which caused the exception to occur.
136: */
137: public ValidationException(final ValidationErrors errorsParam) {
138: super ("ValidationException: " + errorsParam);
139: this .errors = errorsParam;
140: }
141:
142: /**
143: * <p>Contains all of the errors which caused this exception to
144: * happen.</p>
145: *
146: * @return the current value of errors.
147: */
148: public ValidationErrors getErrors() {
149: if (logger.isDebugEnabled()) {
150: logger.debug("getErrors() - start");
151: }
152:
153: if (logger.isDebugEnabled()) {
154: logger
155: .debug("getErrors() - end - return value = "
156: + errors);
157: }
158: return errors;
159: }
160: }
|