package org.dcache.webadmin.controller.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import org.dcache.admin.webadmin.datacollector.datatypes.CellStatus;
import org.dcache.webadmin.controller.CellsService;
import org.dcache.webadmin.controller.util.BeanDataMapper;
import org.dcache.webadmin.model.dataaccess.DAOFactory;
import org.dcache.webadmin.model.dataaccess.DomainsDAO;
import org.dcache.webadmin.view.beans.CellServicesBean;
/**
*
* @author jans
*/
public class StandardCellsService implements CellsService {
private static final Logger _log = LoggerFactory.getLogger(StandardCellsService.class);
private DAOFactory _daoFactory;
public StandardCellsService(DAOFactory daoFactory) {
_daoFactory = daoFactory;
}
@Override
public List<CellServicesBean> getCellServicesBeans()
{
Set<CellStatus> cellStatuses = getDomainsDAO().getCellStatuses();
_log.debug("returned cellStatuses: {}", cellStatuses.size());
List<CellServicesBean> cells = new ArrayList<>();
for (CellStatus currentCell : cellStatuses) {
CellServicesBean newCellBean = createCellServiceBean(currentCell);
cells.add(newCellBean);
}
_log.debug("returned CellServicesBeans: {}", cells.size());
Collections.sort(cells);
return cells;
}
private DomainsDAO getDomainsDAO() {
return _daoFactory.getDomainsDAO();
}
public void setDAOFactory(DAOFactory daoFactory) {
_daoFactory = daoFactory;
}
private CellServicesBean createCellServiceBean(CellStatus currentCell) {
return BeanDataMapper.cellModelToView(currentCell);
}
}