public static String getObjectDatatype(final RDFTerm term) { if (term instanceof Literal) { return ((Literal) term).getDatatype().getIRIString(); } return null; }
@Override public boolean equals(final Object obj) { // COMMONSRDF-56: Do **not** use // asJsonLdNode().compareTo(other.asJsonLdNode()) if (obj instanceof Literal) { final Literal other = (Literal) obj; return getLexicalForm().equals(other.getLexicalForm()) && getDatatype().equals(other.getDatatype()) && getLanguageTag().map(JsonLdLiteralImpl::lowerCase) .equals(other.getLanguageTag().map(JsonLdLiteralImpl::lowerCase)); } return false; } }
@Override public boolean equals(final Object obj) { if (this == obj) { return true; } if (obj == null || !(obj instanceof Literal)) { return false; } final Literal literal = (Literal) obj; return getDatatype().equals(literal.getDatatype()) && getLexicalForm().equals(literal.getLexicalForm()) && getLanguageTag().equals(literal.getLanguageTag().map(LiteralImpl::lowerCase)); }
@Override public boolean equals(final Object other) { if (other == this) { return true; } if (other == null) { return false; } if (!(other instanceof Literal)) { return false; } final Literal literal = (Literal) other; return getLexicalForm().equals(literal.getLexicalForm()) && getDatatype().equals(literal.getDatatype()) && getLanguageTag().map(JenaLiteralImpl::lowerCase).equals( literal.getLanguageTag().map(JenaLiteralImpl::lowerCase)); }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null || !(obj instanceof Literal)) { return false; } Literal literal = (Literal) obj; return getDatatype().equals(literal.getDatatype()) && getLexicalForm().equals(literal.getLexicalForm()) && getLanguageTag().equals(literal.getLanguageTag()); }
return new RDFDataset.Literal(literal.getLexicalForm(), literal.getDatatype().getIRIString(), literal.getLanguageTag().orElse(null));
private RDFTerm inScope(Optional<Graph> localScope, RDFTerm object) { if (!(object instanceof BlankNode) && !(object instanceof IRI) & !(object instanceof Literal)) { throw new IllegalArgumentException( "RDFTerm must be BlankNode, IRI or Literal"); } if (object instanceof BlankNode) { BlankNode blankNode = (BlankNode) object; return new BlankNodeImpl(Objects.requireNonNull(localScope), blankNode.internalIdentifier()); } else if (object instanceof IRI && !(object instanceof IRIImpl)) { IRI iri = (IRI) object; return new IRIImpl(iri.getIRIString()); } else if (object instanceof Literal && !(object instanceof LiteralImpl)) { Literal literal = (Literal) object; if (literal.getLanguageTag().isPresent()) { return new LiteralImpl(literal.getLexicalForm(), literal .getLanguageTag().get()); } else { IRI dataType = (IRI) inScope(localScope, literal.getDatatype()); return new LiteralImpl(literal.getLexicalForm(), dataType); } } else { return object; } }
private <T extends RDFTerm> RDFTerm internallyMap(final T object) { if (object == null || object instanceof SimpleRDFTerm) { return object; } if (object instanceof BlankNode && !(object instanceof BlankNodeImpl)) { final BlankNode blankNode = (BlankNode) object; // This guarantees that adding the same BlankNode multiple times to // this graph will generate a local object that is mapped to an // equivalent object, based on the code in the package private // BlankNodeImpl class return factory.createBlankNode(blankNode.uniqueReference()); } else if (object instanceof IRI && !(object instanceof IRIImpl)) { final IRI iri = (IRI) object; return factory.createIRI(iri.getIRIString()); } else if (object instanceof Literal && !(object instanceof LiteralImpl)) { final Literal literal = (Literal) object; if (literal.getLanguageTag().isPresent()) { return factory.createLiteral(literal.getLexicalForm(), literal.getLanguageTag().get()); } return factory.createLiteral(literal.getLexicalForm(), (IRI) internallyMap(literal.getDatatype())); } else { throw new IllegalArgumentException("Not a BlankNode, IRI or Literal: " + object); } }
void add(final BlankNodeOrIRI graphName, final BlankNodeOrIRI subject, final IRI predicate, final RDFTerm object) { final String g = factory.asJsonLdString(graphName); final String s = factory.asJsonLdString(subject); final String p = factory.asJsonLdString(predicate); if (object instanceof BlankNodeOrIRI) { final String o = factory.asJsonLdString((BlankNodeOrIRI) object); rdfDataSet.addQuad(s, p, o, g); } else if (object instanceof Literal) { final Literal literal = (Literal) object; final String language = literal.getLanguageTag().orElse(null); final String datatype = literal.getDatatype().getIRIString(); rdfDataSet.addQuad(s, p, literal.getLexicalForm(), datatype, language, g); } }
@Test public void hashCodeLiteral() throws Exception { final Literal literal = factory.createLiteral("Hello"); assertEquals(Objects.hash(literal.getLexicalForm(), literal.getDatatype(), literal.getLanguageTag()), literal.hashCode()); }
@Test public void testCreateLiteralLangISO693_3() throws Exception { // see https://issues.apache.org/jira/browse/JENA-827 final Literal vls = factory.createLiteral("Herbert Van de Sompel", "vls"); // JENA-827 assertEquals("vls", vls.getLanguageTag().get()); assertEquals("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString", vls.getDatatype().getIRIString()); assertEquals("\"Herbert Van de Sompel\"@vls", vls.ntriplesString()); }
@Test public void testCreateLiteralLang() throws Exception { final Literal example = factory.createLiteral("Example", "en"); assertEquals("Example", example.getLexicalForm()); assertEquals("en", example.getLanguageTag().get()); assertEquals("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString", example.getDatatype().getIRIString()); assertEquals("\"Example\"@en", example.ntriplesString()); }
@Test public void testCreateLiteral() throws Exception { final Literal example = factory.createLiteral("Example"); assertEquals("Example", example.getLexicalForm()); assertFalse(example.getLanguageTag().isPresent()); assertEquals("http://www.w3.org/2001/XMLSchema#string", example.getDatatype().getIRIString()); // http://lists.w3.org/Archives/Public/public-rdf-comments/2014Dec/0004.html assertEquals("\"Example\"", example.ntriplesString()); }
@Test public void testCreateLiteralLangISO693_3() throws Exception { // see https://issues.apache.org/jira/browse/JENA-827 Literal vls; try { vls = factory.createLiteral("Herbert Van de Sompel", "vls"); // JENA-827 // reference } catch (UnsupportedOperationException ex) { Assume.assumeNoException(ex); return; } assertEquals("vls", vls.getLanguageTag().get()); assertEquals("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString", vls.getDatatype().getIRIString()); assertEquals("\"Herbert Van de Sompel\"@vls", vls.ntriplesString()); }
@Test public void testCreateLiteralDateTime() throws Exception { final Literal dateTime = factory.createLiteral("2014-12-27T00:50:00T-0600", factory.createIRI("http://www.w3.org/2001/XMLSchema#dateTime")); assertEquals("2014-12-27T00:50:00T-0600", dateTime.getLexicalForm()); assertFalse(dateTime.getLanguageTag().isPresent()); assertEquals("http://www.w3.org/2001/XMLSchema#dateTime", dateTime.getDatatype().getIRIString()); assertEquals("\"2014-12-27T00:50:00T-0600\"^^<http://www.w3.org/2001/XMLSchema#dateTime>", dateTime.ntriplesString()); }
@Test public void testCreateLiteralString() throws Exception { final Literal example = factory.createLiteral("Example", factory.createIRI("http://www.w3.org/2001/XMLSchema#string")); assertEquals("Example", example.getLexicalForm()); assertFalse(example.getLanguageTag().isPresent()); assertEquals("http://www.w3.org/2001/XMLSchema#string", example.getDatatype().getIRIString()); // http://lists.w3.org/Archives/Public/public-rdf-comments/2014Dec/0004.html assertEquals("\"Example\"", example.ntriplesString()); }
@Test public void testCreateLiteralLang() throws Exception { Literal example; try { example = factory.createLiteral("Example", "en"); } catch (UnsupportedOperationException ex) { Assume.assumeNoException(ex); return; } assertEquals("Example", example.getLexicalForm()); assertEquals("en", example.getLanguageTag().get()); assertEquals("http://www.w3.org/1999/02/22-rdf-syntax-ns#langString", example.getDatatype().getIRIString()); assertEquals("\"Example\"@en", example.ntriplesString()); }
@Test public void testCreateLiteral() throws Exception { Literal example; try { example = factory.createLiteral("Example"); } catch (UnsupportedOperationException ex) { Assume.assumeNoException(ex); return; } assertEquals("Example", example.getLexicalForm()); assertFalse(example.getLanguageTag().isPresent()); assertEquals("http://www.w3.org/2001/XMLSchema#string", example .getDatatype().getIRIString()); // http://lists.w3.org/Archives/Public/public-rdf-comments/2014Dec/0004.html assertEquals("\"Example\"", example.ntriplesString()); }
@Test public void testCreateLiteralString() throws Exception { Literal example; try { example = factory.createLiteral("Example", factory .createIRI("http://www.w3.org/2001/XMLSchema#string")); } catch (UnsupportedOperationException ex) { Assume.assumeNoException(ex); return; } assertEquals("Example", example.getLexicalForm()); assertFalse(example.getLanguageTag().isPresent()); assertEquals("http://www.w3.org/2001/XMLSchema#string", example .getDatatype().getIRIString()); // http://lists.w3.org/Archives/Public/public-rdf-comments/2014Dec/0004.html assertEquals("\"Example\"", example.ntriplesString()); }
@Test public void testCreateLiteralDateTime() throws Exception { Literal dateTime; try { dateTime = factory .createLiteral( "2014-12-27T00:50:00T-0600", factory.createIRI("http://www.w3.org/2001/XMLSchema#dateTime")); } catch (UnsupportedOperationException ex) { Assume.assumeNoException(ex); return; } assertEquals("2014-12-27T00:50:00T-0600", dateTime.getLexicalForm()); assertFalse(dateTime.getLanguageTag().isPresent()); assertEquals("http://www.w3.org/2001/XMLSchema#dateTime", dateTime .getDatatype().getIRIString()); assertEquals( "\"2014-12-27T00:50:00T-0600\"^^<http://www.w3.org/2001/XMLSchema#dateTime>", dateTime.ntriplesString()); }