Package com.stardog.stark.io.datatypes
Class XMLSchemaDatatypeHandler
java.lang.Object
com.stardog.stark.io.datatypes.XMLSchemaDatatypeHandler
- All Implemented Interfaces:
DatatypeHandler
An implementation of a datatype handler that can process
XSD datatypes.
Implemented using XMLDatatypes.
- Since:
- 1.0
- Version:
- 1.0
- Author:
- Peter Ansell, Michael Grove
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanisRecognizedDatatype(IRI datatypeUri) Checks if the given datatypeIRIis recognized by this `DatatypeHandler`.key()A unique key for this datatype handler to identify it in thenormalizeDatatype(String theValue, Datatype theDatatype) Normalize both the datatype and the literal value if appropriate, and generate a literal with the provided value and datatype.booleanverifyDatatype(String theValue, Datatype theDatatype) Verifies that the datatype is valid, including a check on the structure of the literal value.
-
Constructor Details
-
XMLSchemaDatatypeHandler
public XMLSchemaDatatypeHandler()Default constructor.
-
-
Method Details
-
isRecognizedDatatype
Checks if the given datatypeIRIis recognized by this `DatatypeHandler`.- Specified by:
isRecognizedDatatypein interfaceDatatypeHandler- Parameters:
datatypeUri- The datatype URI to check.- Returns:
- `true` if the datatype is syntactically valid and could be used with
DatatypeHandler.verifyDatatype(String, Datatype)andDatatypeHandler.normalizeDatatype(String, Datatype).
-
verifyDatatype
Verifies that the datatype is valid, including a check on the structure of the literal value.This method must only be called after verifying that
DatatypeHandler.isRecognizedDatatype(IRI)returns true for the given datatype URI.- Specified by:
verifyDatatypein interfaceDatatypeHandler- Parameters:
theValue- Literal value matching the given datatype URI.theDatatype- A datatype that matched withDatatypeHandler.isRecognizedDatatype(IRI)- Returns:
- True if the datatype URI is recognized by this datatype handler,
and it is verified to be syntactically valid. An implementation may throw
InvalidLiteralexception if the datatype is not recognized
-
normalizeDatatype
@Nonnull public Literal normalizeDatatype(@Nonnull String theValue, @Nonnull Datatype theDatatype) throws InvalidLiteral Normalize both the datatype and the literal value if appropriate, and generate a literal with the provided value and datatype. This method must only be called after verifying thatDatatypeHandler.isRecognizedDatatype(IRI)returns true for the given datatype URI, andDatatypeHandler.verifyDatatype(String, Datatype)also returns true for the given datatype and literal value.- Specified by:
normalizeDatatypein interfaceDatatypeHandler- Parameters:
theValue- Required literal value to use in the normalization process and to provide the value for the resulting literal.theDatatype- The datatype which is to be normalized. It is available in normalized form from the result usingLiteral.datatype().- Returns:
- A
Literalcontaining the normalized literal value and datatype URI. An implementation may throwInvalidLiteralexception if the datatype is not recognized or cannot be normalized for any reason, e.g. its value is not legal for its datatype. - Throws:
InvalidLiteral
-
key
A unique key for this datatype handler to identify it in the- Specified by:
keyin interfaceDatatypeHandler- Returns:
- A unique string key.
-