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.IssueLinkType;
20 import org.codehaus.jettison.json.JSONException;
21 import org.codehaus.jettison.json.JSONObject;
22
23 public class IssueLinkTypeJsonParser implements JsonObjectParser<IssueLinkType> {
24 private static final String KEY_DIRECTION = "direction";
25
26 @Override
27 public IssueLinkType parse(JSONObject json) throws JSONException {
28 final String name = json.getString("name");
29 final String description = json.getString("description");
30 final String dirStr = json.getString(KEY_DIRECTION);
31 final IssueLinkType.Direction direction;
32 if ("OUTBOUND".equals(dirStr)) {
33 direction = IssueLinkType.Direction.OUTBOUND;
34 } else if ("INBOUND".equals(dirStr)) {
35 direction = IssueLinkType.Direction.INBOUND;
36 } else {
37 throw new JSONException("Invalid value of " + KEY_DIRECTION + " key: [" + dirStr + "]");
38 }
39 return new IssueLinkType(name, description, direction);
40 }
41 }
42