package cms.model.service; import cms.model.converter.PageConverter; import cms.model.dao.PageDAO; import cms.model.model.PageEntity; import cms.model.validator.PageValidator; import com.google.appengine.api.datastore.Key; import com.google.inject.Inject; import java.util.ConcurrentModificationException; import java.util.Map; import java.util.List; public class PageService implements Service { @Inject private PageDAO pageDAO; @Inject private PageConverter pageConverter; @Inject private PageValidator pageValidator; public List<PageEntity> getAllPages() { return pageDAO.getAll(); } public List<PageEntity> getVisiblePages() { return pageDAO.getVisible(); } public PageEntity getPage(Key key) { return pageDAO.get(key); } public PageEntity getPageByUrl(String url) { return pageDAO.getByUrl(url); } public PageEntity getVisiblePageByUrl(String url) { return pageDAO.getVisibleByUrl(url); } public PageEntity insert(Map<String, Object> input) throws ServiceException { PageEntity pageEntity = pageConverter.convert(input); pageValidator.validateAdd(pageEntity); PageEntity insertedPage = pageDAO.insert(pageEntity); return insertedPage; } public PageEntity edit(Map<String, Object> input) throws ServiceException { PageEntity pageEntity = pageConverter.convert(input); pageValidator.validateEdit(pageEntity); PageEntity editedPage = null; try { editedPage = pageDAO.edit(pageEntity); } catch (ConcurrentModificationException e) { throw new ServiceException("Stránku upravuje někdo jiný."); } return editedPage; } public void delete(Key key, Long version) throws ServiceException { try { pageDAO.delete(key, version); } catch (ConcurrentModificationException e) { throw new ServiceException("Stránku upravuje někdo jiný."); } } }