## org.jboss.netty.handler.codec.embedder
Class DecoderEmbedder<E>

    java.lang.Object
      org.jboss.netty.handler.codec.embedder.DecoderEmbedder<E>

All Implemented Interfaces:
  CodecEmbedder<E>

    public class DecoderEmbedder<E>

extends Object

A helper that wraps a decoder so that it can be used without doing actual I/O in unit tests or higher level codecs. For example, you can decode a Base64-encoded `ChannelBuffer` with `Base64Decoder` and `StringDecoder` without setting up the `ChannelPipeline` and other mock objects by yourself:

     ChannelBuffer base64Data = ChannelBuffers.copiedBuffer("Zm9vYmFy", CharsetUtil.US_ASCII);

     DecoderEmbedder<String> embedder = new DecoderEmbedder<String>(
             new Base64Decoder(), new StringDecoder());

     embedded.offer(base64Data);

     String decoded = embedded.poll();
     assert decoded.equals("foobar");

Version:
  $Rev: 2122 $, $Date: 2010-02-02 11:00:04 +0900 (Tue, 02 Feb 2010) $
Author:
  The Netty Project, Trustin Lee
See Also:
  `EncoderEmbedder`

Constructor Summary
`DecoderEmbedder(ChannelBufferFactory bufferFactory, ChannelUpstreamHandler... handlers)` Creates a new embedder whose pipeline is composed of the specified handlers.
`DecoderEmbedder(ChannelUpstreamHandler... handlers)` Creates a new embedder whose pipeline is composed of the specified handlers.

Method Summary
`boolean` `finish()` Signals the pipeline that the encoding or decoding has been finished and no more data will be offered.
`protected Channel` `getChannel()` Returns the virtual `Channel` which will be used as a mock during encoding and decoding.
`protected boolean` `isEmpty()` Returns `true` if and only if the produce queue is empty and therefore `poll()` will return `null`.
`boolean` `offer(Object input)` Offers an input object to the pipeline of this embedder.
`E` `peek()` Reads an encoded or decoded output from the head of the product queue.
`E` `poll()` Consumes an encoded or decoded output from the product queue.
`Object[]` `pollAll()` Consumes all encoded or decoded output from the product queue.

`

`<T> T[]`

`

`pollAll(T[] a)`
Consumes all encoded or decoded output from the product queue.

`int` `size()` Returns the number of encoded or decoded output in the product queue.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### DecoderEmbedder

    public DecoderEmbedder(ChannelUpstreamHandler... handlers)

  Creates a new embedder whose pipeline is composed of the specified handlers.

### DecoderEmbedder

    public DecoderEmbedder(ChannelBufferFactory bufferFactory,
                           ChannelUpstreamHandler... handlers)

  Creates a new embedder whose pipeline is composed of the specified handlers.

  Parameters:
    `bufferFactory` - the `ChannelBufferFactory` to be used when creating a new buffer.

Method Detail

### offer

    public boolean offer(Object input)

  Description copied from interface: `CodecEmbedder`
  Offers an input object to the pipeline of this embedder.

  Returns:
    `true` if and only if there is something to read in the product queue (see `CodecEmbedder.poll()` and `CodecEmbedder.peek()`)

### finish

    public boolean finish()

  Description copied from interface: `CodecEmbedder`
  Signals the pipeline that the encoding or decoding has been finished and no more data will be offered.

  Specified by:
    `finish` in interface `CodecEmbedder<E>`
  Returns:
    `true` if and only if there is something to read in the product queue (see `CodecEmbedder.poll()` and `CodecEmbedder.peek()`)

### getChannel

    protected final Channel getChannel()

  Returns the virtual `Channel` which will be used as a mock during encoding and decoding.

### isEmpty

    protected final boolean isEmpty()

  Returns `true` if and only if the produce queue is empty and therefore `poll()` will return `null`.

### poll

    public final E poll()

  Description copied from interface: `CodecEmbedder`
  Consumes an encoded or decoded output from the product queue. The output object is generated by the offered input objects.

  Specified by:
    `poll` in interface `CodecEmbedder<E>`
  Returns:
    an encoded or decoded object. `null` if and only if there is no output object left in the product queue.

### peek

    public final E peek()

  Description copied from interface: `CodecEmbedder`
  Reads an encoded or decoded output from the head of the product queue. The difference from `CodecEmbedder.poll()` is that it does not remove the retrieved object from the product queue.

  Specified by:
    `peek` in interface `CodecEmbedder<E>`
  Returns:
    an encoded or decoded object. `null` if and only if there is no output object left in the product queue.

### pollAll

    public final Object[] pollAll()

  Description copied from interface: `CodecEmbedder`
  Consumes all encoded or decoded output from the product queue. The output object is generated by the offered input objects. The behavior of this method is identical with `Collection.toArray()` except that the product queue is cleared.

  Specified by:
    `pollAll` in interface `CodecEmbedder<E>`
  Returns:
    an array of all encoded or decoded objects. An empty array is returned if and only if there is no output object left in the product queue.

### pollAll

    public final <T> T[] pollAll(T[] a)

  Description copied from interface: `CodecEmbedder`
  Consumes all encoded or decoded output from the product queue. The output object is generated by the offered input objects. The behavior of this method is identical with `Collection.toArray(Object[])` except that the product queue is cleared.

  Specified by:
    `pollAll` in interface `CodecEmbedder<E>`
  Returns:
    an array of all encoded or decoded objects. An empty array is returned if and only if there is no output object left in the product queue.

### size

    public final int size()

  Description copied from interface: `CodecEmbedder`
  Returns the number of encoded or decoded output in the product queue.

  Specified by:
    `size` in interface `CodecEmbedder<E>`

Copyright © 2008-2010 JBoss, a division of Red Hat, Inc.. All Rights Reserved.