1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.atlassian.jira.rest.client.internal.json;
18
19 import org.codehaus.jettison.json.JSONException;
20 import org.codehaus.jettison.json.JSONObject;
21
22 class JsonWeakParserForJsonObject<T> implements JsonWeakParser<T> {
23 private final JsonParser<T> jsonParser;
24
25 public JsonWeakParserForJsonObject(JsonParser<T> jsonParser) {
26 this.jsonParser = jsonParser;
27 }
28
29 private <T> T convert(Object o, Class<T> clazz) throws JSONException {
30 try {
31 return clazz.cast(o);
32 } catch (ClassCastException e) {
33 throw new JSONException("Expected [" + clazz.getSimpleName() + "], but found [" + o.getClass().getSimpleName() + "]");
34 }
35 }
36
37 @Override
38 public T parse(Object o) throws JSONException {
39 return jsonParser.parse(convert(o, JSONObject.class));
40 }
41 }