in commons-rdf-simple/src/main/java/org/apache/commons/rdf/simple/DatasetImpl.java [66:81]
public void add(final Quad quad) {
final BlankNodeOrIRI newGraph = (BlankNodeOrIRI) internallyMap(quad.getGraphName().orElse(null));
final BlankNodeOrIRI newSubject = (BlankNodeOrIRI) internallyMap(quad.getSubject());
final IRI newPredicate = (IRI) internallyMap(quad.getPredicate());
final RDFTerm newObject = internallyMap(quad.getObject());
// Check if any of the object references changed during the mapping, to
// avoid creating a new Quad object if possible
if (newGraph == quad.getGraphName().orElse(null) && newSubject == quad.getSubject()
&& newPredicate == quad.getPredicate() && newObject == quad.getObject()) {
quads.add(quad);
} else {
// Make a new Quad with our mapped instances
final Quad result = factory.createQuad(newGraph, newSubject, newPredicate, newObject);
quads.add(result);
}
}