org.apache.mina.filter.codec.textline

## Class TextLineDecoder

- java.lang.Object
- - org.apache.mina.filter.codec.textline.TextLineDecoder

- All Implemented Interfaces:
    ProtocolDecoder
  Direct Known Subclasses:
    CommandDecoder

      public class TextLineDecoder
      extends Object
      implements ProtocolDecoder

  A `ProtocolDecoder` which decodes a text line into a string.
  Author:
    Apache MINA Project

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TextLineDecoder()` Creates a new instance with the current default `Charset` and `LineDelimiter.AUTO` delimiter.
    `TextLineDecoder(Charset charset)` Creates a new instance with the spcified `charset` and `LineDelimiter.AUTO` delimiter.
    `TextLineDecoder(Charset charset, LineDelimiter delimiter)` Creates a new instance with the specified `charset` and the specified `delimiter`.
    `TextLineDecoder(Charset charset, String delimiter)` Creates a new instance with the spcified `charset` and the specified `delimiter`.
    `TextLineDecoder(LineDelimiter delimiter)` Creates a new instance with the current default `Charset` and the specified `delimiter`.
    `TextLineDecoder(String delimiter)` Creates a new instance with the current default `Charset` and the specified `delimiter`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out)` Decodes binary or protocol-specific content into higher-level message objects.
    `void` | `dispose(IoSession session)` Releases all resources related with this decoder.
    `void` | `finishDecode(IoSession session, ProtocolDecoderOutput out)` Invoked when the specified `session` is closed.
    `int` | `getBufferLength()` Returns the allowed buffer size used to store the decoded line in the Context instance.
    `int` | `getMaxLineLength()` Returns the allowed maximum size of the line to be decoded.
    `void` | `setBufferLength(int bufferLength)` Sets the default buffer size.
    `void` | `setMaxLineLength(int maxLineLength)` Sets the allowed maximum size of the line to be decoded.
    `protected void` | `writeText(IoSession session, String text, ProtocolDecoderOutput out)` By default, this method propagates the decoded line of text to `ProtocolDecoderOutput#write(Object)`.

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

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

- - ### Constructor Detail

    - #### TextLineDecoder

          public TextLineDecoder()

      Creates a new instance with the current default `Charset` and `LineDelimiter.AUTO` delimiter.

    - #### TextLineDecoder

          public TextLineDecoder(String delimiter)

      Creates a new instance with the current default `Charset` and the specified `delimiter`.

    - #### TextLineDecoder

          public TextLineDecoder(LineDelimiter delimiter)

      Creates a new instance with the current default `Charset` and the specified `delimiter`.

    - #### TextLineDecoder

          public TextLineDecoder(Charset charset)

      Creates a new instance with the spcified `charset` and `LineDelimiter.AUTO` delimiter.

    - #### TextLineDecoder

          public TextLineDecoder(Charset charset,
                         String delimiter)

      Creates a new instance with the spcified `charset` and the specified `delimiter`.

    - #### TextLineDecoder

          public TextLineDecoder(Charset charset,
                         LineDelimiter delimiter)

      Creates a new instance with the specified `charset` and the specified `delimiter`.

  - ### Method Detail

    - #### getMaxLineLength

          public int getMaxLineLength()

      Returns the allowed maximum size of the line to be decoded. If the size of the line to be decoded exceeds this value, the decoder will throw a `BufferDataException`. The default value is `1024` (1KB).

    - #### setMaxLineLength

          public void setMaxLineLength(int maxLineLength)

      Sets the allowed maximum size of the line to be decoded. If the size of the line to be decoded exceeds this value, the decoder will throw a `BufferDataException`. The default value is `1024` (1KB).

    - #### setBufferLength

          public void setBufferLength(int bufferLength)

      Sets the default buffer size. This buffer is used in the Context to store the decoded line.
      Parameters:
        `bufferLength` - The default bufer size

    - #### getBufferLength

          public int getBufferLength()

      Returns the allowed buffer size used to store the decoded line in the Context instance.

    - #### decode

          public void decode(IoSession session,
                    IoBuffer in,
                    ProtocolDecoderOutput out)
                      throws Exception

      Decodes binary or protocol-specific content into higher-level message objects. MINA invokes `ProtocolDecoder.decode(IoSession, IoBuffer, ProtocolDecoderOutput)` method with read data, and then the decoder implementation puts decoded messages into `ProtocolDecoderOutput`.
      Specified by:
        `decode` in interface `ProtocolDecoder`
      Throws:
        `Exception` - if the read data violated protocol specification

    - #### finishDecode

          public void finishDecode(IoSession session,
                          ProtocolDecoderOutput out)
                            throws Exception

      Invoked when the specified `session` is closed. This method is useful when you deal with the protocol which doesn't specify the length of a message such as HTTP response without `content-length` header. Implement this method to process the remaining data that `ProtocolDecoder.decode(IoSession, IoBuffer, ProtocolDecoderOutput)` method didn't process completely.
      Specified by:
        `finishDecode` in interface `ProtocolDecoder`
      Throws:
        `Exception` - if the read data violated protocol specification

    - #### dispose

          public void dispose(IoSession session)
                       throws Exception

      Releases all resources related with this decoder.
      Specified by:
        `dispose` in interface `ProtocolDecoder`
      Throws:
        `Exception` - if failed to dispose all resources

    - #### writeText

          protected void writeText(IoSession session,
                       String text,
                       ProtocolDecoderOutput out)

      By default, this method propagates the decoded line of text to `ProtocolDecoderOutput#write(Object)`. You may override this method to modify the default behavior.
      Parameters:
        `session` - the `IoSession` the received data.
        `text` - the decoded text
        `out` - the upstream `ProtocolDecoderOutput`.

Copyright © 2004-2012 Apache MINA Project. All Rights Reserved.