ProjectViewModel.java

package taskfusion.viewModels;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import taskfusion.domain.Project;
import taskfusion.domain.Report;

public class ProjectViewModel extends ViewModel {
    public String projectNumber;
    public String projectTitle;
    public String customer;
    //public int startWeek;
    //public int endWeek;
    public String projectLeaderFullName;
    public int assignedEmployeesAmount;
    public List<ProjectActivityViewModel> projectActivities;
    public Map<String, ReportViewModel> reports = new HashMap<>();

    public ProjectViewModel(Project project) {
        this.projectNumber = project.getProjectNumber();
        this.projectTitle = project.getProjectTitle();
        this.customer = project.getCustomer();
        //this.startWeek = project.getStartWeek();
        //this.endWeek = project.getEndWeek();
        this.projectActivities = ProjectActivityViewModel.listFromModels(project.getActivities());

        if (project.getProjectLeader() != null) {
            this.projectLeaderFullName = project.getProjectLeader().getFullName();
        }

        this.assignedEmployeesAmount = project.getAssignedEmployees().size();
        importReports(project);
    }

    private void importReports(Project project) {
        Map<String, Report> importedReports = project.getReports();
        Set<String> dates = project.getReports().keySet();
        for (String date : dates) {
            this.reports.put(date, importedReports.get(date).toViewModel());
        }
    }

    public static List<ProjectViewModel> listFromModels(List<Project> modelList) {

        List<ProjectViewModel> list = new ArrayList<ProjectViewModel>();

        for (Project item : modelList) {
            list.add(item.toViewModel());
        }

        return list;
    }
}