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.Comment;
21 import com.atlassian.jira.rest.client.api.domain.Visibility;
22 import org.codehaus.jettison.json.JSONException;
23 import org.codehaus.jettison.json.JSONObject;
24
25 import java.net.URI;
26
27 public class CommentJsonParser implements JsonObjectParser<Comment> {
28
29 public static final String VISIBILITY_KEY = "visibility";
30 private final VisibilityJsonParser visibilityJsonParser = new VisibilityJsonParser();
31
32 @Override
33 public Comment parse(JSONObject json) throws JSONException {
34 final URI selfUri = JsonParseUtil.getSelfUri(json);
35 final Long id = JsonParseUtil.getOptionalLong(json, "id");
36 final String body = json.getString("body");
37 final BasicUser author = JsonParseUtil.parseBasicUser(json.optJSONObject("author"));
38 final BasicUser updateAuthor = JsonParseUtil.parseBasicUser(json.optJSONObject("updateAuthor"));
39
40 final Visibility visibility = visibilityJsonParser.parseVisibility(json);
41 return new Comment(selfUri, body, author, updateAuthor, JsonParseUtil.parseDateTime(json.getString("created")),
42 JsonParseUtil.parseDateTime(json.getString("updated")), visibility, id);
43 }
44 }