All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bigdata.rdf.rio.turtle.BigdataTurtleWriter Maven / Gradle / Ivy

/*
 * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2007.
 *
 * Licensed under the Aduna BSD-style license.
 */
package com.bigdata.rdf.rio.turtle;

import java.io.IOException;
import java.io.OutputStream;
import java.io.Writer;

import org.openrdf.model.BNode;
import org.openrdf.rio.RDFWriter;
import org.openrdf.rio.turtle.TurtleWriter;

import com.bigdata.rdf.model.BigdataBNode;
import com.bigdata.rdf.model.BigdataStatement;

/**
 * An implementation of the RDFWriter interface that writes RDF documents in
 * Turtle format. The Turtle format is defined in in this document.
 * @openrdf
 */
public class BigdataTurtleWriter extends TurtleWriter implements RDFWriter {

	/**
	 * Creates a new TurtleWriter that will write to the supplied OutputStream.
	 * 
	 * @param out
	 *        The OutputStream to write the Turtle document to.
	 */
	public BigdataTurtleWriter(OutputStream out) {
		super(out);
	}

	/**
	 * Creates a new TurtleWriter that will write to the supplied Writer.
	 * 
	 * @param writer
	 *        The Writer to write the Turtle document to.
	 */
	public BigdataTurtleWriter(Writer writer) {
		super(writer);
	}

	protected void writeBNode(BNode bNode)
		throws IOException
	{
		if (bNode instanceof BigdataBNode && 
				((BigdataBNode) bNode).isStatementIdentifier()) {
			writeSid((BigdataBNode) bNode);
		} else {
			super.writeBNode(bNode);
		}
	}

	protected void writeSid(final BigdataBNode sid)
		throws IOException
	{
		final BigdataStatement stmt = sid.getStatement();
		writer.write("<< ");
		writeValue(stmt.getSubject());
		writer.write(", ");
		writeValue(stmt.getPredicate());
		writer.write(", ");
		writeValue(stmt.getObject());
		if (stmt.getContext() != null) {
			writer.write(", ");
			writeValue(stmt.getContext());
		}
		writer.write(" >>");
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy