package cms.model.service; import cms.model.converter.TemplateConverter; import cms.model.dao.TemplateDAO; import cms.model.model.TemplateEntity; import cms.model.validator.TemplateValidator; 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 TemplateService implements Service { @Inject private TemplateDAO templateDAO; @Inject private TemplateConverter templateConverter; @Inject private TemplateValidator templateValidator; public List<TemplateEntity> getAllTemplates() { return templateDAO.getAll(); } public TemplateEntity getTemplate(Key key) { return templateDAO.get(key); } public TemplateEntity getTemplateByName(String name) { return templateDAO.getByName(name); } public TemplateEntity insert(Map<String, Object> input) throws ServiceException { TemplateEntity templateEntity = templateConverter.convert(input); templateValidator.validateAdd(templateEntity); return templateDAO.insert(templateEntity); } public TemplateEntity edit(Map<String, Object> input) throws ServiceException { TemplateEntity templateEntity = templateConverter.convert(input); templateValidator.validateEdit(templateEntity); TemplateEntity editedTemplate = null; try { editedTemplate = templateDAO.edit(templateEntity); } catch (ConcurrentModificationException e) { throw new ServiceException("Šablonu upravuje někdo jiný."); } return editedTemplate; } public void delete(Key key, Long version) throws ServiceException { try { templateDAO.delete(key, version); } catch (ConcurrentModificationException e) { throw new ServiceException("Šablonu upravuje někdo jiný."); } } }