package org.dcache.webadmin.controller.impl; import com.google.common.collect.Iterables; import java.util.Collection; import java.util.List; import org.dcache.webadmin.controller.ActiveTransfersService; import org.dcache.webadmin.controller.exceptions.ActiveTransfersServiceException; import org.dcache.webadmin.model.dataaccess.DAOFactory; import org.dcache.webadmin.model.dataaccess.MoverDAO; import org.dcache.webadmin.model.exceptions.DAOException; import org.dcache.webadmin.view.beans.ActiveTransfersBean; public class StandardActiveTransfersService implements ActiveTransfersService { private DAOFactory _daoFactory; public StandardActiveTransfersService(DAOFactory daoFactory) { _daoFactory = daoFactory; } private MoverDAO getMoverDAO() { return _daoFactory.getMoverDAO(); } @Override public List<ActiveTransfersBean> getTransfers() { return getMoverDAO().getActiveTransfers(); } @Override public void kill(final Collection<ActiveTransfersBean.Key> keys) throws ActiveTransfersServiceException { try { getMoverDAO().killMovers( Iterables.filter(getTransfers(), t -> keys.contains(t.getKey()) && !t.getPool().isEmpty())); } catch (DAOException e) { throw new ActiveTransfersServiceException(e.getMessage(), e); } } public void setDAOFactory(DAOFactory daoFactory) { _daoFactory = daoFactory; } }