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.gen;
18
19 import com.atlassian.jira.rest.client.api.domain.input.FieldInput;
20 import com.atlassian.jira.rest.client.api.domain.input.IssueInput;
21 import com.atlassian.jira.rest.client.api.domain.input.PropertyInput;
22 import org.codehaus.jettison.json.JSONArray;
23 import org.codehaus.jettison.json.JSONException;
24 import org.codehaus.jettison.json.JSONObject;
25
26
27
28
29
30
31 public class IssueInputJsonGenerator implements JsonGenerator<IssueInput> {
32
33 private final ComplexIssueInputFieldValueJsonGenerator complexIssueInputFieldValueJsonGenerator = new ComplexIssueInputFieldValueJsonGenerator();
34
35 @Override
36 public JSONObject generate(final IssueInput issue) throws JSONException {
37 final JSONObject jsonObject = new JSONObject();
38 final JSONObject fields = new JSONObject();
39
40 if (issue != null && issue.getFields() != null) {
41 for (final FieldInput field : issue.getFields().values()) {
42 if (field.getValue() != null) {
43 fields.put(field.getId(), complexIssueInputFieldValueJsonGenerator.generateFieldValueForJson(field
44 .getValue()));
45 }
46 }
47 }
48
49 jsonObject.put("fields", fields);
50
51
52 final JSONArray entityProperties = new JSONArray();
53 if (issue != null && issue.getProperties() != null) {
54 for (final PropertyInput p : issue.getProperties()) {
55 final JSONObject property = new JSONObject();
56 property.put("key", p.getKey());
57 property.put("value", new JSONObject(p.getValue()));
58 entityProperties.put(property);
59 }
60 }
61 jsonObject.put("properties", entityProperties);
62
63 return jsonObject;
64 }
65
66 }