package com.qprogramming.tasq.task.worklog;
import java.util.LinkedList;
import java.util.List;
import java.util.stream.Collectors;
import org.joda.time.Period;
import org.springframework.beans.BeanUtils;
import com.qprogramming.tasq.account.DisplayAccount;
import com.qprogramming.tasq.task.DisplayTask;
public class DisplayWorkLog {
private Long id;
private String time;
private String timeLogged;
private DisplayAccount account;
private Enum<LogType> type;
private Period activity;
private String message;
private Long projectId;
private DisplayTask task;
public DisplayWorkLog() {
// TODO Auto-generated constructor stub
}
public DisplayWorkLog(WorkLog wl) {
BeanUtils.copyProperties(wl, this);
setAccount(new DisplayAccount(wl.getAccount()));
if (wl.getTask() != null) {
setTask(new DisplayTask(wl.getTask()));
}
}
public Long getId() {
return id;
}
public String getTime() {
return time;
}
public String getTimeLogged() {
return timeLogged;
}
public DisplayAccount getAccount() {
return account;
}
public Enum<LogType> getType() {
return type;
}
public Period getActivity() {
return activity;
}
public String getMessage() {
return message;
}
public Long getProjectId() {
return projectId;
}
public DisplayTask getTask() {
return task;
}
public void setId(Long id) {
this.id = id;
}
public void setTime(String time) {
this.time = time;
}
public void setTimeLogged(String timeLogged) {
this.timeLogged = timeLogged;
}
public void setAccount(DisplayAccount account) {
this.account = account;
}
public void setType(Enum<LogType> type) {
this.type = type;
}
public void setActivity(Period activity) {
this.activity = activity;
}
public void setMessage(String message) {
this.message = message;
}
public void setProjectId(Long projectId) {
this.projectId = projectId;
}
public void setTask(DisplayTask task) {
this.task = task;
}
/**
* Static method to return list of more lightweight form of WorkLog
*
* @param list
* @return
*/
public static List<DisplayWorkLog> convertToDisplayWorkLogs(
List<WorkLog> list) {
return list.stream().map(DisplayWorkLog::new).collect(Collectors.toCollection(LinkedList::new));
}
}