Class LoopDefinition

  • All Implemented Interfaces:
    org.apache.camel.CamelContextAware, org.apache.camel.LineNumberAware, Block, HasExpressionType, OutputNode, org.apache.camel.NamedNode, org.apache.camel.spi.HasId, org.apache.camel.spi.IdAware

    @Metadata(label="eip,routing")
    public class LoopDefinition
    extends OutputExpressionNode
    Processes a message multiple times
    • Constructor Detail

      • LoopDefinition

        public LoopDefinition()
      • LoopDefinition

        public LoopDefinition​(org.apache.camel.Expression expression)
      • LoopDefinition

        public LoopDefinition​(org.apache.camel.Predicate predicate)
    • Method Detail

      • copy

        public LoopDefinition copy()
        Enables copy mode so a copy of the input Exchange is used for each iteration.
      • getCopy

        public String getCopy()
      • getDoWhile

        public String getDoWhile()
      • setDoWhile

        public void setDoWhile​(String doWhile)
        Enables the while loop that loops until the predicate evaluates to false or null.
      • setCopy

        public void setCopy​(String copy)
        If the copy attribute is true, a copy of the input Exchange is used for each iteration. That means each iteration will start from a copy of the same message.

        By default loop will loop the same exchange all over, so each iteration may have different message content.

      • setBreakOnShutdown

        public void setBreakOnShutdown​(String breakOnShutdown)
        If the breakOnShutdown attribute is true, then the loop will not iterate until it reaches the end when Camel is shut down.
      • getBreakOnShutdown

        public String getBreakOnShutdown()
      • getShortName

        public String getShortName()
      • 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 interface org.apache.camel.NamedNode
        Overrides:
        getLabel in class ExpressionNode
      • setExpression

        public void setExpression​(ExpressionDefinition expression)
        Expression to define how many times we should loop. Notice the expression is only evaluated once, and should return a number as how many times to loop. A value of zero or negative means no looping. The loop is like a for-loop fashion, if you want a while loop, then the dynamic router may be a better choice.
        Overrides:
        setExpression in class ExpressionNode