package scrum.server.admin; import ilarkesto.concurrent.ACollectionTask; import ilarkesto.core.logging.Log; import ilarkesto.persistence.TransactionService; import java.util.Collection; public class DeleteDisabledUsersTask extends ACollectionTask<User> { private static Log log = Log.get(DeleteDisabledUsersTask.class); // --- dependencies --- private UserDao userDao; private TransactionService transactionService; public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void setTransactionService(TransactionService transactionService) { this.transactionService = transactionService; } // --- --- @Override protected Collection<User> prepare() throws InterruptedException { return userDao.getUsersByDisabled(true); } @Override protected void perform(User user) throws InterruptedException { if (!user.getProjects().isEmpty()) return; log.info("Deleting disabled user with no projects:", user); userDao.deleteEntity(user); } @Override protected void cleanup() throws InterruptedException { transactionService.commit(); super.cleanup(); } }