Package com.blackrook.expression.node
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 Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ExpressionBranch
create(ExpressionNode[] successBlock)
Creates a new expression branch - always succeed, one success block.static ExpressionBranch
create(ExpressionNode[] conditional, ExpressionNode[] successBlock)
Creates a new expression branch, no failure block.static ExpressionBranch
create(ExpressionNode[] conditional, ExpressionNode[] successBlock, ExpressionNode[] failureBlock)
Creates a new expression branch, no failure block.boolean
execute(ExpressionStack stack, ExpressionVariableContext context)
Executes this node.boolean
isCollapsable()
Checks if this node is collapsable.String
toString()
void
writeBytes(OutputStream out)
Write value as bytes (for digest later).
-
-
-
Method Detail
-
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 interfaceExpressionNode
- 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 interfaceExpressionNode
- 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 interfaceExpressionNode
- Parameters:
out
- the output stream.- Throws:
IOException
- on a write error.
-
-