package com.intellij.tasks.jira.rest.api20alpha1.model; import com.intellij.tasks.jira.rest.model.*; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Date; import java.util.List; /** * @author Mikhail Golubev */ public class JiraIssueApi20Alpha1 extends JiraIssue { private Fields fields; private String self; private String key; @NotNull @Override public String getKey() { return key; } @NotNull @Override public String getIssueUrl() { return self; } @NotNull @Override public String getSummary() { return fields.summary.getValue(); } @Nullable @Override public String getDescription() { return fields.description.getValue(); } @NotNull @Override public Date getCreated() { return fields.created.getValue(); } @NotNull @Override public Date getUpdated() { return fields.updated.getValue(); } @Nullable @Override public Date getResolutionDate() { return fields.resolutiondate.getValue(); } @Nullable @Override public Date getDueDate() { return fields.duedate.getValue(); } @NotNull @Override public JiraIssueType getIssueType() { return fields.issuetype.getValue(); } @Nullable @Override public JiraUser getAssignee() { return fields.assignee.getValue(); } @Nullable @Override public JiraUser getReporter() { return fields.reporter.getValue(); } @NotNull @Override public List<JiraComment> getComments() { return fields.comment.getValue(); } @NotNull @Override public JiraStatus getStatus() { return fields.status.getValue(); } public static class FieldWrapper<T> { /** * Serialization constructor */ public FieldWrapper() { // empty } public FieldWrapper(T value) { this.value = value; } T value; public T getValue() { return value; } } public static class Fields { private FieldWrapper<JiraUser> reporter; private FieldWrapper<JiraUser> assignee; private FieldWrapper<String > summary; private FieldWrapper<String> description; private FieldWrapper<Date> created; private FieldWrapper<Date> updated; private FieldWrapper<Date> resolutiondate; private FieldWrapper<Date> duedate; private FieldWrapper<JiraStatus> status; private FieldWrapper<JiraIssueType> issuetype; private FieldWrapper<List<JiraComment>> comment; } }