@Override public Optional<DatatypePredicate> getOptionalTypePredicate(RDFDatatype type) { if (type.isAbstract()) throw new IllegalArgumentException("The datatype " + type + " is abstract and therefore cannot be constructed"); return Optional.of(type2FunctionSymbolMap .computeIfAbsent( type, t -> t.getLanguageTag() // Lang string .map(tag -> new DatatypePredicateImpl(type, typeFactory.getDatatype(XSD.STRING))) // Other datatypes .orElseGet(() -> new DatatypePredicateImpl(type, type)))); }
private DatatypePredicate registerType(org.eclipse.rdf4j.model.IRI uri, COL_TYPE type) { String sURI = uri.toString(); DatatypePredicate predicate = new DatatypePredicateImpl(sURI, type); return registerType(uri, type, predicate); }
private TypeFactoryImpl() { XSD_INTEGER = registerType(XMLSchema.INTEGER, COL_TYPE.INTEGER); // 4 "http://www.w3.org/2001/XMLSchema#integer"; XSD_DECIMAL = registerType(XMLSchema.DECIMAL, COL_TYPE.DECIMAL); // 5 "http://www.w3.org/2001/XMLSchema#decimal" XSD_DOUBLE = registerType(XMLSchema.DOUBLE, COL_TYPE.DOUBLE); // 6 "http://www.w3.org/2001/XMLSchema#double" XSD_STRING = registerType(XMLSchema.STRING, COL_TYPE.STRING); // 7 "http://www.w3.org/2001/XMLSchema#string" XSD_DATETIME = registerType(XMLSchema.DATETIME, COL_TYPE.DATETIME); // 8 "http://www.w3.org/2001/XMLSchema#dateTime" ValueFactory factory = SimpleValueFactory.getInstance(); IRI datetimestamp = factory.createIRI("http://www.w3.org/2001/XMLSchema#dateTimeStamp"); // value datetime stamp is missing in XMLSchema XSD_DATETIME_STAMP = registerType(datetimestamp, COL_TYPE.DATETIME_STAMP); XSD_BOOLEAN = registerType(XMLSchema.BOOLEAN, COL_TYPE.BOOLEAN); // 9 "http://www.w3.org/2001/XMLSchema#boolean" XSD_DATE = registerType(XMLSchema.DATE, COL_TYPE.DATE); // 10 "http://www.w3.org/2001/XMLSchema#date"; XSD_TIME = registerType(XMLSchema.TIME, COL_TYPE.TIME); // 11 "http://www.w3.org/2001/XMLSchema#time"; XSD_YEAR = registerType(XMLSchema.GYEAR, COL_TYPE.YEAR); // 12 "http://www.w3.org/2001/XMLSchema#gYear"; XSD_LONG = registerType(XMLSchema.LONG, COL_TYPE.LONG); // 13 "http://www.w3.org/2001/XMLSchema#long" XSD_FLOAT = registerType(XMLSchema.FLOAT, COL_TYPE.FLOAT); // 14 "http://www.w3.org/2001/XMLSchema#float" XSD_NEGATIVE_INTEGER = registerType(XMLSchema.NEGATIVE_INTEGER, COL_TYPE.NEGATIVE_INTEGER); // 15 "http://www.w3.org/2001/XMLSchema#negativeInteger"; XSD_NON_NEGATIVE_INTEGER = registerType(XMLSchema.NON_NEGATIVE_INTEGER, COL_TYPE.NON_NEGATIVE_INTEGER); // 16 "http://www.w3.org/2001/XMLSchema#nonNegativeInteger" XSD_POSITIVE_INTEGER = registerType(XMLSchema.POSITIVE_INTEGER, COL_TYPE.POSITIVE_INTEGER); // 17 "http://www.w3.org/2001/XMLSchema#positiveInteger" XSD_NON_POSITIVE_INTEGER = registerType(XMLSchema.NON_POSITIVE_INTEGER, COL_TYPE.NON_POSITIVE_INTEGER); // 18 "http://www.w3.org/2001/XMLSchema#nonPositiveInteger" XSD_INT = registerType(XMLSchema.INT, COL_TYPE.INT); // 19 "http://www.w3.org/2001/XMLSchema#int" XSD_UNSIGNED_INT = registerType(XMLSchema.UNSIGNED_INT, COL_TYPE.UNSIGNED_INT); // 20 "http://www.w3.org/2001/XMLSchema#unsignedInt" RDF_LANG_STRING = new DatatypePredicateImpl(RDF.LANGSTRING.toString(), new COL_TYPE[] { COL_TYPE.STRING, COL_TYPE.STRING }); registerType(RDF.LANGSTRING, COL_TYPE.LANG_STRING, RDF_LANG_STRING); // RDFS_LITERAL = new DatatypePredicateImpl(RDFS.LITERAL.toString(), new COL_TYPE[] { COL_TYPE.LITERAL }); // registerUnsupportedType(RDFS.LITERAL, COL_TYPE.LITERAL, RDFS_LITERAL); }