@Override public void endRDF() throws RDFHandlerException { GraphRenderer renderer=new GraphRenderer(graph,writerConfig.get(ENABLE_FOLDING)); out.append(renderer.render()); out.flush(); trace("Completed RDF processing."); }
String render() { renderPrefixes(); renderBase(); for(Individual individual:graph) { if(!individual.isReference() && (disableFolding || !individual.isFoldable())) { renderSubject(individual); renderPredicates(false,individual); renderNewLine(); } } return builder.toString(); }
private void renderPredicates(boolean anonymous, Individual individual) { Iterator<URI> predicateIterator = individual.iterator(); while(predicateIterator.hasNext()) { URI predicate=predicateIterator.next(); renderPredicateValues(individual,predicate); String predicateSeparator=" ."; if(predicateIterator.hasNext()) { predicateSeparator=" ;"; } else if(anonymous) { predicateSeparator=""; } builder.append(predicateSeparator); } }
private void renderFoldedBlankNode(Individual individual) { builder.append("[").append(" # FOLDED: ").append(individual.getSubject().toString()); indenter.increase(); renderPredicates(true,individual); indenter.decrease(); builder.append(NL).append(indenter.indent()).append("]"); }
private boolean tryRenderingFolded(Resource subject, Value object) { boolean result=false; if(!disableFolding && object instanceof Resource) { Individual individual=graph.findIndividual((Resource)object); if(individual!=null && individual.canBeFoldedBy(subject)) { renderFoldedBlankNode(individual); result=true; } } return result; }
private void renderSubject(Individual individual) { builder.append(NL).append(utils.toString(individual.getSubject())); if(individual.isAnonymous()) { String tail= !individual.isReferred()? "\t# Not referenced": String.format( "\t# Referenced %d times by resources: %s", individual.getReferences(), renderReferrers(individual.getReferrers())); builder.append(tail); } }