com.serena.rlc.provider.jira.domain.Issue.java Source code

Java tutorial

Introduction

Here is the source code for com.serena.rlc.provider.jira.domain.Issue.java

Source

/*
 *
 * 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;
    }

}