if(node instanceof URI) {
return node.asURI();
}
if(node instanceof PlainLiteral) {
return new URIImpl(node.asLiteral().getValue());
}
if(node instanceof LanguageTagLiteral) {
throw new RDFDataException(
"Cannot convert a language tagged literal to a URI - it makes no sense");
}
if(node instanceof DatatypeLiteral) {
URI datatype = node.asDatatypeLiteral().getDatatype();
if(datatype.equals(XSD._anyURI)) {
return new URIImpl(node.asDatatypeLiteral().getValue());
} else {
throw new RDFDataException("Cannot convert from datatype " + datatype + " to URI");
}
}