Class E_Exists

All Implemented Interfaces:
Expr

public class E_Exists extends ExprFunctionOp
  • Constructor Details

    • E_Exists

      public E_Exists(Op op)
    • E_Exists

      public E_Exists(Element elt)
    • E_Exists

      public E_Exists(Element el, Op op)
  • Method Details

    • copySubstitute

      public Expr copySubstitute(Binding binding)
      Description copied from interface: Expr
      Deep copy with substitution
      Specified by:
      copySubstitute in interface Expr
      Specified by:
      copySubstitute in class ExprNode
    • applyNodeTransform

      public Expr applyNodeTransform(NodeTransform nodeTransform)
      Description copied from interface: Expr
      Rewrite, applying a node->node transformation
      Specified by:
      applyNodeTransform in interface Expr
      Specified by:
      applyNodeTransform in class ExprNode
    • hashCode

      public int hashCode()
      Description copied from interface: Expr
      Expr are used in both syntax and algebra. There is no syntax to algebra translation step because the parser uses operator precedence to build the right evaluation structure directly.

      The exceptions to this are the NOT EXISTS and EXISTS expressions which involve a query pattern. As a result there are different ways in syntax to produce the same algebra form.

      Two Expr are considered equal if they are equal as algebra expressions. hashCode and equals must implement that.

      There is also equalsBySyntax. Because two different syntax forms can yield the same algebra, but two different algebra forms must be different syntax, equalsBySyntax implies equals (by algebra).

      Hence, different hashCode => not equalsBySyntax.

      Specified by:
      hashCode in interface Expr
      Overrides:
      hashCode in class ExprFunction
    • equals

      public boolean equals(Expr other, boolean bySyntax)
      Description copied from interface: Expr
      General equality operation - consider this to be 'protected'
      Specified by:
      equals in interface Expr
      Overrides:
      equals in class ExprFunction
    • copy

      public ExprFunctionOp copy(ExprList args, Op x)
      Specified by:
      copy in class ExprFunctionOp
    • copy

      public ExprFunctionOp copy(ExprList args, Element elPattern)
      Specified by:
      copy in class ExprFunctionOp