Class LogicNode

  • All Implemented Interfaces:
    ExpressionNode

    public class LogicNode
    extends java.lang.Object
    implements ExpressionNode
    This class defines a logical expression of nodes. This implementation uses a stack to evaluate its content as to avoid deep recursions when building the parse tree.
    Author:
    Simon Thoresen Hult
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  LogicNode.NodeItem
      Private class to store expression nodes in a stack.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static int AND  
      static int NOP  
      static int OR  
    • Constructor Summary

      Constructors 
      Constructor Description
      LogicNode()
      Construct an empty logic expression.
    • Constructor Detail

      • LogicNode

        public LogicNode()
        Construct an empty logic expression.
    • Method Detail

      • add

        public LogicNode add​(java.lang.String operator,
                             ExpressionNode node)
        Adds an (operator, node) pair to this expression.
        Parameters:
        operator - The operator that combines the previous with the node given.
        node - The node to add to this.
        Returns:
        This, to allow chaining.
      • evaluate

        public java.lang.Object evaluate​(Context context)
        Description copied from interface: ExpressionNode
        Evaluate the content of this node based on document object, and return that value.
        Specified by:
        evaluate in interface ExpressionNode
        Parameters:
        context - the document to evaluate over.
        Returns:
        the value of this.
      • accept

        public void accept​(Visitor visitor)
        Description copied from interface: ExpressionNode
        Perform visitation of this node.
        Specified by:
        accept in interface ExpressionNode
        Parameters:
        visitor - the visitor that wishes to visit the node.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object