Class AbstractRESTClientSource<O>

  • Type Parameters:
    O - the type of output data to handle
    All Implemented Interfaces:
    adams.core.CleanUpHandler, adams.core.Destroyable, adams.core.ErrorProvider, adams.core.GlobalInfoSupporter, adams.core.logging.LoggingLevelHandler, adams.core.logging.LoggingSupporter, adams.core.option.OptionHandler, adams.core.QuickInfoSupporter, adams.core.SizeOfHandler, AlternativeUrlSupporter, RESTClient, RESTClientProducer<O>, Serializable
    Direct Known Subclasses:
    EchoClientSource

    public abstract class AbstractRESTClientSource<O>
    extends adams.core.option.AbstractOptionHandler
    implements RESTClientProducer<O>, adams.core.QuickInfoSupporter, AlternativeUrlSupporter
    Ancestor for webservice clients.
    Author:
    fracpete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_Owner

        protected adams.flow.core.Actor m_Owner
        the owner.
      • m_ConnectionTimeout

        protected int m_ConnectionTimeout
        the connection timeout.
      • m_ReceiveTimeout

        protected int m_ReceiveTimeout
        the receive timeout.
      • m_UseAlternativeURL

        protected boolean m_UseAlternativeURL
        whether to use an alternative URL.
      • m_AlternativeURL

        protected String m_AlternativeURL
        the URL of the webservice.
      • m_ResponseData

        protected transient O m_ResponseData
        the response data.
      • m_LastError

        protected String m_LastError
        the last error that was generated.
    • Constructor Detail

      • AbstractRESTClientSource

        public AbstractRESTClientSource()
    • Method Detail

      • defineOptions

        public void defineOptions()
        Adds options to the internal list of options.
        Specified by:
        defineOptions in interface adams.core.option.OptionHandler
        Overrides:
        defineOptions in class adams.core.option.AbstractOptionHandler
      • initialize

        protected void initialize()
        Initializes the members.
        Overrides:
        initialize in class adams.core.option.AbstractOptionHandler
      • setConnectionTimeout

        public void setConnectionTimeout​(int value)
        Sets the timeout for connection.
        Specified by:
        setConnectionTimeout in interface RESTClient
        Parameters:
        value - the timeout in msec, 0 is infinite
      • getConnectionTimeout

        public int getConnectionTimeout()
        Returns the timeout for the connection.
        Specified by:
        getConnectionTimeout in interface RESTClient
        Returns:
        the timeout in msec, 0 is infinite
      • connectionTimeoutTipText

        public String connectionTimeoutTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setReceiveTimeout

        public void setReceiveTimeout​(int value)
        Sets the timeout for receiving.
        Specified by:
        setReceiveTimeout in interface RESTClient
        Parameters:
        value - the timeout in msec, 0 is infinite
      • getReceiveTimeout

        public int getReceiveTimeout()
        Returns the timeout for receiving.
        Specified by:
        getReceiveTimeout in interface RESTClient
        Returns:
        the timeout in msec, 0 is infinite
      • receiveTimeoutTipText

        public String receiveTimeoutTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setUseAlternativeURL

        public void setUseAlternativeURL​(boolean value)
        Sets whether to use the alternative URL.
        Specified by:
        setUseAlternativeURL in interface AlternativeUrlSupporter
        Parameters:
        value - whether to use the alternative URL
      • getUseAlternativeURL

        public boolean getUseAlternativeURL()
        Returns whether to use the alternative URL used for the service.
        Specified by:
        getUseAlternativeURL in interface AlternativeUrlSupporter
        Returns:
        true if to use alternative URL
      • useAlternativeURLTipText

        public String useAlternativeURLTipText()
        Returns the tip text for this property.
        Specified by:
        useAlternativeURLTipText in interface AlternativeUrlSupporter
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • alternativeURLTipText

        public String alternativeURLTipText()
        Returns the tip text for this property.
        Specified by:
        alternativeURLTipText in interface AlternativeUrlSupporter
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • getQuickInfo

        public String getQuickInfo()
        Returns a quick info about the object, which can be displayed in the GUI.
        Specified by:
        getQuickInfo in interface adams.core.QuickInfoSupporter
        Returns:
        null if no info available, otherwise short string
      • setOwner

        public void setOwner​(adams.flow.core.Actor value)
        Sets the actor that executes this webservice.
        Specified by:
        setOwner in interface RESTClient
        Parameters:
        value - the owner
      • getOwner

        public adams.flow.core.Actor getOwner()
        Returns the owning actor.
        Specified by:
        getOwner in interface RESTClient
        Returns:
        the owner
      • hasLastError

        public boolean hasLastError()
        Checks whether there was an error with the last call.
        Specified by:
        hasLastError in interface adams.core.ErrorProvider
        Returns:
        true if there was an error
        See Also:
        getLastError()
      • getLastError

        public String getLastError()
        Returns the last error that occurred.
        Specified by:
        getLastError in interface adams.core.ErrorProvider
        Returns:
        the last error, null if none occurred
      • notifyResponseDataListeners

        protected void notifyResponseDataListeners()
        Notifies all listeners that response data has arrived.
      • setResponseData

        public void setResponseData​(O value)
        Sets the response data.
        Specified by:
        setResponseData in interface RESTClientProducer<O>
        Parameters:
        value - the response data
      • getResponseData

        public O getResponseData()
        Returns the response data, if any.
        Specified by:
        getResponseData in interface RESTClientProducer<O>
        Returns:
        the response data
      • preQuery

        protected void preQuery()
                         throws Exception
        Hook method before querying the webservice.

        Default implementation ensures that an owner is set.
        Throws:
        Exception - if it fails for some reason
      • doQuery

        protected abstract void doQuery()
                                 throws Exception
        Performs the actual webservice query.
        Throws:
        Exception - if accessing webservice fails for some reason
      • postQuery

        protected void postQuery()
                          throws Exception
        Hook method after querying the webservice.

        Default implementation does nothing.
        Throws:
        Exception - if it fails for some reason
      • query

        public void query()
                   throws Exception
        Queries the webservice.
        Specified by:
        query in interface RESTClient
        Throws:
        Exception - if accessing webservice fails for some reason
      • cleanUp

        public void cleanUp()
        Cleans up data structures, frees up memory.
        Default implementation does nothing.
        Specified by:
        cleanUp in interface adams.core.CleanUpHandler