/******************************************************************************* * Copyright (c) 2011 GitHub Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Kevin Sawicki (GitHub Inc.) - initial API and implementation *******************************************************************************/ package org.eclipse.egit.github.core; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.eclipse.egit.github.core.util.DateUtils; /** * GitHub issue model class. */ public class Issue implements Serializable { /** serialVersionUID */ private static final long serialVersionUID = 6358575015023539051L; private long id; private Date closedAt; private Date createdAt; private Date updatedAt; private int comments; private int number; private List<Label> labels; private Milestone milestone; private PullRequest pullRequest; private String body; private String bodyHtml; private String bodyText; private String htmlUrl; private String state; private String title; private String url; private User assignee; private User user; /** * @return closedAt */ public Date getClosedAt() { return DateUtils.clone(closedAt); } /** * @param closedAt * @return this issue */ public Issue setClosedAt(Date closedAt) { this.closedAt = DateUtils.clone(closedAt); return this; } /** * @return createdAt */ public Date getCreatedAt() { return DateUtils.clone(createdAt); } /** * @param createdAt * @return this issue */ public Issue setCreatedAt(Date createdAt) { this.createdAt = DateUtils.clone(createdAt); return this; } /** * @return updatedAt */ public Date getUpdatedAt() { return DateUtils.clone(updatedAt); } /** * @param updatedAt * @return this issue */ public Issue setUpdatedAt(Date updatedAt) { this.updatedAt = DateUtils.clone(updatedAt); return this; } /** * @return comments */ public int getComments() { return comments; } /** * @param comments * @return this issue */ public Issue setComments(int comments) { this.comments = comments; return this; } /** * @return number */ public int getNumber() { return number; } /** * @param number * @return this issue */ public Issue setNumber(int number) { this.number = number; return this; } /** * @return labels */ public List<Label> getLabels() { return labels; } /** * @param labels * @return this issue */ public Issue setLabels(List<Label> labels) { this.labels = labels != null ? new ArrayList<Label>(labels) : null; return this; } /** * @return milestone */ public Milestone getMilestone() { return milestone; } /** * @param milestone * @return this issue */ public Issue setMilestone(Milestone milestone) { this.milestone = milestone; return this; } /** * @return pullRequest */ public PullRequest getPullRequest() { return pullRequest; } /** * @param pullRequest * @return this issue */ public Issue setPullRequest(PullRequest pullRequest) { this.pullRequest = pullRequest; return this; } /** * @return body */ public String getBody() { return body; } /** * @param body * @return this issue */ public Issue setBody(String body) { this.body = body; return this; } /** * @return bodyHtml */ public String getBodyHtml() { return bodyHtml; } /** * @param bodyHtml * @return this issue */ public Issue setBodyHtml(String bodyHtml) { this.bodyHtml = bodyHtml; return this; } /** * @return bodyText */ public String getBodyText() { return bodyText; } /** * @param bodyText * @return this issue */ public Issue setBodyText(String bodyText) { this.bodyText = bodyText; return this; } /** * @return htmlUrl */ public String getHtmlUrl() { return htmlUrl; } /** * @param htmlUrl * @return this issue */ public Issue setHtmlUrl(String htmlUrl) { this.htmlUrl = htmlUrl; return this; } /** * @return state */ public String getState() { return state; } /** * @param state * @return this issue */ public Issue setState(String state) { this.state = state; return this; } /** * @return title */ public String getTitle() { return title; } /** * @param title * @return this issue */ public Issue setTitle(String title) { this.title = title; return this; } /** * @return url */ public String getUrl() { return url; } /** * @param url * @return this issue */ public Issue setUrl(String url) { this.url = url; return this; } /** * @return assignee */ public User getAssignee() { return assignee; } /** * @param assignee * @return this issue */ public Issue setAssignee(User assignee) { this.assignee = assignee; return this; } /** * @return user */ public User getUser() { return user; } /** * @param user * @return this issue */ public Issue setUser(User user) { this.user = user; return this; } /** * @return id */ public long getId() { return id; } /** * @param id * @return this issue */ public Issue setId(long id) { this.id = id; return this; } @Override public String toString() { return "Issue [id=" + id + ", closedAt=" + closedAt + ", createdAt=" + createdAt + ", updatedAt=" + updatedAt + ", comments=" + comments + ", number=" + number + ", labels=" + labels + ", milestone=" + milestone + ", pullRequest=" + pullRequest + ", body=" + body + ", bodyHtml=" + bodyHtml + ", bodyText=" + bodyText + ", htmlUrl=" + htmlUrl + ", state=" + state + ", title=" + title + ", url=" + url + ", assignee=" + assignee + ", user=" + user + ", getClosedAt()=" + getClosedAt() + ", getCreatedAt()=" + getCreatedAt() + ", getUpdatedAt()=" + getUpdatedAt() + ", getComments()=" + getComments() + ", getNumber()=" + getNumber() + ", getLabels()=" + getLabels() + ", getMilestone()=" + getMilestone() + ", getPullRequest()=" + getPullRequest() + ", getBody()=" + getBody() + ", getBodyHtml()=" + getBodyHtml() + ", getBodyText()=" + getBodyText() + ", getHtmlUrl()=" + getHtmlUrl() + ", getState()=" + getState() + ", getTitle()=" + getTitle() + ", getUrl()=" + getUrl() + ", getAssignee()=" + getAssignee() + ", getUser()=" + getUser() + ", getId()=" + getId() + "]"; } // @Override // public String toString() { // return "Issue " + number; //$NON-NLS-1$ // } }