org.sakaiproject.entitybroker.rest
Class EntityHandlerImpl

java.lang.Object
  extended by 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
static String APP_VERSION
           
static String SVN_LAST_UPDATE
           
static String SVN_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
protected EntityHandlerImpl()
          Empty constructor
  EntityHandlerImpl(EntityProviderManager entityProviderManager, EntityBrokerManager entityBrokerManager, EntityEncodingManager entityEncodingManager, EntityDescriptionManager entityDescriptionManager, EntityViewAccessProviderManager entityViewAccessProviderManager, RequestGetterWrite requestGetter, EntityActionsManager entityActionsManager, EntityRedirectsManager entityRedirectsManager, EntityBatchHandler entityBatchHandler, RequestStorageWrite requestStorage)
          Full constructor
 
Method Summary
protected  void addResponseHeaders(javax.servlet.http.HttpServletResponse res, Map<String,String> headers)
          Adds in headers to the response as needed
 EntityResponse fireEntityRequestInternal(String reference, String viewKey, String format, Map<String,String> params, Object entity)
           
 String getServletContext()
           
 String handleEntityAccess(javax.servlet.http.HttpServletRequest req, javax.servlet.http.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
 String handleEntityError(javax.servlet.http.HttpServletRequest req, Throwable error)
           
 void init()
           
 void setAccessProviderManager(HttpServletAccessProviderManager accessProviderManager)
           
 void setEntityActionsManager(EntityActionsManager entityActionsManager)
           
 void setEntityBatchHandler(EntityBatchHandler entityBatchHandler)
           
 void setEntityBrokerManager(EntityBrokerManager entityBrokerManager)
           
 void setEntityDescriptionManager(EntityDescriptionManager entityDescriptionManager)
           
 void setEntityEncodingManager(EntityEncodingManager entityEncodingManager)
           
 void setEntityProviderManager(EntityProviderManager entityProviderManager)
           
 void setEntityRedirectsManager(EntityRedirectsManager entityRedirectsManager)
           
 void setEntityViewAccessProviderManager(EntityViewAccessProviderManager entityViewAccessProviderManager)
           
protected  void setLastModifiedHeaders(javax.servlet.http.HttpServletResponse res, EntityData ed, long lastModifiedTime)
           
protected  void setNoCacheHeaders(javax.servlet.http.HttpServletResponse res)
          Force a response to be set for no caching, can be run after other headers are set
 void setRequestGetter(RequestGetterWrite requestGetter)
           
 void setRequestStorage(RequestStorageWrite requestStorage)
           
protected  void setResponseHeaders(EntityView view, javax.servlet.http.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
 void setServletContext(String servletContext)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

APP_VERSION

public static String APP_VERSION

SVN_REVISION

public static String SVN_REVISION

SVN_LAST_UPDATE

public static String SVN_LAST_UPDATE
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(javax.servlet.http.HttpServletRequest req,
                                 javax.servlet.http.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:
handleEntityAccess in interface EntityRequestHandler

fireEntityRequestInternal

public EntityResponse fireEntityRequestInternal(String reference,
                                                String viewKey,
                                                String format,
                                                Map<String,String> params,
                                                Object entity)
See Also:
EntityBroker.fireEntityRequest(String, String, String, Map, Object)

handleEntityError

public String handleEntityError(javax.servlet.http.HttpServletRequest req,
                                Throwable error)
Specified by:
handleEntityError in interface EntityRequestHandler

setNoCacheHeaders

protected void setNoCacheHeaders(javax.servlet.http.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,
                                  javax.servlet.http.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(javax.servlet.http.HttpServletResponse res,
                                  Map<String,String> headers)
Adds in headers to the response as needed

Parameters:
res -
headers -

setLastModifiedHeaders

protected void setLastModifiedHeaders(javax.servlet.http.HttpServletResponse res,
                                      EntityData ed,
                                      long lastModifiedTime)
Parameters:
res - the response
lastModifiedTime - the time to use if none is found any other way
ed - (optional) some entity data if available


Copyright © 2007-2012 Sakai Project. All Rights Reserved.