package org.dodgybits.shuffle.web.client.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
@SuppressWarnings("serial")
public class TaskValue implements Serializable {
private KeyValue<TaskValue> mKeyValue;
private String mTitle;
private String mDetails;
private KeyValue<ProjectValue> mProjectId;
private ArrayList<KeyValue<ContextValue>> mContextIds;
private Date mDueDate;
@SuppressWarnings("unused")
private TaskValue() {
// required for GWT serialization
}
public TaskValue(
KeyValue<TaskValue> id,
String title, String details,
KeyValue<ProjectValue> projectId, ArrayList<KeyValue<ContextValue>> contextIds,
Date dueDate) {
mKeyValue = id;
mTitle = title;
mDetails = details;
mProjectId = projectId;
mContextIds = contextIds;
mDueDate = dueDate;
}
public final KeyValue<TaskValue> getId() {
return mKeyValue;
}
public final String getTitle() {
return mTitle;
}
public final String getDetails() {
return mDetails;
}
public final KeyValue<ProjectValue> getProjectId() {
return mProjectId;
}
public final ArrayList<KeyValue<ContextValue>> getContextIds() {
return mContextIds;
}
public final Date getDueDate() {
return mDueDate;
}
public static final class Builder {
private KeyValue<TaskValue> mKeyValue;
private String mTitle;
private String mDetails;
private KeyValue<ProjectValue> mProjectId;
private ArrayList<KeyValue<ContextValue>> mContextIds;
private Date mDueDate;
public Builder setId(KeyValue<TaskValue> id) {
mKeyValue = id;
return this;
}
public final Builder setKeyValue(KeyValue<TaskValue> keyValue) {
mKeyValue = keyValue;
return this;
}
public final Builder setTitle(String title) {
mTitle = title;
return this;
}
public final Builder setDetails(String details) {
mDetails = details;
return this;
}
public final Builder setProjectId(KeyValue<ProjectValue> projectId) {
mProjectId = projectId;
return this;
}
public final Builder setContextIds(ArrayList<KeyValue<ContextValue>> contextIds) {
mContextIds = contextIds;
return this;
}
public final Builder setDueDate(Date dueDate) {
mDueDate = dueDate;
return this;
}
public TaskValue build() {
return new TaskValue(mKeyValue, mTitle, mDetails,
mProjectId, mContextIds, mDueDate);
}
}
}