View Javadoc

1   package com.atlassian.jira.rest.client.internal.json;
2   
3   import com.atlassian.jira.rest.client.api.domain.IssueType;
4   import com.atlassian.jira.rest.client.api.domain.Status;
5   import com.atlassian.jira.rest.client.api.domain.Subtask;
6   import org.codehaus.jettison.json.JSONException;
7   import org.codehaus.jettison.json.JSONObject;
8   
9   import java.net.URI;
10  
11  public class SubtaskJsonParser implements JsonObjectParser<Subtask> {
12      private final IssueTypeJsonParser issueTypeJsonParser = new IssueTypeJsonParser();
13      private final StatusJsonParser statusJsonParser = new StatusJsonParser();
14  
15      @Override
16      public Subtask parse(JSONObject json) throws JSONException {
17          final URI issueUri = JsonParseUtil.parseURI(json.getString("self"));
18          final String issueKey = json.getString("key");
19          final JSONObject fields = json.getJSONObject("fields");
20          final String summary = fields.getString("summary");
21          final Status status = statusJsonParser.parse(fields.getJSONObject("status"));
22          final IssueType issueType = issueTypeJsonParser.parse(fields.getJSONObject("issuetype"));
23          return new Subtask(issueKey, issueUri, summary, issueType, status);
24      }
25  }