Class EntityHandlerImpl
- java.lang.Object
-
- org.sakaiproject.entitybroker.rest.EntityHandlerImpl
-
- All Implemented Interfaces:
EntityRequestHandler
public class EntityHandlerImpl extends Object implements EntityRequestHandler
Implementation of the handler for the EntityBroker system
This handles all the processing of incoming requests (http based) and includes method to process the request data and ensure classloader safety- Author:
- Aaron Zeckoski (aaronz@vt.edu)
-
-
Field Summary
Fields Modifier and Type Field Description static StringAPP_VERSIONstatic StringSVN_LAST_UPDATEstatic StringSVN_REVISION-
Fields inherited from interface org.sakaiproject.entitybroker.providers.EntityRequestHandler
BATCH, COMPENSATE_METHOD, DESCRIBE, FAKE_ID, HEADER_ENTITY_ID, HEADER_ENTITY_REFERENCE, HEADER_ENTITY_URL, SLASH_BATCH, SLASH_DESCRIBE
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedEntityHandlerImpl()Empty constructorEntityHandlerImpl(EntityProviderManager entityProviderManager, EntityBrokerManager entityBrokerManager, EntityEncodingManager entityEncodingManager, EntityDescriptionManager entityDescriptionManager, EntityViewAccessProviderManager entityViewAccessProviderManager, RequestGetterWrite requestGetter, EntityActionsManager entityActionsManager, EntityRedirectsManager entityRedirectsManager, EntityBatchHandler entityBatchHandler, RequestStorageWrite requestStorage)Full constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddResponseHeaders(HttpServletResponse res, Map<String,String> headers)Adds in headers to the response as neededEntityResponsefireEntityRequestInternal(String reference, String viewKey, String format, Map<String,String> params, Object entity)StringgetServletContext()StringhandleEntityAccess(HttpServletRequest req, HttpServletResponse res, String path)If this param is set then the sakai session for the current request is set to this rather than establishing one, will allow changing the session as wellStringhandleEntityError(HttpServletRequest req, Throwable error)voidinit()voidsetAccessProviderManager(HttpServletAccessProviderManager accessProviderManager)voidsetEntityActionsManager(EntityActionsManager entityActionsManager)voidsetEntityBatchHandler(EntityBatchHandler entityBatchHandler)voidsetEntityBrokerManager(EntityBrokerManager entityBrokerManager)voidsetEntityDescriptionManager(EntityDescriptionManager entityDescriptionManager)voidsetEntityEncodingManager(EntityEncodingManager entityEncodingManager)voidsetEntityProviderManager(EntityProviderManager entityProviderManager)voidsetEntityRedirectsManager(EntityRedirectsManager entityRedirectsManager)voidsetEntityViewAccessProviderManager(EntityViewAccessProviderManager entityViewAccessProviderManager)protected voidsetLastModifiedHeaders(HttpServletResponse res, EntityData ed, long lastModifiedTime)protected voidsetNoCacheHeaders(HttpServletResponse res)Force a response to be set for no caching, can be run after other headers are setvoidsetRequestGetter(RequestGetterWrite requestGetter)voidsetRequestStorage(RequestStorageWrite requestStorage)protected voidsetResponseHeaders(EntityView view, HttpServletResponse res, Map<String,Object> params, Map<String,String> headers)Correctly sets up the basic headers for every response, allows setting caching to be disabled by using the nocache or no-cache paramvoidsetServletContext(String servletContext)
-
-
-
Constructor Detail
-
EntityHandlerImpl
protected EntityHandlerImpl()
Empty constructor
-
EntityHandlerImpl
public EntityHandlerImpl(EntityProviderManager entityProviderManager, EntityBrokerManager entityBrokerManager, EntityEncodingManager entityEncodingManager, EntityDescriptionManager entityDescriptionManager, EntityViewAccessProviderManager entityViewAccessProviderManager, RequestGetterWrite requestGetter, EntityActionsManager entityActionsManager, EntityRedirectsManager entityRedirectsManager, EntityBatchHandler entityBatchHandler, RequestStorageWrite requestStorage)
Full constructor
-
-
Method Detail
-
init
public void init()
-
setEntityProviderManager
public void setEntityProviderManager(EntityProviderManager entityProviderManager)
-
setEntityBrokerManager
public void setEntityBrokerManager(EntityBrokerManager entityBrokerManager)
-
setEntityEncodingManager
public void setEntityEncodingManager(EntityEncodingManager entityEncodingManager)
-
setEntityDescriptionManager
public void setEntityDescriptionManager(EntityDescriptionManager entityDescriptionManager)
-
setAccessProviderManager
public void setAccessProviderManager(HttpServletAccessProviderManager accessProviderManager)
-
setEntityViewAccessProviderManager
public void setEntityViewAccessProviderManager(EntityViewAccessProviderManager entityViewAccessProviderManager)
-
setRequestGetter
public void setRequestGetter(RequestGetterWrite requestGetter)
-
setEntityActionsManager
public void setEntityActionsManager(EntityActionsManager entityActionsManager)
-
setEntityRedirectsManager
public void setEntityRedirectsManager(EntityRedirectsManager entityRedirectsManager)
-
setEntityBatchHandler
public void setEntityBatchHandler(EntityBatchHandler entityBatchHandler)
-
setRequestStorage
public void setRequestStorage(RequestStorageWrite requestStorage)
-
getServletContext
public String getServletContext()
-
setServletContext
public void setServletContext(String servletContext)
-
handleEntityAccess
public String handleEntityAccess(HttpServletRequest req, HttpServletResponse res, String path)
If this param is set then the sakai session for the current request is set to this rather than establishing one, will allow changing the session as well- Specified by:
handleEntityAccessin interfaceEntityRequestHandler
-
fireEntityRequestInternal
public EntityResponse fireEntityRequestInternal(String reference, String viewKey, String format, Map<String,String> params, Object entity)
-
handleEntityError
public String handleEntityError(HttpServletRequest req, Throwable error)
- Specified by:
handleEntityErrorin interfaceEntityRequestHandler
-
setNoCacheHeaders
protected void setNoCacheHeaders(HttpServletResponse res)
Force a response to be set for no caching, can be run after other headers are set- Parameters:
res- the response
-
setResponseHeaders
protected void setResponseHeaders(EntityView view, HttpServletResponse res, Map<String,Object> params, Map<String,String> headers)
Correctly sets up the basic headers for every response, allows setting caching to be disabled by using the nocache or no-cache param- Parameters:
view-res-params-headers- any headers to add on
-
addResponseHeaders
protected void addResponseHeaders(HttpServletResponse res, Map<String,String> headers)
Adds in headers to the response as needed- Parameters:
res-headers-
-
setLastModifiedHeaders
protected void setLastModifiedHeaders(HttpServletResponse res, EntityData ed, long lastModifiedTime)
- Parameters:
res- the responselastModifiedTime- the time to use if none is found any other wayed- (optional) some entity data if available
-
-