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.OperationGroup;
20 import com.atlassian.jira.rest.client.api.domain.OperationHeader;
21 import com.atlassian.jira.rest.client.api.domain.OperationLink;
22 import org.codehaus.jettison.json.JSONException;
23 import org.codehaus.jettison.json.JSONObject;
24
25 public class OperationGroupJsonParser implements JsonObjectParser<OperationGroup> {
26 final private OperationLinkJsonParser linkJsonParser = new OperationLinkJsonParser();
27 final private OperationHeaderJsonParser headerJsonParser = new OperationHeaderJsonParser();
28
29 @Override
30 public OperationGroup parse(final JSONObject json) throws JSONException {
31 final String id = JsonParseUtil.getOptionalString(json, "id");
32 final Iterable<OperationLink> links = JsonParseUtil.parseJsonArray(json.getJSONArray("links"), linkJsonParser);
33 final Iterable<OperationGroup> groups = JsonParseUtil.parseJsonArray(json.getJSONArray("groups"), this);
34 final OperationHeader header = JsonParseUtil.parseOptionalJsonObject(json, "header", headerJsonParser);
35 final Integer weight = JsonParseUtil.parseOptionInteger(json, "weight");
36 return new OperationGroup(id, links, groups, header, weight);
37 }
38 }