Class LoopDefinition

All Implemented Interfaces:
org.apache.camel.CamelContextAware, org.apache.camel.LineNumberAware, Block, HasExpressionType, OutputNode, org.apache.camel.NamedNode, org.apache.camel.spi.HasCamelContext, 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 Details

    • LoopDefinition

      public LoopDefinition()
    • LoopDefinition

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

      public LoopDefinition(org.apache.camel.Predicate predicate)
    • LoopDefinition

      public LoopDefinition(ExpressionDefinition expression)
  • Method Details

    • 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.

    • breakOnShutdown

      public LoopDefinition breakOnShutdown()
    • 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()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • 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