ClassParseException.java

package com.ziesemer.utils.classParser;

/**
 * @author Mark A. Ziesemer
 * 	<a href="http://www.ziesemer.com.">&lt;www.ziesemer.com&gt;</a>
 */
public class ClassParseException extends IllegalArgumentException{
	
	private static final long serialVersionUID = 1L;
	
	protected final Class<?> destClass;
	protected final String problemText;
	
	public ClassParseException(final String message, final Class<?> destClass, final String problemText){
		super(message);
		this.destClass = destClass;
		this.problemText = problemText;
	}
	
	public String getProblemText(){
		return problemText;
	}
	
	@Override
	public String getMessage(){
		final StringBuilder sb = new StringBuilder();
		sb.append("Unable to convert to ");
		sb.append(destClass);
		sb.append(".  ");
		sb.append(super.getMessage());
		sb.append(": ");
		final String pt = getProblemText();
		if(pt == null){
			sb.append("(null)");
		}else{
			sb.append('\"');
			sb.append(pt);
			sb.append('\"');
		}
		sb.append('.');
		return sb.toString();
	}
	
}