001package org.kuali.ole.docstore.common.exception;
002
003import java.util.Iterator;
004import java.util.Map;
005import java.util.Set;
006import java.util.TreeMap;
007
008/**
009 * Created with IntelliJ IDEA.
010 * User: sambasivam
011 * Date: 12/17/13
012 * Time: 12:39 PM
013 * To change this template use File | Settings | File Templates.
014 */
015public class DocstoreException extends RuntimeException {
016
017    private String errorCode;
018    private String errorMessage;
019    private TreeMap<String, String> errorParams;
020
021    public DocstoreException() {
022        super();
023    }
024
025    public DocstoreException(String message) {
026        super(message);
027        setErrorMessage(message);
028    }
029
030    public DocstoreException(Exception e) {
031        super(e);
032        setErrorMessage(e.getMessage());
033    }
034
035    public DocstoreException(String errorCode, String errorMessage, TreeMap<String, String> errorParams) {
036        this.errorMessage = errorMessage;
037        this.errorCode = errorCode;
038        this.errorParams = errorParams;
039    }
040
041    public DocstoreException(String errorCode, String errorMessage) {
042        this.errorMessage = errorMessage;
043        this.errorCode = errorCode;
044    }
045
046    public String getErrorCode() {
047        return errorCode;
048    }
049
050    public void setErrorCode(String errorCode) {
051        this.errorCode = errorCode;
052    }
053
054    public String getErrorMessage() {
055        return errorMessage;
056    }
057
058    public void setErrorMessage(String errorMessage) {
059        this.errorMessage = errorMessage;
060    }
061
062    public TreeMap<String, String> getErrorParams() {
063        return errorParams;
064    }
065
066    @Override
067    public String toString() {
068        StringBuilder stb = new StringBuilder();
069        stb.append(super.toString());
070        stb.append("\n");
071        stb.append("Error Code = ");
072        stb.append(errorCode);
073        stb.append("\n");
074        stb.append("Error Message = ");
075        stb.append(errorMessage);
076        stb.append("\n");
077        if (errorParams != null) {
078            stb.append("ErrorParams = ");
079            stb.append("\n");
080            Set keySet = errorParams.keySet();
081            Iterator<String> iterator = keySet.iterator();
082            String key = null;
083            while (iterator.hasNext()) {
084                key = iterator.next();
085                stb.append("\t");
086                stb.append(key);
087                stb.append(" = ");
088                stb.append(errorParams.get(key));
089                stb.append("\n");
090            }
091        }
092        return stb.toString();
093    }
094
095    public void addErrorParams(String key, String value) {
096        if (errorParams == null) {
097            errorParams = new TreeMap<>();
098            errorParams.put(key, value);
099        } else {
100            errorParams.put(key, value);
101        }
102
103    }
104}