public Value asValue()

in commons-rdf-rdf4j/src/main/java/org/apache/commons/rdf/rdf4j/RDF4J.java [539:571]


    public Value asValue(final RDFTerm term) {
        if (term == null) {
            return null;
        }
        if (term instanceof RDF4JTerm) {
            // One of our own - avoid converting again.
            // (This is crucial to avoid double-escaping in BlankNode)
            return ((RDF4JTerm) term).asValue();
        }
        if (term instanceof org.apache.commons.rdf.api.IRI) {
            final org.apache.commons.rdf.api.IRI iri = (org.apache.commons.rdf.api.IRI) term;
            return getValueFactory().createIRI(iri.getIRIString());
        }
        if (term instanceof org.apache.commons.rdf.api.Literal) {
            final org.apache.commons.rdf.api.Literal literal = (org.apache.commons.rdf.api.Literal) term;
            final String label = literal.getLexicalForm();
            if (literal.getLanguageTag().isPresent()) {
                final String lang = literal.getLanguageTag().get();
                return getValueFactory().createLiteral(label, lang);
            }
            final org.eclipse.rdf4j.model.IRI dataType = (org.eclipse.rdf4j.model.IRI) asValue(literal.getDatatype());
            return getValueFactory().createLiteral(label, dataType);
        }
        if (term instanceof BlankNode) {
            // This is where it gets tricky to support round trips!
            final BlankNode blankNode = (BlankNode) term;
            // FIXME: The uniqueReference might not be a valid BlankNode
            // identifier.
            // does it have to be in RDF4J?
            return getValueFactory().createBNode(blankNode.uniqueReference());
        }
        throw new IllegalArgumentException("RDFTerm was not an IRI, Literal or BlankNode: " + term.getClass());
    }