protected void append(LIT lit) throws IOException { String val = lit.getValue(); if (val.indexOf('\n') > 0 || val.indexOf('\r') > 0 || val.indexOf('\t') > 0) { appendable.append("\"\"\""); appendable.append(TurtleUtil.encodeLongString(val)); appendable.append("\"\"\""); } else { appendable.append("\""); appendable.append(TurtleUtil.encodeString(val)); appendable.append("\""); } if (lit.getLang() != null) { appendable.append("@").append(LocaleUtil.toLang(lit.getLang())); } else if (!lit.getDatatype().equals(RDF.text)) { appendable.append("^^"); append(lit.getDatatype()); } }
@Override public int compare(NODE o1, NODE o2) { if (o1 == null) { return o2 == null ? 0 : -1; } else if (o2 == null) { return 1; } // node type if (o1.getNodeType() != o2.getNodeType()) { return o1.getNodeType().compareTo(o2.getNodeType()); } // value if (!o1.getValue().equals(o2.getValue())) { return o1.getValue().compareTo(o2.getValue()); } if (o1.isLiteral() && o2.isLiteral()) { LIT l1 = o1.asLiteral(); LIT l2 = o2.asLiteral(); // datatype if (!l1.getDatatype().equals(l2.getDatatype())) { return compare(l1.getDatatype(), l2.getDatatype()); } // locale Locale loc1 = l1.getLang() == null ? new Locale("") : l1.getLang(); Locale loc2 = l2.getLang() == null ? new Locale("") : l2.getLang(); return loc1.toString().compareTo(loc2.toString()); } return 0; }
private Object convertValue(NODE node, Class<?> targetClass) { UID targetType = configuration.getConverterRegistry().getDatatype(targetClass); if (targetClass.isAssignableFrom(node.getClass())) { return node; } else if (targetType != null && node.isLiteral()) { // TODO : make sure this works also with untyped literals etc if (((LIT) node).getDatatype().equals(targetType)) { return configuration.getConverterRegistry().fromString(node.getValue(), targetClass); } else { throw new IllegalArgumentException("Literal " + node + " is not of type " + targetType); } } else if (targetType == null && node.isURI()) { return get(targetClass, node.asURI()); } else { throw new IllegalArgumentException("Node " + node + " could not be converted to " + targetClass.getName()); } }
public static String toString(LIT lit) { String value = "\"" + NTriplesUtil.escapeString(lit.getValue()) + "\""; if (lit.getLang() != null) { return value + "@" + LocaleUtil.toLang(lit.getLang()); } else { return value + "^^" + toString(lit.getDatatype()); } }
@Override public Literal getLiteral(LIT lit) { Literal literal = literalCache.get(lit); if (literal == null){ if (lit.isText()) { Locale lang = lit.getLang(); if (lang.equals(Locale.ROOT)) { literal = vf.createLiteral(lit.getValue()); } else { literal = vf.createLiteral(lit.getValue(), LocaleUtil.toLang(lang)); } } else if (lit.isString()) { literal = vf.createLiteral(lit.getValue(), getURI(XSD.stringType)); } else if (lit.getDatatype().equals(RDF.text)){ literal = vf.createLiteral(lit.getValue()); } else { literal = vf.createLiteral(lit.getValue(), getURI(lit.getDatatype())); } literalCache.put(lit, literal); } return literal; }
@Override public Literal getLiteral(LIT lit) { Literal literal = literalCache.get(lit); if (literal == null) { if (lit.isText()) { Locale lang = lit.getLang(); if (lang.equals(Locale.ROOT)) { literal = vf.createLiteral(lit.getValue()); } else { literal = vf.createLiteral(lit.getValue(), LocaleUtil.toLang(lang)); } } else if (lit.isString()) { literal = vf.createLiteral(lit.getValue(), getURI(XSD.stringType)); } else if (lit.getDatatype().equals(RDF.text)) { literal = vf.createLiteral(lit.getValue()); } else { literal = vf.createLiteral(lit.getValue(), getURI(lit.getDatatype())); } literalCache.put(lit, literal); } return literal; }
@Override public Literal getLiteral(LIT lit) { Literal literal = literalCache.get(lit); if (literal == null) { if (lit.isText()) { Locale lang = lit.getLang(); if (lang.equals(Locale.ROOT)) { literal = vf.createLiteral(lit.getValue()); } else { literal = vf.createLiteral(lit.getValue(), LocaleUtil.toLang(lang)); } } else if (lit.isString()) { literal = vf.createLiteral(lit.getValue(), getURI(XSD.stringType)); } else if (lit.getDatatype().equals(RDF.text)) { literal = vf.createLiteral(lit.getValue()); } else { literal = vf.createLiteral(lit.getValue(), getURI(lit.getDatatype())); } literalCache.put(lit, literal); } return literal; }
writer.append(" xml:lang=\"" + LocaleUtil.toLang(lit.getLang()) + "\""); } else { writer.append(" rdf:datatype=\"" + shorten(lit.getDatatype()) + "\"");
if (dataType == null || !stmt.getObject().asLiteral().getDatatype().equals(dataType)) { continue;