Class: SPARQL::Algebra::Operator::Datatype
- Inherits:
-
Unary
- Object
- SPARQL::Algebra::Operator
- Unary
- SPARQL::Algebra::Operator::Datatype
- Includes:
- Evaluatable
- Defined in:
- lib/sparql/algebra/operator/datatype.rb
Overview
The SPARQL datatype operator.
Constant Summary
- NAME =
:datatype
Constants inherited from Unary
Constants inherited from SPARQL::Algebra::Operator
Instance Attribute Summary
Attributes inherited from SPARQL::Algebra::Operator
Instance Method Summary (collapse)
-
- (RDF::URI) apply(literal)
Returns the datatype IRI of the operand.
Methods included from Evaluatable
Methods inherited from Unary
Methods inherited from SPARQL::Algebra::Operator
arity, base_uri, #base_uri, base_uri=, #boolean, #constant?, #eql?, #evaluatable?, evaluate, #executable?, for, #initialize, #inspect, #operand, #optimize, prefixes, #prefixes, prefixes=, #to_sse, #to_sxp, #variable?
Methods included from Expression
cast, #constant?, #evaluate, for, new, open, #optimize, parse, #to_sse, #variable?
Constructor Details
This class inherits a constructor from SPARQL::Algebra::Operator::Unary
Instance Method Details
- (RDF::URI) apply(literal)
Returns the datatype IRI of the operand.
If the operand is a simple literal, returns a datatype of
xsd:string.
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/sparql/algebra/operator/datatype.rb', line 30 def apply(literal) case literal when RDF::Literal then case when literal.typed? then RDF::URI(literal.datatype) when literal.simple? then RDF::XSD.string else raise TypeError, "expected a typed or simple RDF::Literal, but got #{literal.inspect}" end else raise TypeError, "expected an RDF::Literal, but got #{literal.inspect}" end end |