/******************************************************************************* * 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; private User closedBy; /** * @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 closedBy */ public User getClosedBy() { return closedBy; } /** * @param closedBy * @return this issue */ public Issue setClosedBy(User closedBy) { this.closedBy = closedBy; 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 " + number; //$NON-NLS-1$ } }