org.apache.camel.model
Class OnCompletionDefinition

java.lang.Object
  extended by org.apache.camel.model.OptionalIdentifiedDefinition
      extended by org.apache.camel.model.ProcessorDefinition<ProcessorDefinition>
          extended by org.apache.camel.model.OnCompletionDefinition
All Implemented Interfaces:
Block

public class OnCompletionDefinition
extends ProcessorDefinition<ProcessorDefinition>

Represents an XML <onCompletion/> element

Version:
$Revision: 17252 $

Field Summary
 
Fields inherited from class org.apache.camel.model.ProcessorDefinition
errorHandlerBuilder, errorHandlerRef, log
 
Constructor Summary
OnCompletionDefinition()
           
 
Method Summary
 Processor createProcessor(RouteContext routeContext)
           
 ProcessorDefinition<? extends ProcessorDefinition<?>> end()
          Ends the current block
 String getLabel()
          Returns a label to describe this node such as the expression if some kind of expression node
 Boolean getOnCompleteOnly()
           
 Boolean getOnFailureOnly()
           
 WhenDefinition getOnWhen()
           
 List<ProcessorDefinition> getOutputs()
           
 String getShortName()
          Returns a short name for this node which can be useful for ID generation or referring to related resources like images
 boolean isAbstract()
          Whether this model is abstract or not.
 OnCompletionDefinition onCompleteOnly()
          Will only synchronize when the Exchange completed successfully (no errors).
 OnCompletionDefinition onFailureOnly()
          Will only synchronize when the Exchange ended with failure (exception or FAULT message).
 ExpressionClause<OnCompletionDefinition> onWhen()
          Creates an expression to configure an additional predicate that should be true before the onCompletion is triggered.
 OnCompletionDefinition onWhen(Predicate predicate)
          Sets an additional predicate that should be true before the onCompletion is triggered.
 void removeAllOnCompletionDefinition(ProcessorDefinition definition)
          Removes all existing OnCompletionDefinition from the definition.
 void setOnCompleteOnly(Boolean onCompleteOnly)
           
 void setOnFailureOnly(Boolean onFailureOnly)
           
 void setOnWhen(WhenDefinition onWhen)
           
 void setOutputs(List<ProcessorDefinition> outputs)
           
 String toString()
           
 
Methods inherited from class org.apache.camel.model.ProcessorDefinition
addInterceptStrategies, addInterceptStrategy, addOutput, addRoutes, aggregate, aggregate, aggregate, aggregate, aggregate, aop, bean, bean, bean, bean, beanRef, beanRef, choice, clearOutput, configureChild, convertBodyTo, convertBodyTo, createChannel, createCompositeProcessor, createErrorHandlerBuilder, createOutputsProcessor, createOutputsProcessor, delay, delay, delay, doTry, enrich, enrich, enrichRef, filter, filter, filter, filter, getErrorHandlerBuilder, getInterceptStrategies, getNodeFactory, getParent, id, idempotentConsumer, idempotentConsumer, idempotentConsumer, inOnly, inOnly, inOnly, inOnly, inOnly, inOnly, inOut, inOut, inOut, inOut, inOut, inOut, loadBalance, loadBalance, log, log, log, loop, loop, loop, makeProcessor, markRollbackOnly, markRollbackOnlyLast, marshal, marshal, marshal, marshal, multicast, multicast, multicast, onCompletion, onException, pipeline, pipeline, pipeline, pipeline, policy, policy, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrichRef, process, processRef, recipientList, recipientList, recipientList, removeFaultHeader, removeHeader, removeProperty, resequence, resequence, resequence, resequencer, rollback, rollback, routeId, routingSlip, routingSlip, sample, sample, setBody, setBody, setErrorHandlerBuilder, setExchangePattern, setFaultBody, setFaultHeader, setHeader, setHeader, setNodeFactory, setOutHeader, setOutHeader, setParent, setProperty, setProperty, sort, sort, sortBody, sortBody, split, split, split, stop, threads, threads, throttle, throwException, to, to, to, to, to, to, to, to, to, to, toAsync, toAsync, toAsync, toAsync, toF, transacted, transacted, transform, transform, unmarshal, unmarshal, unmarshal, unmarshal, wireTap, wireTap, wireTap, wrapChannel, wrapInErrorHandler, wrapProcessor
 
Methods inherited from class org.apache.camel.model.OptionalIdentifiedDefinition
description, getDescription, getId, hasCustomIdAssigned, idOrCreate, setDescription, setId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

OnCompletionDefinition

public OnCompletionDefinition()
Method Detail

toString

public String toString()
Overrides:
toString in class Object

getShortName

public String getShortName()
Description copied from class: OptionalIdentifiedDefinition
Returns a short name for this node which can be useful for ID generation or referring to related resources like images

Overrides:
getShortName in class OptionalIdentifiedDefinition
Returns:
defaults to "node" but derived nodes should overload this to provide a unique name

getLabel

public String getLabel()
Description copied from class: ProcessorDefinition
Returns a label to describe this node such as the expression if some kind of expression node

Overrides:
getLabel in class ProcessorDefinition<ProcessorDefinition>

isAbstract

public boolean isAbstract()
Description copied from class: ProcessorDefinition
Whether this model is abstract or not.

An abstract model is something that is used for configuring cross cutting concerns such as error handling, transaction policies, interceptors etc.

Regular definitions is what is part of the route, such as ToDefinition, WireTapDefinition and the likes.

Will by default return false to indicate regular definition, so all the abstract definitions must override this method and return true instead.

This information is used in camel-spring to let Camel work a bit on the model provided by JAXB from the Spring XML file. This is needed to handle those cross cutting concerns properly. The Java DSL does not have this issue as it can work this out directly using the fluent builder methods.

Overrides:
isAbstract in class ProcessorDefinition<ProcessorDefinition>
Returns:
true for abstract, otherwise false for regular.

createProcessor

public Processor createProcessor(RouteContext routeContext)
                          throws Exception
Overrides:
createProcessor in class ProcessorDefinition<ProcessorDefinition>
Throws:
Exception

removeAllOnCompletionDefinition

public void removeAllOnCompletionDefinition(ProcessorDefinition definition)
Removes all existing OnCompletionDefinition from the definition.

This is used to let route scoped onCompletion overrule any global onCompletion. Hence we remove all existing as they are global.

Parameters:
definition - the parent definition that is the route

end

public ProcessorDefinition<? extends ProcessorDefinition<?>> end()
Description copied from class: ProcessorDefinition
Ends the current block

Overrides:
end in class ProcessorDefinition<ProcessorDefinition>
Returns:
the builder

onCompleteOnly

public OnCompletionDefinition onCompleteOnly()
Will only synchronize when the Exchange completed successfully (no errors).

Returns:
the builder

onFailureOnly

public OnCompletionDefinition onFailureOnly()
Will only synchronize when the Exchange ended with failure (exception or FAULT message).

Returns:
the builder

onWhen

public OnCompletionDefinition onWhen(Predicate predicate)
Sets an additional predicate that should be true before the onCompletion is triggered.

To be used for fine grained controlling whether a completion callback should be invoked or not

Parameters:
predicate - predicate that determines true or false
Returns:
the builder

onWhen

public ExpressionClause<OnCompletionDefinition> onWhen()
Creates an expression to configure an additional predicate that should be true before the onCompletion is triggered.

To be used for fine grained controlling whether a completion callback should be invoked or not

Returns:
the expression clause to configure

getOutputs

public List<ProcessorDefinition> getOutputs()
Specified by:
getOutputs in class ProcessorDefinition<ProcessorDefinition>

setOutputs

public void setOutputs(List<ProcessorDefinition> outputs)

getOnCompleteOnly

public Boolean getOnCompleteOnly()

setOnCompleteOnly

public void setOnCompleteOnly(Boolean onCompleteOnly)

getOnFailureOnly

public Boolean getOnFailureOnly()

setOnFailureOnly

public void setOnFailureOnly(Boolean onFailureOnly)

getOnWhen

public WhenDefinition getOnWhen()

setOnWhen

public void setOnWhen(WhenDefinition onWhen)


Copyright © 2007-2010 IONA Open Source Community. All Rights Reserved.