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 com.atlassian.jira.rest.client.domain.BasicIssueType;
20 import com.atlassian.jira.rest.client.domain.IssueType;
21 import org.codehaus.jettison.json.JSONException;
22 import org.codehaus.jettison.json.JSONObject;
23
24 import java.net.URI;
25
26 public class IssueTypeJsonParser implements JsonObjectParser<IssueType> {
27 private final BasicIssueTypeJsonParser basicIssueTypeJsonParser = new BasicIssueTypeJsonParser();
28 @Override
29 public IssueType parse(JSONObject json) throws JSONException {
30 final BasicIssueType basicIssueType = basicIssueTypeJsonParser.parse(json);
31 final String iconUrl = JsonParseUtil.getOptionalString(json, "iconUrl");
32 final URI iconUri = iconUrl == null ? null : JsonParseUtil.parseURI(iconUrl);
33 final String description = JsonParseUtil.getOptionalString(json, "description");
34 return new IssueType(basicIssueType.getSelf(), basicIssueType.getId(), basicIssueType.getName(), basicIssueType.isSubtask(), description, iconUri);
35 }
36 }