Class CastFunction
- java.lang.Object
-
- org.eclipse.rdf4j.query.algebra.evaluation.function.xsd.CastFunction
-
- All Implemented Interfaces:
Function
- Direct Known Subclasses:
BooleanCast
,DateTimeCast
,DecimalCast
,DoubleCast
,FloatCast
,IntegerCastFunction
,StringCast
public abstract class CastFunction extends Object implements Function
Abstract superclass forFunction
s that cast an argument to an XML Schema datatype.- Author:
- Jeen Broekstra
- See Also:
XSD
-
-
Constructor Summary
Constructors Constructor Description CastFunction()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract Literal
convert(ValueFactory vf, Value v)
Convert the supplied value to a literal of the function output datatype.Literal
evaluate(ValueFactory valueFactory, Value... args)
Evaluate the function over the supplied input arguments, using the suppliedValueFactory
to produce the result.String
getURI()
protected abstract IRI
getXsdDatatype()
Get the specific XML Schema datatype which this function returns.protected String
getXsdName()
Returns a prefixed name representation of the specific datatype that this function returnsprotected abstract boolean
isValidForDatatype(String lexicalValue)
Verifies that the supplied lexical value is valid for the datatype.protected ValueExprEvaluationException
typeError(Value arg, Throwable cause)
Creates aValueExprEvaluationException
that signals a type error.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.rdf4j.query.algebra.evaluation.function.Function
evaluate, mustReturnDifferentResult
-
-
-
-
Method Detail
-
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 suppliedValueFactory
to produce the result.- Specified by:
evaluate
in interfaceFunction
- Parameters:
valueFactory
- aValueFactory
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 usev
- 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 aValueExprEvaluationException
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.
-
-