Class ForEachExpression

java.lang.Object
com.strobel.expressions.Expression
com.strobel.expressions.ForEachExpression

public final class ForEachExpression extends Expression
  • Field Details

  • Constructor Details

  • Method Details

    • getVariable

      public ParameterExpression getVariable()
    • getSequence

      public Expression getSequence()
    • getBody

      public Expression getBody()
    • getBreakTarget

      public LabelTarget getBreakTarget()
    • getContinueTarget

      public LabelTarget getContinueTarget()
    • getNodeType

      public ExpressionType getNodeType()
      Description copied from class: Expression
      Returns the node type of this Expression.
      Overrides:
      getNodeType in class Expression
      Returns:
      the ExpressionType that represents this expression.
    • getType

      public Type<?> getType()
      Description copied from class: Expression
      Gets the static type of the expression that this Expression represents.
      Overrides:
      getType in class Expression
      Returns:
      the Type that represents the static type of the expression.
    • canReduce

      public boolean canReduce()
      Description copied from class: Expression
      Indicates that the node can be reduced to a simpler node. If this returns true, reduce() can be called to produce the reduced form.
      Overrides:
      canReduce in class Expression
      Returns:
      true if the node can be reduced; otherwise, false.
    • update

      public ForEachExpression update(ParameterExpression variable, Expression sequence, Expression body, LabelTarget breakTarget, LabelTarget continueTarget)
    • accept

      protected Expression accept(ExpressionVisitor visitor)
      Description copied from class: Expression
      Dispatches to the specific visit method for this node type. For example, BinaryExpression will call into ExpressionVisitor.visitBinary().
      Overrides:
      accept in class Expression
      Parameters:
      visitor - the visitor to visit this node.
      Returns:
      the result of visiting this node.
    • visitChildren

      protected Expression visitChildren(ExpressionVisitor visitor)
      Description copied from class: Expression
      Reduces the node and then calls the visitor on the reduced expression. Throws an exception if the node isn't reducible.
      Overrides:
      visitChildren in class Expression
      Parameters:
      visitor - an expression visitor
      Returns:
      the expression being visited, or an expression which should replace it in the tree.
    • reduce

      public Expression reduce()
      Description copied from class: Expression
      Reduces this node to a simpler expression. If canReduce() returns true, this should return a valid expression. This method is allowed to return another node which itself must be reduced.
      Overrides:
      reduce in class Expression
      Returns:
      the reduced expression.
    • reduceForArray

      private Expression reduceForArray()
    • reduceForIterable

      private Expression reduceForIterable()
    • tryGetGenericEnumerableArgument

      private Type<?> tryGetGenericEnumerableArgument()