Class ExpressionBranch

java.lang.Object
com.blackrook.expression.node.ExpressionBranch
All Implemented Interfaces:
ExpressionNode

public class ExpressionBranch extends Object implements ExpressionNode
Expression branch.
Author:
Matthew Tropiano
  • Method Details

    • create

      public static ExpressionBranch create(ExpressionNode[] successBlock)
      Creates a new expression branch - always succeed, one success block.
      Parameters:
      successBlock - the block to use on conditional success.
      Returns:
      a new expression branch node.
    • create

      public static ExpressionBranch create(ExpressionNode[] conditional, ExpressionNode[] successBlock)
      Creates a new expression branch, no failure block.
      Parameters:
      conditional - the conditional block. Must end in a directive that leaves a value on the stack.
      successBlock - the block to use on conditional success.
      Returns:
      a new expression branch node.
    • create

      public static ExpressionBranch create(ExpressionNode[] conditional, ExpressionNode[] successBlock, ExpressionNode[] failureBlock)
      Creates a new expression branch, no failure block.
      Parameters:
      conditional - the conditional block. Must end in a directive that leaves a value on the stack.
      successBlock - the block to use on conditional success.
      failureBlock - the block to use on conditional failure.
      Returns:
      a new expression branch node.
    • isCollapsable

      public boolean isCollapsable()
      Description copied from interface: ExpressionNode
      Checks if this node is collapsable.
      Specified by:
      isCollapsable in interface ExpressionNode
      Returns:
      true if so, false if not.
    • execute

      public boolean execute(ExpressionStack stack, ExpressionVariableContext context)
      Description copied from interface: ExpressionNode
      Executes this node.
      Specified by:
      execute in interface ExpressionNode
      Parameters:
      stack - the stack to use.
      context - the context for added variables.
      Returns:
      if false, stop expression calculation, else if true, continue.
    • writeBytes

      public void writeBytes(OutputStream out) throws IOException
      Description copied from interface: ExpressionNode
      Write value as bytes (for digest later).
      Specified by:
      writeBytes in interface ExpressionNode
      Parameters:
      out - the output stream.
      Throws:
      IOException - on a write error.
    • toString

      public String toString()
      Overrides:
      toString in class Object