Interface Request

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static String REQUEST
      Represents the REQUEST parameter
      static String SERVICE  
      static String VERSION
      Represents the VERSION parameter
      static String WMTVER
      Represents the WMTVER parameter
    • Method Summary

      All Methods Instance Methods Abstract Methods Default Methods 
      Modifier and Type Method Description
      default Response createResponse​(HTTPResponse response)
      Each Request must know how to create it's counterpart Response.
      URL getFinalURL()
      Once the properties of the request are configured, this will return the URL that points to the server and contains all of the appropriate name/value parameters.
      String getPostContentType()
      If this request uses POST, it must specify the content type of the data that is to be written out during performPostOutput().
      Properties getProperties()  
      default Map<String,​Object> getRequestHints()
      Returns the request hints
      void performPostOutput​(OutputStream outputStream)
      This is called during the connection to the server, allowing this request to write out data to the server by using the provided outputStream.
      boolean requiresPost()
      This method indicates whether this request needs to transmit some data to the server using POST.
      void setProperty​(String name, String value)
      Sets the name/value property for this request.
      default void setRequestHints​(Map<String,​Object> hints)
      Sets hints that might be driving how the request is performed
    • Method Detail

      • getFinalURL

        URL getFinalURL()
        Once the properties of the request are configured, this will return the URL that points to the server and contains all of the appropriate name/value parameters.
        Returns:
        a URL that can be used to issue the request
      • setProperty

        void setProperty​(String name,
                         String value)
        Sets the name/value property for this request.

        Note that when using this method, it is up to the programmer to provide their own encoding of value according to the OWS specifications! The code will not do this for you.

        Different OWS specifications define different ways to do this. There are notorious differences between WMS 1.1.1 (section 6.2.1) and WMS 1.3.0 (section 6.3.2) for example.

        If value is null, "name" is removed from the properties table.

        Parameters:
        name - the name of the property
        value - the value of the property
      • getProperties

        Properties getProperties()
        Returns:
        a copy of this request's properties
      • createResponse

        default Response createResponse​(HTTPResponse response)
                                 throws ServiceException,
                                        IOException
        Each Request must know how to create it's counterpart Response. Given the content type and input stream (containin the response data), this method must return an appropriate Response object.
        Throws:
        ServiceException
        IOException
      • requiresPost

        boolean requiresPost()
        This method indicates whether this request needs to transmit some data to the server using POST. If this returns true, performPostOutput() will be called during the connection, allowing the data to be written out to the server.
        Returns:
        true if this request needs POST support, false otherwise.
      • getPostContentType

        String getPostContentType()
        If this request uses POST, it must specify the content type of the data that is to be written out during performPostOutput().

        For open web services, this is usually "application/xml".

        Returns:
        the MIME type of the data to be sent during the request
      • performPostOutput

        void performPostOutput​(OutputStream outputStream)
                        throws IOException
        This is called during the connection to the server, allowing this request to write out data to the server by using the provided outputStream.

        Implementors of this method do not need to call outputStream.flush() or outputStream.close(). The framework will call them immediately after calling this method.

        Throws:
        IOException
      • setRequestHints

        default void setRequestHints​(Map<String,​Object> hints)
        Sets hints that might be driving how the request is performed
      • getRequestHints

        default Map<String,​Object> getRequestHints()
        Returns the request hints