Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.hp.hpl.jena.datatypes
Class BaseDatatype

    java.lang.Object
      com.hp.hpl.jena.datatypes.BaseDatatype

All Implemented Interfaces:
  RDFDatatype

Direct Known Subclasses:
  Functor.FunctorDatatype, XSDDatatype

    public class BaseDatatype

extends java.lang.Object
implements RDFDatatype

Base level implementation of datatype from which real implementations can inherit.

Version:
  $Revision: 1.16 $ on $Date: 2008/01/02 12:10:24 $
Author:
  Dave Reynolds

Nested Class Summary
`static class` | `BaseDatatype.TypedValue` Pair object used to encode both lexical form and datatype for a typed literal with unknown datatype.

Constructor Summary
`BaseDatatype(java.lang.String uri)` Constructor.

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.
`int` | `getHashCode(com.hp.hpl.jena.graph.impl.LiteralLabel lit)` Default implementation of getHashCode() delegates to the default from the literal label.
`java.lang.Class` | `getJavaClass()` Returns the java class which is used to represent value instances of this datatype.
`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.
`boolean` | `langTagCompatible(com.hp.hpl.jena.graph.impl.LiteralLabel value1, com.hp.hpl.jena.graph.impl.LiteralLabel value2)` Helper function to compare language tag values
`RDFDatatype` | `normalizeSubType(java.lang.Object value, RDFDatatype dt)` Normalization.
`java.lang.Object` | `parse(java.lang.String lexicalForm)` Parse a lexical form of this datatype to a value
`java.lang.String` | `toString()` Display format
`java.lang.String` | `unparse(java.lang.Object value)` Convert a value of this datatype out to lexical form.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### BaseDatatype

    public BaseDatatype(java.lang.String uri)

  Constructor.

  Parameters:
    `uri` - the URI label to use for this datatype

Method Detail

### getURI

    public java.lang.String getURI()

  Return the URI which is the label for this datatype

  Specified by:
    `getURI` in interface `RDFDatatype`

### unparse

    public java.lang.String unparse(java.lang.Object value)

  Convert a value of this datatype out to lexical form.

  Specified by:
    `unparse` in interface `RDFDatatype`

### parse

    public java.lang.Object parse(java.lang.String lexicalForm)
                           throws DatatypeFormatException

  Parse a lexical form of this datatype to a value

  Specified by:
    `parse` in interface `RDFDatatype`
  Throws:
    `DatatypeFormatException` - if the lexical form is not legal

### isValid

    public boolean isValid(java.lang.String lexicalForm)

  Test whether the given string is a legal lexical form of this datatype.

  Specified by:
    `isValid` in interface `RDFDatatype`

### isValidLiteral

    public 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 accound 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").

  Specified by:
    `isValidLiteral` in interface `RDFDatatype`

### isValidValue

    public boolean isValidValue(java.lang.Object valueForm)

  Test whether the given object is a legal value form of this datatype.

  Specified by:
    `isValidValue` in interface `RDFDatatype`

### isEqual

    public 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 default requires value and datatype equality.

  Specified by:
    `isEqual` in interface `RDFDatatype`

### getHashCode

    public int getHashCode(com.hp.hpl.jena.graph.impl.LiteralLabel lit)

  Default implementation of getHashCode() delegates to the default from the literal label.

  Specified by:
    `getHashCode` in interface `RDFDatatype`

### langTagCompatible

    public boolean langTagCompatible(com.hp.hpl.jena.graph.impl.LiteralLabel value1,
                                     com.hp.hpl.jena.graph.impl.LiteralLabel value2)

  Helper function to compare language tag values

### getJavaClass

    public java.lang.Class getJavaClass()

  Returns the java class which is used to represent value instances of this datatype.

  Specified by:
    `getJavaClass` in interface `RDFDatatype`

### cannonicalise

    public 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.

  Specified by:
    `cannonicalise` in interface `RDFDatatype`

### extendedTypeDefinition

    public 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.psvi.XSTypeDefinition`.

  Specified by:
    `extendedTypeDefinition` in interface `RDFDatatype`

### normalizeSubType

    public RDFDatatype normalizeSubType(java.lang.Object value,
                                        RDFDatatype dt)

  Normalization. If the value is narrower than the current data type (e.g. value is xsd:date but the time is xsd:datetime) returns the narrower type for the literal. If the type is narrower than the value then it may normalize the value (e.g. set the mask of an XSDDateTime) Currently only used to narrow gener XSDDateTime objects to the minimal XSD date/time type.

  Specified by:
    `normalizeSubType` in interface `RDFDatatype`
  Parameters:
    `value` - the current object value
    `dt` - the currently set data type
  Returns:
    a narrower version of the datatype based on the actual value range

### toString

    public java.lang.String toString()

  Display format

  Overrides:
    `toString` in class `java.lang.Object`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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