001package org.apache.tapestry5.json.exceptions;
002
003import org.apache.tapestry5.json.JSONType;
004
005public class JSONTypeMismatchException extends RuntimeException
006{
007
008    private static final long serialVersionUID = 268314880458464132L;
009
010    private final String location;
011    private final JSONType requiredType;
012    private final Class<? extends Object> invalidClass;
013
014    public JSONTypeMismatchException(String location, JSONType requiredType,
015            Class<? extends Object> invalidClass)
016    {
017        super(location + (invalidClass == null ? " is null."
018                : " is not a " + requiredType.name() + ". Actual: " + invalidClass.getName()));
019        this.location = location;
020        this.requiredType = requiredType;
021        this.invalidClass = invalidClass;
022    }
023
024    public String getLocation()
025    {
026        return this.location;
027    }
028
029    public JSONType getRequiredType()
030    {
031        return this.requiredType;
032    }
033
034    public Class<? extends Object> getInvalidClass()
035    {
036        return this.invalidClass;
037    }
038
039}