in commons-rdf-jena/src/main/java/org/apache/commons/rdf/jena/JenaRDF.java [139:166]
public static RDFTerm asRDFTerm(final RDF factory, final Node node) {
if (node == null) {
return null;
}
if (factory instanceof JenaRDF) {
// No need to convert, just wrap
return ((JenaRDF) factory).asRDFTerm(node);
}
if (node.isURI()) {
return factory.createIRI(node.getURI());
}
if (node.isLiteral()) {
final String lang = node.getLiteralLanguage();
if (lang != null && !lang.isEmpty()) {
return factory.createLiteral(node.getLiteralLexicalForm(), lang);
}
if (node.getLiteralDatatype().equals(XSDDatatype.XSDstring)) {
return factory.createLiteral(node.getLiteralLexicalForm());
}
final IRI dt = factory.createIRI(node.getLiteralDatatype().getURI());
return factory.createLiteral(node.getLiteralLexicalForm(), dt);
}
if (node.isBlank()) {
// The factory
return factory.createBlankNode(node.getBlankNodeLabel());
}
throw new ConversionException("Node is not a concrete RDF Term: " + node);
}