package to.rtc.rtc2jira.exporter.jira.entities; import java.util.Date; import java.util.HashSet; import java.util.Set; import javax.xml.bind.annotation.XmlRootElement; import org.codehaus.jackson.map.annotate.JsonView; @XmlRootElement public class Issue extends BaseEntity { private String expand; private IssueFields fields = new IssueFields(); @JsonView(IssueView.Read.class) public String getExpand() { return expand; } public void setExpand(String expand) { this.expand = expand; } public IssueFields getFields() { return fields; } public void setFields(IssueFields fields) { this.fields = fields; } @Override public String getPath() { return "/issue"; } @Override public String getSelfPath() { String key = getKey() != null ? getKey() : getId(); return getPath() + "/" + key; } @JsonView(IssueView.Filtered.class) public Date getCreated() { return getFields().getCreated(); } public void setCreated(Date created) { getFields().setCreated(created); } /** * Should return collection with only one item * * @return */ public Set<IssueLink> categoryLinks() { Set<IssueLink> result = new HashSet<IssueLink>(); Set<IssueLink> issuelinks = getFields().getIssuelinks(); for (IssueLink issueLink : issuelinks) { issueLink.setReferencingIssue(this); if (issueLink.getType().equals(IssueLinkType.CATEGORY)) { result.add(issueLink); } } return result; } /** * Should return collection with only one item * * @return */ public Set<IssueLink> iterationLinks() { Set<IssueLink> result = new HashSet<IssueLink>(); Set<IssueLink> issuelinks = getFields().getIssuelinks(); for (IssueLink issueLink : issuelinks) { issueLink.setReferencingIssue(this); if (issueLink.getType().equals(IssueLinkType.ITERATION)) { result.add(issueLink); } } return result; } /** * Should return collection with only one item * * @return */ public Set<IssueLink> hierarchyLinks() { Set<IssueLink> result = new HashSet<IssueLink>(); Set<IssueLink> issuelinks = getFields().getIssuelinks(); for (IssueLink issueLink : issuelinks) { issueLink.setReferencingIssue(this); if (issueLink.getType().equals(IssueLinkType.HIERARCHY)) { result.add(issueLink); } } return result; } public Issue asReferenceObject() { Issue result = new Issue(); result.setKey(this.getKey()); if (this.getId() != null && !this.getId().isEmpty()) { result.setId(this.getId()); } result.setFields(null); return result; } }