Class E_Function

All Implemented Interfaces:
Expr

public class E_Function extends ExprFunctionN
SPARQL filter function
  • Field Details

    • WarnOnUnknownFunction

      public static boolean WarnOnUnknownFunction
  • Constructor Details

  • Method Details

    • getFunctionIRI

      public String getFunctionIRI()
      Description copied from class: ExprFunction
      URI for this function, whether custom or specification defined URI (these are keywords in the language)
      Overrides:
      getFunctionIRI in class ExprFunction
    • evalSpecial

      public NodeValue evalSpecial(Binding binding, FunctionEnv env)
    • eval

      public NodeValue eval(List<NodeValue> args)
      Specified by:
      eval in class ExprFunctionN
    • buildFunction

      public void buildFunction(Context cxt)
    • getFunctionPrintName

      public String getFunctionPrintName(SerializationContext cxt)
      Description copied from class: ExprFunction
      Name used for output in SPARQL format needing functional syntax: name(arg1, arg2, ...) e.g. regexp(), custom functions, ...
      Overrides:
      getFunctionPrintName in class ExprFunction
    • getFunctionName

      public String getFunctionName(SerializationContext cxt)
      Description copied from class: ExprFunction
      Name used in the SPARQL algebra. See also ExprFunction.getOpName() for an operator form.
      Overrides:
      getFunctionName in class ExprFunction
    • copy

      public Expr copy(ExprList newArgs)
      Specified by:
      copy in class ExprFunctionN
    • 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
    • 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