Class RESTServiceExternalObject

    • Constructor Detail

      • RESTServiceExternalObject

        public RESTServiceExternalObject()
    • Method Detail

      • isDebug

        public boolean isDebug()
        Is debug mode enabled?
        Returns:
        True if debug mode is enabled
      • setDebug

        public void setDebug​(boolean d)
        Enable or disable debug mode
        Parameters:
        d - Debug mode enabled?
      • setUseCache

        public void setUseCache​(boolean c)
        Enable or disable data caching for this external object
        This has no effect if data caching is not also globally enabled
        Parameters:
        c - Data cache enabled?
      • useDataCache

        public boolean useDataCache()
        Is data caching enabled globally and for this external object?
        Returns:
        True if data caching is enabled
      • success

        public org.json.JSONObject success​(java.lang.Object payload)
        Success response, format: { "status": 200, "payload": "<payload>" }
        Parameters:
        payload - Payload
        Returns:
        JSON object with payload
      • error

        public org.json.JSONObject error​(int code,
                                         java.lang.String message)
        Error response, format: { "status": <code>, "error": "<message>" }
        Parameters:
        code - HTTP status
        message - Error message
        Returns:
        JSON object
      • error

        public org.json.JSONObject error​(int code,
                                         java.util.List<java.lang.String> messages)
        Error response, format: { "status": <code>, "errors": [ "<message 1>", "<message 2>", ... ] }
        Parameters:
        code - HTTP status
        messages - Error messages
        Returns:
        JSON object
      • error

        public org.json.JSONObject error​(HTTPException e)
        Error response
        Parameters:
        e - HTTP exception
        Returns:
        JSON object
      • error

        public org.json.JSONObject error​(java.lang.Throwable e)
        Error response
        Parameters:
        e - Throwable
        Returns:
        JSON object
      • unauthorized

        public org.json.JSONObject unauthorized​(java.lang.String message)
        Unauthorized error
        Parameters:
        message - Message
        Returns:
        JSON object
      • forbidden

        public org.json.JSONObject forbidden​(java.lang.String message)
        Forbidden error
        Parameters:
        message - Message
        Returns:
        JSON object
      • badRequest

        public org.json.JSONObject badRequest​(java.lang.String message)
        Bad request error
        Parameters:
        message - Message
        Returns:
        JSON object
      • badRequest

        public org.json.JSONObject badRequest​(java.util.List<java.lang.String> messages)
        Bad request error(s)
        Parameters:
        messages - Messages
        Returns:
        JSON object
      • internalServerError

        public org.json.JSONObject internalServerError​(java.lang.String message)
        Internal server error
        Parameters:
        message - Message
        Returns:
        JSON object
      • openapi

        public org.json.JSONObject openapi()
        OpenAPI schema
        Returns:
        JSON object
      • get

        public java.lang.Object get​(Parameters params)
                             throws HTTPException
        GET method hook to implement (returns bad request by default)
        Returns:
        Typically JSON object or array
        Throws:
        HTTPException
      • post

        public java.lang.Object post​(Parameters params)
                              throws HTTPException
        POST method hook to implement (returns bad request by default)
        Returns:
        Typically JSON object or array
        Throws:
        HTTPException
      • put

        public java.lang.Object put​(Parameters params)
                             throws HTTPException
        PUT method hook to implement (returns bad request by default)
        Returns:
        Typically JSON object or array
        Throws:
        HTTPException
      • del

        public java.lang.Object del​(Parameters params)
                             throws HTTPException
        DELETE method hook to implement (returns bad request by default)
        Returns:
        Typically JSON object or array
        Throws:
        HTTPException
      • head

        public java.lang.Object head​(Parameters params)
                              throws HTTPException
        HEAD method hook to implement (returns bad request by default)
        Returns:
        Typically JSON object or array
        Throws:
        HTTPException
      • patch

        public java.lang.Object patch​(Parameters params)
                               throws HTTPException
        PATCH method hook to implement (returns bad request by default)
        Returns:
        Typically JSON object or array
        Throws:
        HTTPException
      • getURIParts

        public final java.util.List<java.lang.String> getURIParts()
        Get the URI parts after external object name
        Returns:
        List of URI parts
      • useObjectPool

        public boolean useObjectPool()
        Use object pool?
        Returns:
        True if object pool is used
      • borrowAPIObject

        public ObjectDB borrowAPIObject​(java.lang.String name)
        Borrow a pooled API object or provide a non pooled object (pooled objects are only available on the API endpoint)
        Parameters:
        name - Object name
        Returns:
        Borrowed pooled object (needs to be returned) or a non pooled object if pooled objects are not available
      • returnAPIObject

        public void returnAPIObject​(ObjectDB obj)
        Return pooled API object or does nothing (pooled objects are only available on the API endpoint)
        Parameters:
        obj - Borrowed pooled object to return
      • storeInDataCache

        public void storeInDataCache​(java.lang.String key,
                                     java.lang.Object data)
        Store data in data cache
        Parameters:
        key - Key
        data - Data
      • getFromDataCache

        public java.lang.Object getFromDataCache​(java.lang.String key)
        Get data from data cache
        Parameters:
        key - Key
        Returns:
        Data from cache or null if not present in the data cache
      • removeFromDataCache

        public void removeFromDataCache​(java.lang.String key)
        Remove data from data cache
        Parameters:
        key - Key
      • clearDataCache

        public void clearDataCache()
        Clear all data from data cache
      • init

        public void init​(Parameters params)
        Init method to override if needed
      • display

        public final java.lang.Object display​(Parameters params)
        Dispatch to GET/POST/PUT/DELETE/HEAD/PATCH methods
        Overrides:
        display in class ExternalObject
        Parameters:
        params - Parameters
        Returns:
        Typically JSON object or array