private static List<Project> filterBillability(Collection<Project> projects, boolean billable) { List<Project> sortedProjects = new ArrayList<>(); for (Project project : projects) { if (project.isBillable() == billable) { sortedProjects.add(project); } } Collections.sort(sortedProjects, new Comparator<Project>() { @Override public int compare(Project o1, Project o2) { return new CompareToBuilder() .append(o1.getCustomer(), o2.getCustomer()) .append(o1.getName(), o2.getName()) .append(o1.getProjectCode(), o2.getProjectCode()) .append(o1.getProjectId(), o2.getProjectId()).toComparison(); } }); return sortedProjects; }
/** * @see java.lang.Object#toString() */ public String toString() { return new ToStringBuilder(this).append("active", this.active) .append("PK", this.getPK()) .append("defaultProject", this.defaultProject) .append("fullname", this.getFullName()) .append("projectCode", this.getProjectCode()) .append("name", this.getName()) .append("projectId", this.getProjectId()) .append("billable", this.isBillable()) .append("pm", this.getProjectManager()) .toString(); }
private List<Project> getBillableProjects(UserSelectedCriteria criteria) { List<Project> projects = criteria.isOnlyActiveProjects() ? projectDao.findAllActive() : projectDao.findAll(); List<Project> filteredProjects = Lists.newArrayList(); for (Project project : projects) { boolean billableFilter = project.isBillable(); boolean customerFilter = !criteria.isOnlyActiveCustomers() || project.getCustomer().isActive(); if (billableFilter && customerFilter) { filteredProjects.add(project); } } return filteredProjects; } }