package de.ppi.samples.fuwesta.service.impl; import java.util.List; import javax.annotation.Resource; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort.Order; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import de.ppi.samples.fuwesta.dao.api.PostDao; import de.ppi.samples.fuwesta.dao.api.TagDao; import de.ppi.samples.fuwesta.model.Post; import de.ppi.samples.fuwesta.model.Tag; import de.ppi.samples.fuwesta.service.api.TagService; /** * Implementation of {@link TagService}. */ @Transactional(readOnly = true) @Service public class TagServiceImpl implements TagService { /** The tag-Dao. */ @Resource private TagDao tagDao; /** The post-Dao. */ @Resource private PostDao postDao; /** * {@inheritDoc} */ @Override public Page<Tag> getAllTag() { return tagDao.findAll((PageRequest) null); } /** * {@inheritDoc} */ @Override public Page<Tag> getTag(int skip, int count, Order... order) { final Sort sort = order.length > 0 ? new Sort(order) : null; final PageRequest pr = new PageRequest(skip / count, count, sort); return this.getTag(pr); } /** * {@inheritDoc} */ @Override public Page<Tag> getTag(Pageable page) { return tagDao.findAll(page); } /** * {@inheritDoc} */ @Override @Transactional(readOnly = false) public Tag save(Tag tag) { return tagDao.save(tag); } /** * {@inheritDoc} */ @Override public Tag read(Long tagId) { return tagDao.findOne(tagId); } /** * {@inheritDoc} */ @Override @Transactional(readOnly = false) public void delete(Long tagId) { tagDao.delete(tagId); } /** * {@inheritDoc} */ @Override public long getNrOfTags() { return tagDao.count(); } /** * {@inheritDoc} */ @Override public List<Post> getPostingSelectOptions() { return postDao.findAllOrderByTitle(); } }