package org.sakaiproject.component.app.messageforums.entity;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.sakaiproject.api.app.messageforums.SynopticMsgcntrItem;
import org.sakaiproject.api.app.messageforums.SynopticMsgcntrManager;
import org.sakaiproject.api.app.messageforums.entity.SynopticMsgcntrItemEntityProvider;
import org.sakaiproject.entitybroker.EntityReference;
import org.sakaiproject.entitybroker.entityprovider.CoreEntityProvider;
import org.sakaiproject.entitybroker.entityprovider.capabilities.AutoRegisterEntityProvider;
import org.sakaiproject.entitybroker.entityprovider.capabilities.PropertyProvideable;
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.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.user.cover.UserDirectoryService;
public class SynopticMsgcntrItemEntityProviderImpl
implements SynopticMsgcntrItemEntityProvider, CoreEntityProvider, AutoRegisterEntityProvider, PropertyProvideable, RequestStorable, RESTful, RequestAware{
private SynopticMsgcntrManager synopticMsgcntrManager;
private static final Log LOG = LogFactory.getLog(SynopticMsgcntrItemEntityProviderImpl.class);
private RequestStorage requestStorage;
public void setRequestStorage(RequestStorage requestStorage) {
this.requestStorage = requestStorage;
}
private RequestGetter requestGetter;
public void setRequestGetter(RequestGetter requestGetter){
this.requestGetter = requestGetter;
}
public String getEntityPrefix() {
return ENTITY_PREFIX;
}
public List<String> findEntityRefs(String[] prefixes, String[] name,
String[] searchValue, boolean exactMatch) {
return null;
}
public Map<String, String> getProperties(String reference) {
return null;
}
public String getPropertyValue(String reference, String name) {
Map<String, String> props = getProperties(reference);
return props.get(name);
}
public void setPropertyValue(String arg0, String arg1, String arg2) {
// TODO Auto-generated method stub
}
public SynopticMsgcntrManager getSynopticMsgcntrManager() {
return synopticMsgcntrManager;
}
public void setSynopticMsgcntrManager(
SynopticMsgcntrManager synopticMsgcntrManager) {
this.synopticMsgcntrManager = synopticMsgcntrManager;
}
public boolean entityExists(String arg0) {
return true;
}
public String createEntity(EntityReference ref, Object entity,
Map<String, Object> params) {
// TODO Auto-generated method stub
return null;
}
public Object getSampleEntity() {
// TODO Auto-generated method stub
return null;
}
public void updateEntity(EntityReference ref, Object entity,
Map<String, Object> params) {
// TODO Auto-generated method stub
}
public Object getEntity(EntityReference ref) {
String siteId = ref.getId();
if (siteId == null) {
return null;
}
String userId = UserDirectoryService.getCurrentUser().getId();
if(userId == null || "".equals(userId)){
return null;
}
SynopticMsgcntrItem smi = synopticMsgcntrManager.getSiteSynopticMsgcntrItem(userId, siteId);
if (smi == null) {
smi = synopticMsgcntrManager.createSynopticMsgcntrItem(null, null, null);
}
return smi;
}
public void deleteEntity(EntityReference ref, Map<String, Object> params) {
// TODO Auto-generated method stub
}
public List<?> getEntities(EntityReference ref, Search search) {
String userId = UserDirectoryService.getCurrentUser().getId();
if(userId == null){
return null;
}
return synopticMsgcntrManager.getWorkspaceSynopticMsgcntrItems(userId);
}
public String[] getHandledOutputFormats() {
return new String[] { Formats.HTML, Formats.XML, Formats.JSON };
}
public String[] getHandledInputFormats() {
// TODO Auto-generated method stub
return null;
}
}