Package org.apache.camel.model
Class ChoiceDefinition
- java.lang.Object
-
- org.apache.camel.model.OptionalIdentifiedDefinition<Type>
-
- org.apache.camel.model.ProcessorDefinition<ChoiceDefinition>
-
- org.apache.camel.model.ChoiceDefinition
-
- All Implemented Interfaces:
org.apache.camel.CamelContextAware
,org.apache.camel.LineNumberAware
,Block
,OutputNode
,org.apache.camel.NamedNode
,org.apache.camel.spi.HasId
,org.apache.camel.spi.IdAware
@Metadata(label="eip,routing") public class ChoiceDefinition extends ProcessorDefinition<ChoiceDefinition> implements OutputNode
Route messages based on a series of predicates
-
-
Field Summary
-
Fields inherited from class org.apache.camel.model.ProcessorDefinition
disabled, inheritErrorHandler
-
-
Constructor Summary
Constructors Constructor Description ChoiceDefinition()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addOutput(ProcessorDefinition<?> output)
Adds the given definition as output to this blockvoid
configureChild(ProcessorDefinition<?> output)
Strategy for children to do any custom configurationProcessorDefinition<?>
end()
Ends the current blockChoiceDefinition
endChoice()
Ends the current block and returns back to thechoice()
DSL.String
getLabel()
Returns a label to describe this node such as the expression if some kind of expression nodeOtherwiseDefinition
getOtherwise()
List<ProcessorDefinition<?>>
getOutputs()
String
getPrecondition()
String
getShortName()
List<WhenDefinition>
getWhenClauses()
ChoiceDefinition
otherwise()
Sets the otherwise nodeChoiceDefinition
precondition()
Indicates that this Choice EIP is in precondition mode, its branches (when/otherwise) are then evaluated during startup to keep at runtime only the branch that matched.ChoiceDefinition
precondition(boolean precondition)
Indicates whether this Choice EIP is in precondition mode or not.void
setId(String id)
Sets the id of this nodevoid
setOtherwise(OtherwiseDefinition otherwise)
void
setPrecondition(String precondition)
Indicates whether this Choice EIP is in precondition mode or not.void
setWhenClauses(List<WhenDefinition> whenClauses)
Sets the when nodesString
toString()
ExpressionClause<ChoiceDefinition>
when()
Creates an expression for the when nodeChoiceDefinition
when(org.apache.camel.Predicate predicate)
Sets the predicate for the when node-
Methods inherited from class org.apache.camel.model.ProcessorDefinition
addInterceptStrategy, aggregate, aggregate, aggregate, aggregate, bean, bean, bean, bean, bean, bean, bean, bean, bean, bean, bean, choice, circuitBreaker, claimCheck, claimCheck, claimCheck, claimCheck, clearOutput, convertBodyTo, convertBodyTo, convertBodyTo, delay, delay, delay, disabled, disabled, disabled, doTry, dynamicRouter, dynamicRouter, endCircuitBreaker, endDoCatch, endDoTry, endParent, enrich, enrich, enrich, enrich, enrich, enrich, enrich, enrich, enrich, enrichWith, enrichWith, enrichWith, enrichWith, enrichWith, enrichWith, filter, filter, filter, filter, getDisabled, getIndex, getInterceptStrategies, getParent, getRouteConfiguration, id, idempotentConsumer, idempotentConsumer, idempotentConsumer, inheritErrorHandler, inOnly, inOnly, inOnly, inOnly, inOnly, inOut, inOut, inOut, inOut, inOut, isAbstract, isInheritErrorHandler, isTopLevelOnly, isWrappingEntireOutput, kamelet, loadBalance, loadBalance, log, log, log, log, log, log, loop, loop, loop, loopDoWhile, loopDoWhile, markRollbackOnly, markRollbackOnlyLast, marshal, marshal, marshal, marshal, multicast, multicast, multicast, nodePrefixId, onCompletion, onException, onException, pausable, pausable, pausable, pausable, pipeline, pipeline, pipeline, pipeline, policy, policy, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrich, pollEnrichWith, pollEnrichWith, pollEnrichWith, pollEnrichWith, pollEnrichWith, pollEnrichWith, preCreateProcessor, process, process, process, recipientList, recipientList, recipientList, recipientList, removeHeader, removeHeaders, removeHeaders, removeProperties, removeProperties, removeProperty, resequence, resequence, resumable, resumable, resumable, rollback, rollback, routeDescription, routeGroup, routeId, routingSlip, routingSlip, routingSlip, saga, sample, sample, sample, sample, sample, script, script, serviceCall, serviceCall, serviceCall, setBody, setBody, setBody, setDisabled, setExchangePattern, setExchangePattern, setHeader, setHeader, setHeader, setInheritErrorHandler, setParent, setProperty, setProperty, setProperty, setRouteConfiguration, sort, sort, sort, split, split, split, split, startupOrder, step, step, stop, threads, threads, threads, threads, throttle, throttle, throttle, throttle, throttle, throwException, throwException, to, to, to, to, to, to, to, to, to, to, to, to, to, to, toD, toD, toD, toD, toD, toD, toD, toF, transacted, transacted, transform, transform, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, unmarshal, validate, validate, validate, wireTap, wireTap, wireTap
-
Methods inherited from class org.apache.camel.model.OptionalIdentifiedDefinition
description, description, getCamelContext, getCustomId, getDescription, getDescriptionText, getId, getLineNumber, getLocation, hasCustomIdAssigned, idOrCreate, setCamelContext, setCustomId, setDescription, setGeneratedId, setLineNumber, setLocation
-
-
-
-
Method Detail
-
getOutputs
public List<ProcessorDefinition<?>> getOutputs()
- Specified by:
getOutputs
in classProcessorDefinition<ChoiceDefinition>
-
addOutput
public void addOutput(ProcessorDefinition<?> output)
Description copied from interface:Block
Adds the given definition as output to this block- Specified by:
addOutput
in interfaceBlock
- Overrides:
addOutput
in classProcessorDefinition<ChoiceDefinition>
- Parameters:
output
- the processor definition
-
getPrecondition
public String getPrecondition()
-
setPrecondition
public void setPrecondition(String precondition)
Indicates whether this Choice EIP is in precondition mode or not. If so its branches (when/otherwise) are evaluated during startup to keep at runtime only the branch that matched.
-
end
public ProcessorDefinition<?> end()
Description copied from class:ProcessorDefinition
Ends the current block- Overrides:
end
in classProcessorDefinition<ChoiceDefinition>
- Returns:
- the builder
-
endChoice
public ChoiceDefinition endChoice()
Description copied from class:ProcessorDefinition
Ends the current block and returns back to thechoice()
DSL. Important: If you want to end the entire choice block, then useProcessorDefinition.end()
instead. The purpose ofProcessorDefinition.endChoice()
is to return control back to thechoice()
DSL, so you can add subsequent when and otherwise to the choice. There can be situations where you would need to useProcessorDefinition.endChoice()
often when you add additional EIPs inside the when's, and the DSLlooses scope when using a regularProcessorDefinition.end()
, and you would need to use thisProcessorDefinition.endChoice()
to return back the scope to thechoice()
DSL. For more details and examples see also this FAQ: Why can I not use when or otherwise in a Java Camel route .- Overrides:
endChoice
in classProcessorDefinition<ChoiceDefinition>
- Returns:
- the choice builder
-
precondition
public ChoiceDefinition precondition()
Indicates that this Choice EIP is in precondition mode, its branches (when/otherwise) are then evaluated during startup to keep at runtime only the branch that matched.- Returns:
- the builder
-
precondition
public ChoiceDefinition precondition(boolean precondition)
Indicates whether this Choice EIP is in precondition mode or not. If so its branches (when/otherwise) are evaluated during startup to keep at runtime only the branch that matched.- Parameters:
precondition
- the flag indicating if it is in precondition mode or not.- Returns:
- the builder
-
when
public ChoiceDefinition when(@AsPredicate org.apache.camel.Predicate predicate)
Sets the predicate for the when node- Parameters:
predicate
- the predicate- Returns:
- the builder
-
when
@AsPredicate public ExpressionClause<ChoiceDefinition> when()
Creates an expression for the when node- Returns:
- expression to be used as builder to configure the when node
-
otherwise
public ChoiceDefinition otherwise()
Sets the otherwise node- Returns:
- the builder
-
setId
public void setId(String id)
Description copied from class:OptionalIdentifiedDefinition
Sets the id of this node- Specified by:
setId
in interfaceorg.apache.camel.spi.IdAware
- Overrides:
setId
in classOptionalIdentifiedDefinition<ChoiceDefinition>
-
getShortName
public String getShortName()
- Specified by:
getShortName
in interfaceorg.apache.camel.NamedNode
-
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- Specified by:
getLabel
in interfaceorg.apache.camel.NamedNode
- Overrides:
getLabel
in classProcessorDefinition<ChoiceDefinition>
-
getWhenClauses
public List<WhenDefinition> getWhenClauses()
-
setWhenClauses
public void setWhenClauses(List<WhenDefinition> whenClauses)
Sets the when nodes
-
getOtherwise
public OtherwiseDefinition getOtherwise()
-
setOtherwise
public void setOtherwise(OtherwiseDefinition otherwise)
-
configureChild
public void configureChild(ProcessorDefinition<?> output)
Description copied from class:ProcessorDefinition
Strategy for children to do any custom configuration- Overrides:
configureChild
in classProcessorDefinition<ChoiceDefinition>
- Parameters:
output
- the child to be added as output to this
-
-