com.hp.hpl.jena.datatypes
Interface RDFDatatype

All Known Implementing Classes:
BaseDatatype, Functor.FunctorDatatype, XSDbase64Binary, XSDDatatype, XSDhexBinary

public interface RDFDatatype

Interface on a datatype representation. An instance of this interface is needed to convert typed literals between lexical and value forms.

Version:
$Revision: 1.9 $ on $Date: 2005/08/03 13:01:14 $
Author:
Dave Reynolds

Method Summary
 java.lang.Object cannonicalise(java.lang.Object value)
          Cannonicalise a java Object value to a normal form.
 java.lang.Object extendedTypeDefinition()
          Returns an object giving more details on the datatype.
 java.lang.Class getJavaClass()
          If this datatype is used as the cannonical representation for a particular java datatype then return that java type, otherwise returns null.
 RDFDatatype getNarrowedDatatype(java.lang.Object value)
          Return a minimal datatype for this object.
 java.lang.String getURI()
          Return the URI which is the label for this datatype
 boolean isEqual(com.hp.hpl.jena.graph.impl.LiteralLabel value1, com.hp.hpl.jena.graph.impl.LiteralLabel value2)
          Compares two instances of values of the given datatype.
 boolean isValid(java.lang.String lexicalForm)
          Test whether the given string is a legal lexical form of this datatype.
 boolean isValidLiteral(com.hp.hpl.jena.graph.impl.LiteralLabel lit)
          Test whether the given LiteralLabel is a valid instance of this datatype.
 boolean isValidValue(java.lang.Object valueForm)
          Test whether the given object is a legal value form of this datatype.
 java.lang.Object parse(java.lang.String lexicalForm)
          Parse a lexical form of this datatype to a value
 java.lang.String unparse(java.lang.Object value)
          Convert a value of this datatype out to lexical form.
 

Method Detail

getURI

java.lang.String getURI()
Return the URI which is the label for this datatype


unparse

java.lang.String unparse(java.lang.Object value)
Convert a value of this datatype out to lexical form.


parse

java.lang.Object parse(java.lang.String lexicalForm)
                       throws DatatypeFormatException
Parse a lexical form of this datatype to a value

Throws:
DatatypeFormatException - if the lexical form is not legal

isValid

boolean isValid(java.lang.String lexicalForm)
Test whether the given string is a legal lexical form of this datatype.


isValidValue

boolean isValidValue(java.lang.Object valueForm)
Test whether the given object is a legal value form of this datatype.


isValidLiteral

boolean isValidLiteral(com.hp.hpl.jena.graph.impl.LiteralLabel lit)
Test whether the given LiteralLabel is a valid instance of this datatype. This takes into account typing information as well as lexical form - for example an xsd:string is never considered valid as an xsd:integer (even if it is lexically legal like "1").


isEqual

boolean isEqual(com.hp.hpl.jena.graph.impl.LiteralLabel value1,
                com.hp.hpl.jena.graph.impl.LiteralLabel value2)
Compares two instances of values of the given datatype. This defaults to just testing equality of the java value representation but datatypes can override this. We pass the entire LiteralLabel to allow the equality function to take the xml:lang tag and the datatype itself into account.


getJavaClass

java.lang.Class getJavaClass()
If this datatype is used as the cannonical representation for a particular java datatype then return that java type, otherwise returns null.


cannonicalise

java.lang.Object cannonicalise(java.lang.Object value)
Cannonicalise a java Object value to a normal form. Primarily used in cases such as xsd:integer to reduce the Java object representation to the narrowest of the Number subclasses to ensure that indexing of typed literals works.


extendedTypeDefinition

java.lang.Object extendedTypeDefinition()
Returns an object giving more details on the datatype. This is type system dependent. In the case of XSD types this will be an instance of org.apache.xerces.impl.xs.dv.XSSimpleType.


getNarrowedDatatype

RDFDatatype getNarrowedDatatype(java.lang.Object value)
Return a minimal datatype for this object. Used to handle cases where a single java object can represent multiple specific types and where we want narrow the type used. For example, a BigDecimal may narrow to a simple xsd:int. Currently only used to narrow gener XSDDateTime objects to the minimal XSD date/time type.



Copyright © 2000, 2001, 2002, 2003, 2004, 2005 Hewlett-Packard Development Company, LP