package org.neo4j.meta.model; import java.text.ParseException; import org.neo4j.meta.model.RdfUtil.ValueConverter; /** * Handles datatypes commonly used in RDF/XML Schema. */ public class RdfDatatypeRange extends SimpleStringPropertyRange { private String datatype; /** * @param datatype the datatype uri. */ public RdfDatatypeRange( String datatype ) { this.datatype = datatype; } /** * Used internally. */ public RdfDatatypeRange() { } /** * @return the RDF datatype for this range. */ public String getRdfDatatype() { return this.datatype; } @Override protected String toStringRepresentation( MetaModelRestrictable owner ) { return this.datatype; } @Override protected void fromStringRepresentation( MetaModelRestrictable owner, String stringRepresentation ) { this.datatype = stringRepresentation; } private ValueConverter getConverter() { return RdfUtil.getDatatypeConverter( getRdfDatatype() ); } @Override public Object rdfLiteralToJavaObject( String value ) throws ParseException { return getConverter().convert( value ); } @Override public String javaObjectToRdfLiteral( Object value ) { return getConverter().convertToString( value ); } @Override public String toString() { return getClass().getSimpleName() + "[" + getRdfDatatype() + "]"; } }