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.Transition;
20 import org.codehaus.jettison.json.JSONException;
21 import org.codehaus.jettison.json.JSONObject;
22
23 import java.util.Collection;
24
25 public class TransitionJsonParser {
26 private final TransitionFieldJsonParser transitionFieldJsonParser = new TransitionFieldJsonParser();
27
28 public Transition parse(JSONObject json, int id) throws JSONException {
29 final String name = json.getString("name");
30 final Collection<Transition.Field> fields = JsonParseUtil.parseJsonArray(json.getJSONArray("fields"),
31 transitionFieldJsonParser);
32 return new Transition(name, id, fields);
33 }
34
35 public static class TransitionFieldJsonParser implements JsonObjectParser<Transition.Field> {
36
37 @Override
38 public Transition.Field parse(JSONObject json) throws JSONException {
39 final String name = json.getString("id");
40 final boolean isRequired = json.getBoolean("required");
41 final String type = json.getString("type");
42 return new Transition.Field(name, isRequired, type);
43 }
44 }
45 }