org.apache.http.impl.nio.codecs

## Class AbstractMessageParser<T extends HttpMessage>

- java.lang.Object
- - org.apache.http.impl.nio.codecs.AbstractMessageParser<T>

- All Implemented Interfaces:
    NHttpMessageParser<T>
  Direct Known Subclasses:
    DefaultHttpRequestParser, DefaultHttpResponseParser, HttpRequestParser, HttpResponseParser

      @NotThreadSafe
      public abstract class AbstractMessageParser<T extends HttpMessage>
      extends Object
      implements NHttpMessageParser<T>

  Abstract `NHttpMessageParser` that serves as a base for all message parser implementations.
  Since:
    4.0

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected LineParser` | `lineParser`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractMessageParser(SessionInputBuffer buffer, LineParser lineParser, HttpParams params)` Deprecated. (4.3) use `AbstractMessageParser(SessionInputBuffer, LineParser, MessageConstraints)`
    `AbstractMessageParser(SessionInputBuffer buffer, LineParser lineParser, MessageConstraints constraints)` Creates an instance of AbstractMessageParser.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract T` | `createMessage(CharArrayBuffer buffer)` Creates `HttpMessage` instance based on the content of the input buffer containing the first line of the incoming HTTP message.
    `int` | `fillBuffer(ReadableByteChannel channel)` Fills the internal buffer of the parser with input data from the given `ReadableByteChannel`.
    `T` | `parse()` Attempts to parse a complete message head from the content of the internal buffer.
    `void` | `reset()` Resets the parser.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### lineParser

          protected final LineParser lineParser

  - ### Constructor Detail

    - #### AbstractMessageParser

          @Deprecated
          public AbstractMessageParser(SessionInputBuffer buffer,
                                          LineParser lineParser,
                                          HttpParams params)

      Deprecated. (4.3) use `AbstractMessageParser(SessionInputBuffer, LineParser, MessageConstraints)`
      Creates an instance of this class.
      Parameters:
        `buffer` - the session input buffer.
        `lineParser` - the line parser.
        `params` - HTTP parameters.

    - #### AbstractMessageParser

          public AbstractMessageParser(SessionInputBuffer buffer,
                               LineParser lineParser,
                               MessageConstraints constraints)

      Creates an instance of AbstractMessageParser.
      Parameters:
        `buffer` - the session input buffer.
        `lineParser` - the line parser. If `null` `BasicLineParser.INSTANCE` will be used.
        `constraints` - Message constraints. If `null` `MessageConstraints.DEFAULT` will be used.
      Since:
        4.3

  - ### Method Detail

    - #### reset

          public void reset()

      Description copied from interface: `NHttpMessageParser`
      Resets the parser. The parser will be ready to start parsing another HTTP message.
      Specified by:
        `reset` in interface `NHttpMessageParser<T extends HttpMessage>`

    - #### fillBuffer

          public int fillBuffer(ReadableByteChannel channel)
                         throws IOException

      Description copied from interface: `NHttpMessageParser`
      Fills the internal buffer of the parser with input data from the given `ReadableByteChannel`.
      Specified by:
        `fillBuffer` in interface `NHttpMessageParser<T extends HttpMessage>`
      Parameters:
        `channel` - the input channel
      Returns:
        number of bytes read.
      Throws:
        `IOException` - in case of an I/O error.

    - #### createMessage

          protected abstract T createMessage(CharArrayBuffer buffer)
                                                          throws HttpException,
                                                                 ParseException

      Creates `HttpMessage` instance based on the content of the input buffer containing the first line of the incoming HTTP message.
      Parameters:
        `buffer` - the line buffer.
      Returns:
        HTTP message.
      Throws:
        `HttpException` - in case of HTTP protocol violation
        `ParseException` - in case of a parse error.

    - #### parse

          public T parse()
                                      throws IOException,
                                             HttpException

      Description copied from interface: `NHttpMessageParser`
      Attempts to parse a complete message head from the content of the internal buffer. If the message in the input buffer is incomplete this method will return `null`.
      Specified by:
        `parse` in interface `NHttpMessageParser<T extends HttpMessage>`
      Returns:
        HTTP message head, if available, `null` otherwise.
      Throws:
        `IOException` - in case of an I/O error.
        `HttpException` - in case the HTTP message is malformed or violates the HTTP protocol.

Copyright © 2005–2013 The Apache Software Foundation. All rights reserved.