001 /**
002 * Copyright 2005-2013 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016 package org.kuali.rice.ken.exception;
017
018 import java.util.ArrayList;
019 import java.util.Iterator;
020 import java.util.List;
021
022 /**
023 * This class is a valud added datastructure that is used to house a list of Exceptions and is
024 * recognized as an Exception so that it can be thrown from methods and handled like an Exception.
025 * @author Kuali Rice Team (rice.collab@kuali.org)
026 */
027 public class ErrorList extends Exception {
028 private static final long serialVersionUID = -8045847343472018601L;
029
030 private List errorList;
031
032 /**
033 * Constructs a ErrorList instance.
034 */
035 public ErrorList() {
036 errorList = new ArrayList();
037 }
038
039 /**
040 * This method checks to see if the list is empty or not.
041 * @return boolean
042 */
043 public boolean isEmpty() {
044 return errorList.isEmpty();
045 }
046
047 /**
048 * This method adds errors to the error list.
049 * @param error
050 */
051 public void addError(String error) {
052 this.errorList.add(error);
053 }
054
055 /**
056 * This method retreives all of the errors in the list.
057 * @return List
058 */
059 public List getErrors() {
060 return this.errorList;
061 }
062
063 /**
064 * This method adds a list of errors to the error list.
065 * @param errors
066 */
067 public void addErrors(ErrorList errors) {
068 this.errorList.addAll(errors.errorList);
069 }
070
071 /**
072 * This method returns a string representation of all of the errors in the error list.
073 * @see java.lang.Throwable#getMessage()
074 */
075 public String getMessage() {
076 return toString();
077 }
078
079 /**
080 * This method is responsible for concatenating all of the errors in the error list together.
081 * @see java.lang.Throwable#toString()
082 */
083 public String toString() {
084 StringBuffer buf = new StringBuffer("errors=(");
085
086 for (Iterator i = errorList.iterator(); i.hasNext();) {
087 buf.append(i.next());
088 if (i.hasNext()) {
089 buf.append(";");
090 }
091 }
092 buf.append(")");
093
094 return buf.toString();
095 }
096 }