/**
* Copyright 2011 Intuit Inc. All Rights Reserved
*/
package com.intuit.tank.service;
/*
* #%L
* JSF Support Beans
* %%
* Copyright (C) 2011 - 2015 Intuit 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
* #L%
*/
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Inject;
import javax.inject.Named;
import com.intuit.tank.PropertyComparer;
import com.intuit.tank.PropertyComparer.SortOrder;
import com.intuit.tank.dao.ProjectDao;
import com.intuit.tank.project.Project;
import com.intuit.tank.project.ProjectDescription;
/**
* ProjectService
*
* @author dangleton
*
*/
@ApplicationScoped
@Named
public class ProjectService implements Serializable {
private static final long serialVersionUID = 1L;
@Inject
private ProjectDao prjDao;
/**
* Returns the list of projects
*
* @return
*/
public List<Project> getProjectList() {
List<Project> projects = prjDao.findAll();
Collections.sort(projects, new PropertyComparer<Project>("name", SortOrder.ASCENDING));
return projects;
}
/**
* Returns the Project with the given id.
*
* @param id
* project id.
* @return
*/
public Project getProject(int id) {
return prjDao.findById(id);
}
/**
* Returns list of project descriptions for all the projects.
*
* @return
*/
public List<ProjectDescription> getProjectDescriptions() {
List<Project> projectList = getProjectList();
List<ProjectDescription> result = new ArrayList<ProjectDescription>();
for (Project project : projectList) {
result.add(new ProjectDescription(project));
}
return result;
}
/**
* Deletes a project with the given id.
*
* @param id
*/
public void deleteProject(int id) {
prjDao.delete(id);
}
}