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.api.domain.BasicUser;
20 import com.atlassian.jira.rest.client.api.domain.ChangelogGroup;
21 import com.atlassian.jira.rest.client.api.domain.ChangelogItem;
22 import org.codehaus.jettison.json.JSONException;
23 import org.codehaus.jettison.json.JSONObject;
24 import org.joda.time.DateTime;
25
26 import java.util.Collection;
27
28 public class ChangelogJsonParser implements JsonObjectParser<ChangelogGroup> {
29 private final ChangelogItemJsonParser changelogItemJsonParser = new ChangelogItemJsonParser();
30
31 @Override
32 public ChangelogGroup parse(JSONObject json) throws JSONException {
33 final DateTime created = JsonParseUtil.parseDateTime(json, "created");
34 final BasicUser author = json.has("author") ? JsonParseUtil.parseBasicUser(json.getJSONObject("author")) : null;
35 final Collection<ChangelogItem> items = JsonParseUtil.parseJsonArray(json.getJSONArray("items"), changelogItemJsonParser);
36 return new ChangelogGroup(author, created, items);
37 }
38 }