org.apache.mina.filter.codec.textline
Class TextLineDecoder

java.lang.Object
  extended by org.apache.mina.filter.codec.textline.TextLineDecoder
All Implemented Interfaces:
ProtocolDecoder

public class TextLineDecoder
extends Object
implements ProtocolDecoder

A ProtocolDecoder which decodes a text line into a string.

Author:
Apache MINA Project

Constructor Summary
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
 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-2011 Apache MINA Project. All Rights Reserved.