org.sakaiproject.announcement.entityprovider
Class AnnouncementEntityProviderImpl

java.lang.Object
  extended by org.sakaiproject.entitybroker.util.AbstractEntityProvider
      extended by org.sakaiproject.announcement.entityprovider.AnnouncementEntityProviderImpl
All Implemented Interfaces:
org.sakaiproject.entitybroker.collector.AutoRegister, org.sakaiproject.entitybroker.entityprovider.capabilities.ActionsExecutable, org.sakaiproject.entitybroker.entityprovider.capabilities.AutoRegisterEntityProvider, org.sakaiproject.entitybroker.entityprovider.capabilities.CollectionResolvable, org.sakaiproject.entitybroker.entityprovider.capabilities.Createable, org.sakaiproject.entitybroker.entityprovider.capabilities.CRUDable, org.sakaiproject.entitybroker.entityprovider.capabilities.Deleteable, org.sakaiproject.entitybroker.entityprovider.capabilities.Describeable, org.sakaiproject.entitybroker.entityprovider.capabilities.Inputable, org.sakaiproject.entitybroker.entityprovider.capabilities.Outputable, org.sakaiproject.entitybroker.entityprovider.capabilities.Redirectable, org.sakaiproject.entitybroker.entityprovider.capabilities.Resolvable, org.sakaiproject.entitybroker.entityprovider.capabilities.RESTful, org.sakaiproject.entitybroker.entityprovider.capabilities.Sampleable, org.sakaiproject.entitybroker.entityprovider.capabilities.Saveable, org.sakaiproject.entitybroker.entityprovider.capabilities.Updateable, org.sakaiproject.entitybroker.entityprovider.CoreEntityProvider, org.sakaiproject.entitybroker.entityprovider.EntityProvider, org.sakaiproject.entitybroker.entityprovider.extension.Formats, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean

public class AnnouncementEntityProviderImpl
extends org.sakaiproject.entitybroker.util.AbstractEntityProvider
implements org.sakaiproject.entitybroker.entityprovider.CoreEntityProvider, org.sakaiproject.entitybroker.entityprovider.capabilities.AutoRegisterEntityProvider, org.sakaiproject.entitybroker.entityprovider.capabilities.ActionsExecutable, org.sakaiproject.entitybroker.entityprovider.capabilities.RESTful

Allows some basic functions on announcements. Due to limitations of EntityBroker the internal URLs of the announcements service can't be exposed directly, so we have to map them, with assumptions about characters used in IDs. Basically we pack together the {siteId}:{channelId}:{announcementId} into the ID.


Nested Class Summary
 class AnnouncementEntityProviderImpl.DecoratedAnnouncement
          Class to hold only the fields that we want to return
 class AnnouncementEntityProviderImpl.DecoratedAttachment
           
 
Field Summary
static int DEFAULT_DAYS_IN_PAST
           
static int DEFAULT_NUM_ANNOUNCEMENTS
           
static String ENTITY_PREFIX
           
 
Fields inherited from class org.sakaiproject.entitybroker.util.AbstractEntityProvider
developerHelperService
 
Fields inherited from interface org.sakaiproject.entitybroker.entityprovider.capabilities.CollectionResolvable
SEARCH_LOCATION_REFERENCE, SEARCH_TAGS, SEARCH_USER_REFERENCE
 
Fields inherited from interface org.sakaiproject.entitybroker.entityprovider.extension.Formats
ALL_KNOWN_FORMATS, ATOM, ATOM_EXTENSIONS, ATOM_MIME_TYPE, FORM, FORM_EXTENSIONS, FORM_MIME_TYPE, HTML, HTML_EXTENSIONS, HTML_MIME_TYPE, JSON, JSON_EXTENSIONS, JSON_MIME_TYPE, JSONP, JSONP_EXTENSIONS, JSONP_MIME_TYPE, RSS, RSS_EXTENSIONS, RSS_MIME_TYPE, TXT, TXT_EXTENSIONS, TXT_MIME_TYPE, UTF_8, XML, XML_EXTENSIONS, XML_MIME_TYPE
 
Fields inherited from interface org.sakaiproject.entitybroker.entityprovider.capabilities.ActionsExecutable
ACTION_METHOD_SUFFIX
 
Constructor Summary
AnnouncementEntityProviderImpl()
           
 
Method Summary
 String createEntity(org.sakaiproject.entitybroker.EntityReference ref, Object entity, Map<String,Object> params)
           
 void deleteEntity(org.sakaiproject.entitybroker.EntityReference ref, Map<String,Object> params)
           
 boolean entityExists(String id)
           
 AnnouncementEntityProviderImpl.DecoratedAnnouncement findEntityById(String entityId, String siteId)
           
 List<String> findEntityRefs(String[] arg0, String[] arg1, String[] arg2, boolean arg3)
          Unimplemented EntityBroker methods
 Object getAnnouncementByID(org.sakaiproject.entitybroker.EntityView view, Map<String,Object> params)
          message/siteId/EntityID
 List<?> getAnnouncements(String siteId, Map<String,Object> params, boolean onlyPublic)
          Get the list of announcements for a site (or user site, or !
 List<?> getAnnouncementsForSite(org.sakaiproject.entitybroker.EntityView view, Map<String,Object> params)
          site/siteId
 List<?> getAnnouncementsForUser(org.sakaiproject.entitybroker.EntityView view, Map<String,Object> params)
          user
 List<?> getEntities(org.sakaiproject.entitybroker.EntityReference ref, org.sakaiproject.entitybroker.entityprovider.search.Search search)
           
 Object getEntity(org.sakaiproject.entitybroker.EntityReference ref)
           
 String getEntityPrefix()
          Prefix for this provider
 String[] getHandledInputFormats()
           
 String[] getHandledOutputFormats()
           
 List<?> getMessagesOfTheDay(org.sakaiproject.entitybroker.EntityView view, Map<String,Object> params)
          motd
 Object getSampleEntity()
           
 void setAnnouncementService(AnnouncementService announcementService)
           
 void setEntityBrokerManager(org.sakaiproject.entitybroker.EntityBrokerManager entityBrokerManager)
           
 void setEntityManager(org.sakaiproject.entity.api.EntityManager entityManager)
           
 void setSecurityService(org.sakaiproject.authz.api.SecurityService securityService)
           
 void setSessionManager(org.sakaiproject.tool.api.SessionManager sessionManager)
           
 void setSiteService(org.sakaiproject.site.api.SiteService siteService)
           
 void setTimeService(org.sakaiproject.time.api.TimeService timeService)
           
 void setToolManager(org.sakaiproject.tool.api.ToolManager toolManager)
           
 void setUserDirectoryService(org.sakaiproject.user.api.UserDirectoryService userDirectoryService)
           
 AnnouncementEntityProviderImpl.DecoratedAnnouncement showAnnouncement(org.sakaiproject.entitybroker.EntityView view, Map<String,Object> params)
          This handles announcements, URLs should be like, /announcement/msg/{context}/{channelId}/{announcementId} an example would be /announcement/msg/21b1984d-af58-43da-8583-f4adee769aa2/main/5641323b-761a-4a4d-8761-688f4928141b .
 void updateEntity(org.sakaiproject.entitybroker.EntityReference ref, Object entity, Map<String,Object> params)
           
 
Methods inherited from class org.sakaiproject.entitybroker.util.AbstractEntityProvider
afterPropertiesSet, destroy, setDeveloperHelperService, setEntityProviderManager
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ENTITY_PREFIX

public static final String ENTITY_PREFIX
See Also:
Constant Field Values

DEFAULT_NUM_ANNOUNCEMENTS

public static int DEFAULT_NUM_ANNOUNCEMENTS

DEFAULT_DAYS_IN_PAST

public static int DEFAULT_DAYS_IN_PAST
Constructor Detail

AnnouncementEntityProviderImpl

public AnnouncementEntityProviderImpl()
Method Detail

setEntityBrokerManager

public void setEntityBrokerManager(org.sakaiproject.entitybroker.EntityBrokerManager entityBrokerManager)

getEntityPrefix

public String getEntityPrefix()
Prefix for this provider

Specified by:
getEntityPrefix in interface org.sakaiproject.entitybroker.entityprovider.EntityProvider

getAnnouncements

public List<?> getAnnouncements(String siteId,
                                Map<String,Object> params,
                                boolean onlyPublic)
Get the list of announcements for a site (or user site, or !site for motd)

Parameters:
siteId - - siteId requested, or user site, or !site for motd.
params - - the raw URL params that were sent, for processing.
onlyPublic - - only show public announcements
Returns:

findEntityById

public AnnouncementEntityProviderImpl.DecoratedAnnouncement findEntityById(String entityId,
                                                                           String siteId)

getAnnouncementsForSite

public List<?> getAnnouncementsForSite(org.sakaiproject.entitybroker.EntityView view,
                                       Map<String,Object> params)
site/siteId


getAnnouncementsForUser

public List<?> getAnnouncementsForUser(org.sakaiproject.entitybroker.EntityView view,
                                       Map<String,Object> params)
user


getMessagesOfTheDay

public List<?> getMessagesOfTheDay(org.sakaiproject.entitybroker.EntityView view,
                                   Map<String,Object> params)
motd


showAnnouncement

public AnnouncementEntityProviderImpl.DecoratedAnnouncement showAnnouncement(org.sakaiproject.entitybroker.EntityView view,
                                                                             Map<String,Object> params)
                                                                      throws org.sakaiproject.entity.api.EntityPermissionException
This handles announcements, URLs should be like, /announcement/msg/{context}/{channelId}/{announcementId} an example would be /announcement/msg/21b1984d-af58-43da-8583-f4adee769aa2/main/5641323b-761a-4a4d-8761-688f4928141b . Context is normally the site ID and the channelId is normally "main" unless there are multiple channels in a site. This is an alternative to using the packed IDs.

Throws:
org.sakaiproject.entity.api.EntityPermissionException

getAnnouncementByID

public Object getAnnouncementByID(org.sakaiproject.entitybroker.EntityView view,
                                  Map<String,Object> params)
message/siteId/EntityID


entityExists

public boolean entityExists(String id)
Specified by:
entityExists in interface org.sakaiproject.entitybroker.entityprovider.CoreEntityProvider

getSampleEntity

public Object getSampleEntity()
Specified by:
getSampleEntity in interface org.sakaiproject.entitybroker.entityprovider.capabilities.Sampleable

findEntityRefs

public List<String> findEntityRefs(String[] arg0,
                                   String[] arg1,
                                   String[] arg2,
                                   boolean arg3)
Unimplemented EntityBroker methods


createEntity

public String createEntity(org.sakaiproject.entitybroker.EntityReference ref,
                           Object entity,
                           Map<String,Object> params)
Specified by:
createEntity in interface org.sakaiproject.entitybroker.entityprovider.capabilities.Createable

updateEntity

public void updateEntity(org.sakaiproject.entitybroker.EntityReference ref,
                         Object entity,
                         Map<String,Object> params)
Specified by:
updateEntity in interface org.sakaiproject.entitybroker.entityprovider.capabilities.Updateable

deleteEntity

public void deleteEntity(org.sakaiproject.entitybroker.EntityReference ref,
                         Map<String,Object> params)
Specified by:
deleteEntity in interface org.sakaiproject.entitybroker.entityprovider.capabilities.Deleteable

getHandledOutputFormats

public String[] getHandledOutputFormats()
Specified by:
getHandledOutputFormats in interface org.sakaiproject.entitybroker.entityprovider.capabilities.Outputable

getHandledInputFormats

public String[] getHandledInputFormats()
Specified by:
getHandledInputFormats in interface org.sakaiproject.entitybroker.entityprovider.capabilities.Inputable

getEntities

public List<?> getEntities(org.sakaiproject.entitybroker.EntityReference ref,
                           org.sakaiproject.entitybroker.entityprovider.search.Search search)
Specified by:
getEntities in interface org.sakaiproject.entitybroker.entityprovider.capabilities.CollectionResolvable

getEntity

public Object getEntity(org.sakaiproject.entitybroker.EntityReference ref)
Specified by:
getEntity in interface org.sakaiproject.entitybroker.entityprovider.capabilities.Resolvable

setEntityManager

public void setEntityManager(org.sakaiproject.entity.api.EntityManager entityManager)

setSecurityService

public void setSecurityService(org.sakaiproject.authz.api.SecurityService securityService)

setSessionManager

public void setSessionManager(org.sakaiproject.tool.api.SessionManager sessionManager)

setSiteService

public void setSiteService(org.sakaiproject.site.api.SiteService siteService)

setAnnouncementService

public void setAnnouncementService(AnnouncementService announcementService)

setUserDirectoryService

public void setUserDirectoryService(org.sakaiproject.user.api.UserDirectoryService userDirectoryService)

setTimeService

public void setTimeService(org.sakaiproject.time.api.TimeService timeService)

setToolManager

public void setToolManager(org.sakaiproject.tool.api.ToolManager toolManager)


Copyright © 2003-2012 The Sakai Foundation. All Rights Reserved.