Class ExprVar

java.lang.Object
org.apache.jena.sparql.expr.ExprNode
org.apache.jena.sparql.expr.ExprVar
All Implemented Interfaces:
Expr

public class ExprVar extends ExprNode
An expression that is a variable in an expression.
  • Constructor Details

    • ExprVar

      public ExprVar(String name)
    • ExprVar

      public ExprVar(org.apache.jena.graph.Node n)
    • ExprVar

      public ExprVar(Var v)
  • Method Details

    • eval

      public NodeValue eval(Binding binding, FunctionEnv env)
      Description copied from interface: Expr
      Evaluate this expression against the binding
      Specified by:
      eval in interface Expr
      Specified by:
      eval in class ExprNode
    • 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 transform)
      Description copied from interface: Expr
      Rewrite, applying a node->node transformation
      Specified by:
      applyNodeTransform in interface Expr
      Specified by:
      applyNodeTransform in class ExprNode
    • copy

      public Expr copy(Var v)
    • visit

      public void visit(ExprVisitor visitor)
    • apply

      public Expr apply(ExprTransform transform)
    • format

      public void format(Query query, org.apache.jena.atlas.io.IndentedWriter out)
    • 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
      Specified by:
      hashCode in class ExprNode
    • 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
      Specified by:
      equals in class ExprNode
    • isVariable

      public boolean isVariable()
      Description copied from interface: Expr
      Answer whether this is a variable.
      Specified by:
      isVariable in interface Expr
      Overrides:
      isVariable in class ExprNode
    • getVarName

      public String getVarName()
      Description copied from interface: Expr
      Variable name (returns null if not a variable)
      Specified by:
      getVarName in interface Expr
      Overrides:
      getVarName in class ExprNode
      Returns:
      Returns the name.
    • getExprVar

      public ExprVar getExprVar()
      Description copied from interface: Expr
      Variable (or null)
      Specified by:
      getExprVar in interface Expr
      Overrides:
      getExprVar in class ExprNode
    • asVar

      public Var asVar()
      Description copied from interface: Expr
      Convert to a Var variable.
      Specified by:
      asVar in interface Expr
      Overrides:
      asVar in class ExprNode
    • getAsNode

      public org.apache.jena.graph.Node getAsNode()
    • toPrefixString

      public String toPrefixString()
    • asSparqlExpr

      public String asSparqlExpr()
    • toString

      public String toString()
      Overrides:
      toString in class ExprNode