Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.mule.processor.chain
Class DefaultMessageProcessorChainBuilder

    java.lang.Object
      org.mule.processor.chain.AbstractMessageProcessorChainBuilder
          org.mule.processor.chain.DefaultMessageProcessorChainBuilder

All Implemented Interfaces:
  MessageProcessorBuilder, MessageProcessorChainBuilder

Direct Known Subclasses:
  EndpointMessageProcessorChainBuilder

    public class DefaultMessageProcessorChainBuilder

extends AbstractMessageProcessorChainBuilder

Constructs a chain of `MessageProcessor`s and wraps the invocation of the chain in a composite MessageProcessor. Both MessageProcessors and InterceptingMessageProcessor's can be chained together arbitrarily in a single chain. InterceptingMessageProcessors simply intercept the next MessageProcessor in the chain. When other non-intercepting MessageProcessors are used an adapter is used internally to chain the MessageProcessor with the next in the chain.

The MessageProcessor instance that this builder builds can be nested in other chains as required.

Field Summary

Fields inherited from class org.mule.processor.chain.AbstractMessageProcessorChainBuilder
`flowConstruct, name, processors`

Constructor Summary
`DefaultMessageProcessorChainBuilder()`
`DefaultMessageProcessorChainBuilder(FlowConstruct flowConstruct)`

Method Summary
`MessageProcessorChain` | `build()` This builder supports the chaining together of message processors that intercept and also those that don't.
`DefaultMessageProcessorChainBuilder` | `chain(List<MessageProcessor> processors)`
`DefaultMessageProcessorChainBuilder` | `chain(MessageProcessor... processors)`
`DefaultMessageProcessorChainBuilder` | `chain(MessageProcessorBuilder... builders)`
`DefaultMessageProcessorChainBuilder` | `chainBefore(MessageProcessor processor)`
`DefaultMessageProcessorChainBuilder` | `chainBefore(MessageProcessorBuilder builder)`

Methods inherited from class org.mule.processor.chain.AbstractMessageProcessorChainBuilder
`initializeMessageProcessor, setName`

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

Constructor Detail

### DefaultMessageProcessorChainBuilder

    public DefaultMessageProcessorChainBuilder()

### DefaultMessageProcessorChainBuilder

    public DefaultMessageProcessorChainBuilder(FlowConstruct flowConstruct)

Method Detail

### build

    public MessageProcessorChain build()
                                throws MuleException

  This builder supports the chaining together of message processors that intercept and also those that don't. While one can iterate over message processor intercepting message processors need to be chained together. One solution is make all message processors intercepting (via adaption) and chain them all together, this results in huge stack traces and recursive calls with adaptor. The alternative is to build the chain in such a way that we iterate when we can and chain where we need to.
  We iterate over the list of message processor to be chained together in reverse order collecting up those that can be iterated over in a temporary list, as soon as we have an intercepting message processor we create a DefaultMessageProcessorChain using the temporary list and set it as a listener of the intercepting message processor and then we continue with the algorithm

  Throws:
    `MuleException`

### chain

    public DefaultMessageProcessorChainBuilder chain(MessageProcessor... processors)

### chain

    public DefaultMessageProcessorChainBuilder chain(List<MessageProcessor> processors)

### chain

    public DefaultMessageProcessorChainBuilder chain(MessageProcessorBuilder... builders)

### chainBefore

    public DefaultMessageProcessorChainBuilder chainBefore(MessageProcessor processor)

### chainBefore

    public DefaultMessageProcessorChainBuilder chainBefore(MessageProcessorBuilder builder)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2010 MuleSoft, Inc.. All Rights Reserved.