Class EntityHandlerImpl

  • All Implemented Interfaces:
    org.sakaiproject.entitybroker.providers.EntityRequestHandler

    public class EntityHandlerImpl
    extends Object
    implements org.sakaiproject.entitybroker.providers.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 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​(org.sakaiproject.entitybroker.entityprovider.EntityProviderManager entityProviderManager,
                                 org.sakaiproject.entitybroker.EntityBrokerManager entityBrokerManager,
                                 EntityEncodingManager entityEncodingManager,
                                 EntityDescriptionManager entityDescriptionManager,
                                 org.sakaiproject.entitybroker.access.EntityViewAccessProviderManager entityViewAccessProviderManager,
                                 org.sakaiproject.entitybroker.entityprovider.extension.RequestGetterWrite requestGetter,
                                 EntityActionsManager entityActionsManager,
                                 EntityRedirectsManager entityRedirectsManager,
                                 EntityBatchHandler entityBatchHandler,
                                 org.sakaiproject.entitybroker.entityprovider.extension.RequestStorageWrite requestStorage)
        Full constructor
    • Method Detail

      • init

        public void init()
      • setEntityProviderManager

        public void setEntityProviderManager​(org.sakaiproject.entitybroker.entityprovider.EntityProviderManager entityProviderManager)
      • setEntityBrokerManager

        public void setEntityBrokerManager​(org.sakaiproject.entitybroker.EntityBrokerManager entityBrokerManager)
      • setEntityEncodingManager

        public void setEntityEncodingManager​(EntityEncodingManager entityEncodingManager)
      • setEntityDescriptionManager

        public void setEntityDescriptionManager​(EntityDescriptionManager entityDescriptionManager)
      • setAccessProviderManager

        public void setAccessProviderManager​(org.sakaiproject.entitybroker.access.HttpServletAccessProviderManager accessProviderManager)
      • setEntityViewAccessProviderManager

        public void setEntityViewAccessProviderManager​(org.sakaiproject.entitybroker.access.EntityViewAccessProviderManager entityViewAccessProviderManager)
      • setRequestGetter

        public void setRequestGetter​(org.sakaiproject.entitybroker.entityprovider.extension.RequestGetterWrite requestGetter)
      • setEntityActionsManager

        public void setEntityActionsManager​(EntityActionsManager entityActionsManager)
      • setEntityRedirectsManager

        public void setEntityRedirectsManager​(EntityRedirectsManager entityRedirectsManager)
      • setEntityBatchHandler

        public void setEntityBatchHandler​(EntityBatchHandler entityBatchHandler)
      • setRequestStorage

        public void setRequestStorage​(org.sakaiproject.entitybroker.entityprovider.extension.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:
        handleEntityAccess in interface org.sakaiproject.entitybroker.providers.EntityRequestHandler
      • fireEntityRequestInternal

        public org.sakaiproject.entitybroker.util.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​(HttpServletRequest req,
                                        Throwable error)
        Specified by:
        handleEntityError in interface org.sakaiproject.entitybroker.providers.EntityRequestHandler
      • 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​(org.sakaiproject.entitybroker.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,
                                              org.sakaiproject.entitybroker.entityprovider.extension.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