public class E_Exists extends ExprFunctionOp
CMP_EQUAL, CMP_GREATER, CMP_INDETERMINATE, CMP_LESS, CMP_UNEQUAL, NONE
Constructor and Description |
---|
E_Exists(Element elt) |
E_Exists(Element el,
Op op) |
E_Exists(Op op) |
Modifier and Type | Method and Description |
---|---|
Expr |
applyNodeTransform(NodeTransform nodeTransform)
Rewrite, applying a node->node transformation
|
ExprFunctionOp |
copy(ExprList args,
Element elPattern) |
ExprFunctionOp |
copy(ExprList args,
Op x) |
Expr |
copySubstitute(Binding binding)
Deep copy with substitution
|
boolean |
equals(Expr other,
boolean bySyntax)
General equality operation - consider this to be 'protected'
|
int |
hashCode()
Expr are used in both syntax and algebra. |
apply, eval, getArg, getElement, getGraphPattern, isGraphPattern, numArgs, visit
getArgs, getFunction, getFunctionIRI, getFunctionName, getFunctionPrintName, getFunctionSymbol, getOpName, isFunction
asVar, deepCopy, equals, equalsBySyntax, getConstant, getExpr, getExprVar, getVarName, getVarNamesMentioned, getVarsMentioned, isConstant, isExpr, isSatisfied, isVariable, toString, varNamesMentioned, varsMentioned
public Expr copySubstitute(Binding binding)
Expr
copySubstitute
in interface Expr
copySubstitute
in class ExprNode
public Expr applyNodeTransform(NodeTransform nodeTransform)
Expr
applyNodeTransform
in interface Expr
applyNodeTransform
in class ExprNode
public int hashCode()
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 alegbra).
Hence, different hashCode
=> not equalsBySyntax
.
hashCode
in interface Expr
hashCode
in class ExprFunction
public boolean equals(Expr other, boolean bySyntax)
Expr
equals
in interface Expr
equals
in class ExprFunction
public ExprFunctionOp copy(ExprList args, Op x)
copy
in class ExprFunctionOp
public ExprFunctionOp copy(ExprList args, Element elPattern)
copy
in class ExprFunctionOp
Licenced under the Apache License, Version 2.0