java.lang.Object
org.eclipse.rdf4j.query.algebra.evaluation.function.xsd.CastFunction
All Implemented Interfaces:
Function
Direct Known Subclasses:
BooleanCast, DateCast, DateTimeCast, DecimalCast, DoubleCast, FloatCast, IntegerCastFunction, StringCast

public abstract class CastFunction extends Object implements Function
Abstract superclass for Functions that cast an argument to an XML Schema datatype.
Author:
Jeen Broekstra
See Also:
  • Constructor Details

    • CastFunction

      public CastFunction()
  • Method Details

    • getURI

      public final String getURI()
      Specified by:
      getURI in interface Function
    • evaluate

      public Literal evaluate(ValueFactory valueFactory, Value... args) throws ValueExprEvaluationException
      Description copied from interface: Function
      Evaluate the function over the supplied input arguments, using the supplied ValueFactory to produce the result.
      Specified by:
      evaluate in interface Function
      Parameters:
      valueFactory - a ValueFactory to use for producing the function result.
      args - the function input arguments.
      Returns:
      the function result value.
      Throws:
      ValueExprEvaluationException
    • convert

      protected abstract Literal convert(ValueFactory vf, Value v) throws ValueExprEvaluationException
      Convert the supplied value to a literal of the function output datatype.
      Parameters:
      vf - the valueFactory to use
      v - a value that is not a string-typed literal, and not a literal of the same datatype as the function output datatype.
      Returns:
      a literal value of the function output datatype
      Throws:
      ValueExprEvaluationException - if an error occurs in conversion.
    • getXsdDatatype

      protected abstract IRI getXsdDatatype()
      Get the specific XML Schema datatype which this function returns.
      Returns:
      an XML Schema datatype IRI
    • getXsdName

      protected String getXsdName()
      Returns a prefixed name representation of the specific datatype that this function returns
      Returns:
      a prefixed name, e.g. 'xsd:integer'.
    • isValidForDatatype

      protected abstract boolean isValidForDatatype(String lexicalValue)
      Verifies that the supplied lexical value is valid for the datatype.
      Parameters:
      lexicalValue - a lexical value
      Returns:
      true if the lexical value is valid for the datatype, false otherwise.
    • typeError

      protected final ValueExprEvaluationException typeError(Value arg, Throwable cause)
      Creates a ValueExprEvaluationException that signals a type error.
      Parameters:
      arg - the function argument value.
      cause - root cause throwable. May be null.
      Returns:
      a ValueExprEvaluationException with a standardized message and wrapped cause.