/** * */ package com.teefun.db.service.impl; import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; import javax.transaction.Transactional; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import com.teefun.db.dao.QueueDAO; import com.teefun.db.entity.QueueEntity; import com.teefun.db.service.QueueService; import com.teefun.model.Queue; /** * Default impl for {@link QueueService}. * * @author Rajh * */ @Service public class QueueServiceImpl implements QueueService { /** * Class logger. */ private static final Logger LOGGER = LoggerFactory.getLogger(QueueServiceImpl.class); /** * The queue dao. */ @Resource private QueueDAO queueDao; @Override public List<Queue> getQueues() { final List<Queue> queues = new ArrayList<Queue>(); final List<QueueEntity> queuesEntities = this.queueDao.list(); for (final QueueEntity queueEntity : queuesEntities) { if (queueEntity.isActive()) { // FIXME mapping lib ? final Queue queue = new Queue(); queue.setName(queueEntity.getName()); queue.setMaxSize(queueEntity.getMaxSize()); queue.setMap(queueEntity.getMap()); queue.setGametype(queueEntity.getGametype()); queue.setScoreLimit(queueEntity.getScoreLimit()); queue.setTimeLimit(queueEntity.getTimeLimit()); queue.setPermanent(true); queues.add(queue); } } return queues; } @Override @Transactional public void saveQueues(final List<Queue> queues) { for (final Queue queue : queues) { if (queue.isPermanent()) { // FIXME mapping lib ? final QueueEntity queueEntity = new QueueEntity(); queueEntity.setActive(true); queueEntity.setGametype(queue.getGametype()); queueEntity.setMap(queue.getMap()); queueEntity.setMaxSize(queue.getMaxSize()); queueEntity.setName(queue.getName()); queueEntity.setScoreLimit(queue.getScoreLimit()); queueEntity.setTimeLimit(queue.getTimeLimit()); this.queueDao.save(queueEntity); LOGGER.trace("Queue {} saved", new Object[] { queueEntity }); } } } @Override @Transactional public void saveQueue(final Queue queue) { if (queue.isPermanent()) { // FIXME mapping lib ? final QueueEntity queueEntity = new QueueEntity(); queueEntity.setActive(true); queueEntity.setGametype(queue.getGametype()); queueEntity.setMap(queue.getMap()); queueEntity.setMaxSize(queue.getMaxSize()); queueEntity.setName(queue.getName()); queueEntity.setScoreLimit(queue.getScoreLimit()); queueEntity.setTimeLimit(queue.getTimeLimit()); this.queueDao.save(queueEntity); LOGGER.trace("Queue {} saved", new Object[] { queueEntity }); } } @Override @Transactional public void removeQueue(final Queue queue) { if (queue.isPermanent()) { final QueueEntity queueEntity = this.queueDao.getByName(queue.getName()); if (queueEntity != null) { this.queueDao.remove(queueEntity); LOGGER.trace("Queue {} removed", new Object[] { queueEntity }); } } } }