package org.theospi.portfolio.presentation.entity; import java.util.List; import java.util.Locale; import java.util.Map; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.sakaiproject.entitybroker.EntityReference; import org.sakaiproject.entitybroker.entityprovider.CoreEntityProvider; import org.sakaiproject.entitybroker.entityprovider.capabilities.RESTful; import org.sakaiproject.entitybroker.entityprovider.capabilities.RequestAware; import org.sakaiproject.entitybroker.entityprovider.capabilities.RequestStorable; import org.sakaiproject.entitybroker.entityprovider.capabilities.Statisticable; import org.sakaiproject.entitybroker.entityprovider.extension.Formats; import org.sakaiproject.entitybroker.entityprovider.extension.RequestGetter; import org.sakaiproject.entitybroker.entityprovider.extension.RequestStorage; import org.sakaiproject.entitybroker.entityprovider.search.Search; import org.sakaiproject.entitybroker.util.AbstractEntityProvider; import org.theospi.portfolio.presentation.model.Presentation; import org.theospi.portfolio.presentation.support.PresentationService; public class PresentationEntityProvider extends AbstractEntityProvider implements CoreEntityProvider, RESTful, RequestStorable, RequestAware /*, Statisticable */ { private static Log log = LogFactory.getLog(PresentationEntityProvider.class); private PresentationService presentationService; public static String PREFIX = "osp-presentations"; public PresentationService getPresentationService() { return presentationService; } private RequestStorage requestStorage; @Override public void setRequestStorage(RequestStorage requestStorage) { this.requestStorage = requestStorage; } private RequestGetter requestGetter; @Override public void setRequestGetter(RequestGetter requestGetter) { this.requestGetter = requestGetter; } public void setPresentationService(PresentationService presentationService) { this.presentationService = presentationService; } public String getEntityPrefix() { return PREFIX; } @Override public String createEntity(EntityReference ref, Object entity, Map<String, Object> params) { // TODO Auto-generated method stub return null; } @Override public Object getSampleEntity() { return new Presentation(); } @Override public void updateEntity(EntityReference ref, Object entity, Map<String, Object> params) { // TODO Auto-generated method stub } @Override public Object getEntity(EntityReference ref) { Presentation presentation = presentationService.getPresentation(ref.getId()); // workaround as we are getting Unable to handle output request for format // if I return the presentation itself Presentation outputPresentation = new Presentation(); outputPresentation.setName(presentation.getName()); return outputPresentation; } @Override public void deleteEntity(EntityReference ref, Map<String, Object> params) { // TODO Auto-generated method stub } @Override public List<?> getEntities(EntityReference ref, Search search) { // TODO Auto-generated method stub return null; } @Override public String[] getHandledOutputFormats() { return new String[] {Formats.XML, Formats.JSON, Formats.HTML }; } @Override public String[] getHandledInputFormats() { return new String[] {Formats.XML, Formats.JSON, Formats.HTML }; } /* @Override public String getAssociatedToolId() { // TODO Auto-generated method stub return null; } @Override public String[] getEventKeys() { // TODO Auto-generated method stub return null; } @Override public Map<String, String> getEventNames(Locale locale) { // TODO Auto-generated method stub return null; } */ @Override public boolean entityExists(String id) { boolean exists = false; Presentation presentation = null; presentation = presentationService.getPresentation(id); if (presentation != null) { exists = true; } return exists; } }