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 ExpressionBranchcreate(ExpressionNode[] successBlock)Creates a new expression branch - always succeed, one success block.static ExpressionBranchcreate(ExpressionNode[] conditional, ExpressionNode[] successBlock)Creates a new expression branch, no failure block.static ExpressionBranchcreate(ExpressionNode[] conditional, ExpressionNode[] successBlock, ExpressionNode[] failureBlock)Creates a new expression branch, no failure block.booleanexecute(ExpressionStack stack, ExpressionVariableContext context)Executes this node.booleanisCollapsable()Checks if this node is collapsable.StringtoString()voidwriteBytes(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:ExpressionNodeChecks if this node is collapsable.- Specified by:
isCollapsablein interfaceExpressionNode- Returns:
- true if so, false if not.
-
execute
public boolean execute(ExpressionStack stack, ExpressionVariableContext context)
Description copied from interface:ExpressionNodeExecutes this node.- Specified by:
executein 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:ExpressionNodeWrite value as bytes (for digest later).- Specified by:
writeBytesin interfaceExpressionNode- Parameters:
out- the output stream.- Throws:
IOException- on a write error.
-
-