Package org.eclipse.rdf4j.query.algebra.evaluation.function

## Interface Function

- All Known Subinterfaces:
    `TransientFunction`
  All Known Implementing Classes:
    `Abs`, `Add`, `And`, `AskFunction`, `BinaryFunction`, `BooleanCast`, `BooleanCast`, `Boundary`, `Buffer`, `BuildString`, `BuildURI`, `ByteCast`, `Cast`, `CastFunction`, `Ceil`, `Concat`, `Concat`, `Contains`, `ConvertSpinRDFToString`, `ConvexHull`, `CurrentTimeMillis`, `DateFormat`, `DateTimeCast`, `DateTimeCast`, `Day`, `DecimalCast`, `DecimalCast`, `DecimalFormat`, `DecodeURL`, `Difference`, `Distance`, `Divide`, `DoubleCast`, `DoubleCast`, `EhContains`, `EhCoveredBy`, `EhCovers`, `EhDisjoint`, `EhEquals`, `EhInside`, `EhMeet`, `EhOverlap`, `EncodeForUri`, `EncodeURL`, `Envelope`, `EqualTo`, `EvalFunction`, `ExistingPalindromeFunction`, `FloatCast`, `FloatCast`, `Floor`, `GenerateUUID`, `GreaterThan`, `GreaterThanOrEqualTo`, `HasAllObjects`, `HashFunction`, `Hours`, `IndexOf`, `IntCast`, `IntegerCast`, `IntegerCast`, `IntegerCastFunction`, `Intersection`, `Invoke`, `IsTripleFunction`, `IsValidURI`, `LastIndexOf`, `LessThan`, `LessThanOrEqualTo`, `Localname`, `LongCast`, `LowerCase`, `LowerCase`, `LowerTitleCase`, `MD5`, `Minutes`, `Mod`, `Month`, `Multiply`, `Name`, `NegativeIntegerCast`, `NonNegativeIntegerCast`, `NonPositiveIntegerCast`, `Not`, `NotEqualTo`, `Now`, `ObjectFunction`, `Or`, `PalindromeFunction`, `ParseDate`, `PositiveIntegerCast`, `Rand`, `Random`, `RCC8DC`, `RCC8EC`, `RCC8EQ`, `RCC8NTPP`, `RCC8NTPPI`, `RCC8PO`, `RCC8TPP`, `RCC8TPPI`, `Relate`, `Replace`, `ReplaceAll`, `Round`, `Seconds`, `SfContains`, `SfCrosses`, `SfDisjoint`, `SfEquals`, `SfIntersects`, `SfOverlaps`, `SfTouches`, `SfWithin`, `SHA1`, `SHA256`, `SHA384`, `SHA512`, `ShortCast`, `SpinFunction`, `SpinxFunction`, `SRID`, `StatementFunction`, `StrAfter`, `StrBefore`, `StrDt`, `StrEnds`, `StringCast`, `StringCast`, `StrLang`, `StrLen`, `StrStarts`, `STRUUID`, `Substring`, `Subtract`, `SymmetricDifference`, `TimeMillis`, `Timezone`, `TitleCase`, `Trim`, `TripleObjectFunction`, `TriplePredicateFunction`, `TripleSubjectFunction`, `Tz`, `UnaryFunction`, `UnCamelCase`, `Union`, `UnsignedByteCast`, `UnsignedIntCast`, `UnsignedLongCast`, `UnsignedShortCast`, `UpperCase`, `UpperCase`, `UUID`, `Year`

      public interface Function

  A query function, which can be a built-in function in the query language, or a custom function as documented in the SPARQL 1.1 Query Language Recommendation.
  Author:
    Arjohn Kampman, Jeen Broekstra
  See Also:
    `FunctionRegistry`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Value` | `evaluate​(ValueFactory valueFactory, Value... args)` | Deprecated. since 3.3.0.
    `default Value` | `evaluate​(TripleSource tripleSource, Value... args)` | Evaluate the function over the supplied input arguments.
    `String` | `getURI()` |
    `default boolean` | `mustReturnDifferentResult()` | UUID() and STRUUID() must return a different result for each invocation.

- - ### Method Detail

    - #### getURI

          String getURI()

    - #### evaluate

          @Deprecated
          Value evaluate​(ValueFactory valueFactory,
                         Value... args)
                  throws ValueExprEvaluationException

      Deprecated.
      since 3.3.0. Use `evaluate(TripleSource, Value...)` instead. A reference to a ValueFactory can be retrieved using `TripleSource.getValueFactory()` if needed.
      Evaluate the function over the supplied input arguments, using the supplied `ValueFactory` to produce the result.
      Parameters:
        `valueFactory` - a `ValueFactory` to use for producing the function result.
        `args` - the function input arguments.
      Returns:
        the function result value.
      Throws:
        `ValueExprEvaluationException`

    - #### evaluate

          default Value evaluate​(TripleSource tripleSource,
                                 Value... args)
                          throws ValueExprEvaluationException

      Evaluate the function over the supplied input arguments.
      Parameters:
        `tripleSource` - the `TripleSource` used in the query evaluation. This can be used to access the current state of the store.
        `args` - the function input arguments.
      Returns:
        the function result value.
      Throws:
        `ValueExprEvaluationException`
      Since:
        3.3.0

    - #### mustReturnDifferentResult

          default boolean mustReturnDifferentResult()

      UUID() and STRUUID() must return a different result for each invocation.
      Returns:
        if each invocation must return a different result.