blob: 0c26a88bf1bcf63e4d1fc2df178f7e8e3e0dfcdc [file] [log] [blame]
package org.apache.tapestry5.json;
import org.apache.tapestry5.json.exceptions.JSONTypeMismatchException;
import org.apache.tapestry5.json.exceptions.JSONValueNotFoundException;
class JSONExceptionBuilder
{
static RuntimeException typeMismatch(boolean array, Object indexOrName, Object actual,
JSONType requiredType)
{
String location = array ? "JSONArray[" + indexOrName + "]"
: "JSONObject[\"" + indexOrName + "\"]";
if (actual == null)
{
return valueNotFound(array, indexOrName, requiredType);
}
else
{
return new JSONTypeMismatchException(location, requiredType, actual.getClass());
}
}
static RuntimeException valueNotFound(boolean array, Object indexOrName, JSONType requiredType)
{
String location = array ? "JSONArray[" + indexOrName + "]"
: "JSONObject[\"" + indexOrName + "\"]";
return new JSONValueNotFoundException(location, requiredType);
}
static RuntimeException tokenerTypeMismatch(Object actual, JSONType requiredType)
{
if (actual == null)
{
return new JSONValueNotFoundException("Value", requiredType);
}
else
{
return new JSONTypeMismatchException("Value", requiredType, actual.getClass());
}
}
}