Java tutorial
/* * * Copyright (c) 2015 SERENA Software, Inc. All Rights Reserved. * * This software is proprietary information of SERENA Software, Inc. * Use is subject to license terms. * */ package com.serena.rlc.provider.jira.domain; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.ArrayList; import java.util.List; /** * * @author klee */ public class Issue extends JiraObject { private static final long serialVersionUID = 1L; private final static Logger logger = LoggerFactory.getLogger(Project.class); private String status; private String url; private String owner; private String project; private String priority; private String type; private String dateCreated; private String creator; private String lastUpdated; private String assignee; private String dueDate; private String estimatedEffort; private String actualEffort; public Issue() { } public Issue(String id, String name, String description, String status, String url) { this.setId(id); this.setName(name); this.setDescription(description); this.setStatus(status); this.setUrl(url); this.setType("Issue"); } public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getOwner() { return owner; } public void setOwner(String owner) { this.owner = owner; } public String getProject() { return project; } public void setProject(String project) { this.project = project; } public String getPriority() { return priority; } public void setPriority(String priority) { this.priority = priority; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getDateCreated() { return dateCreated; } public void setDateCreated(String dateCreated) { this.dateCreated = dateCreated; } public String getCreator() { return creator; } public void setCreator(String creator) { this.creator = creator; } public String getLastUpdated() { return lastUpdated; } public void setLastUpdated(String lastModifier) { this.lastUpdated = lastModifier; } public String getAssignee() { return assignee; } public void setAssignee(String assignee) { this.assignee = assignee; } public String getDueDate() { return dueDate; } public void setDueDate(String dueDate) { this.dueDate = dueDate; } public String getEstimatedEffort() { return estimatedEffort; } public void setEstimatedEffort(String estimatedEffort) { this.estimatedEffort = estimatedEffort; } public String getActualEffort() { return actualEffort; } public void setActualEffort(String actualEffort) { this.actualEffort = actualEffort; } public static Issue parseSingle(String options) { JSONParser parser = new JSONParser(); try { Object parsedObject = parser.parse(options); JSONObject jsonObject = (JSONObject) parsedObject; Issue issue = parseSingle(jsonObject); return issue; } catch (ParseException e) { logger.error("Error while parsing input JSON - " + options, e); } return null; } public static List<Issue> parse(String options) { List<Issue> list = new ArrayList<Issue>(); JSONParser parser = new JSONParser(); try { Object parsedObject = parser.parse(options); JSONArray array = (JSONArray) ((JSONObject) parsedObject).get("issues"); for (Object object : array) { Issue obj = new Issue(); JSONObject jsonObject = (JSONObject) object; JSONObject fieldsObject = (JSONObject) jsonObject.get("fields"); JSONObject typeObject = (JSONObject) fieldsObject.get("issuetype"); JSONObject statusObject = (JSONObject) fieldsObject.get("status"); JSONObject projectObject = (JSONObject) fieldsObject.get("project"); JSONObject creatorObject = (JSONObject) fieldsObject.get("creator"); JSONObject priorityObject = (JSONObject) fieldsObject.get("priority"); obj.setId((String) jsonObject.get("key")); obj.setUrl((String) jsonObject.get("key")); obj.setName((String) fieldsObject.get("summary")); obj.setDescription((String) fieldsObject.get("description")); obj.setDateCreated((String) fieldsObject.get("created")); obj.setLastUpdated((String) fieldsObject.get("updated")); obj.setType((String) typeObject.get("name")); obj.setStatus((String) statusObject.get("name")); obj.setProject((String) projectObject.get("name")); obj.setCreator((String) creatorObject.get("name")); obj.setPriority((String) priorityObject.get("name")); list.add(obj); } } catch (ParseException e) { logger.error("Error while parsing input JSON - " + options, e); } return list; } public static Issue parseSingle(JSONObject jsonObject) { Issue obj = new Issue(); if (jsonObject != null) { JSONObject fieldsObject = (JSONObject) jsonObject.get("fields"); JSONObject typeObject = (JSONObject) fieldsObject.get("issuetype"); JSONObject statusObject = (JSONObject) fieldsObject.get("status"); JSONObject projectObject = (JSONObject) fieldsObject.get("project"); JSONObject creatorObject = (JSONObject) fieldsObject.get("creator"); JSONObject priorityObject = (JSONObject) fieldsObject.get("priority"); obj.setId((String) jsonObject.get("key")); obj.setUrl((String) jsonObject.get("key")); obj.setName((String) fieldsObject.get("summary")); obj.setDescription((String) fieldsObject.get("description")); obj.setDateCreated((String) fieldsObject.get("created")); obj.setLastUpdated((String) fieldsObject.get("updated")); obj.setType((String) typeObject.get("name")); obj.setStatus((String) statusObject.get("name")); obj.setProject((String) projectObject.get("name")); obj.setCreator((String) creatorObject.get("name")); obj.setPriority((String) priorityObject.get("name")); } return obj; } }