Package org.eclipse.rdf4j.rio.turtle
Class TurtleWriter
- java.lang.Object
-
- org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
-
- org.eclipse.rdf4j.rio.turtle.TurtleWriter
-
- All Implemented Interfaces:
CharSink
,Sink
,RDFHandler
,RDFWriter
- Direct Known Subclasses:
TriGWriter
,TurtleStarWriter
public class TurtleWriter extends AbstractRDFWriter implements CharSink
An implementation of the RDFWriter interface that writes RDF documents in Turtle format. The Turtle format is defined in in this document.
-
-
Field Summary
Fields Modifier and Type Field Description protected ParsedIRI
baseIRI
protected Model
bufferedStatements
protected IRI
lastWrittenPredicate
protected Resource
lastWrittenSubject
protected boolean
statementClosed
Flag indicating whether the last written statement has been closed.protected IndentingWriter
writer
-
Fields inherited from class org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
namespaceTable, statementConsumer
-
-
Constructor Summary
Constructors Constructor Description TurtleWriter(OutputStream out)
Creates a new TurtleWriter that will write to the supplied OutputStream.TurtleWriter(OutputStream out, ParsedIRI baseIRI)
Creates a new TurtleWriter that will write to the supplied OutputStream.TurtleWriter(Writer writer)
Creates a new TurtleWriter that will write to the supplied Writer.TurtleWriter(Writer writer, ParsedIRI baseIRI)
Creates a new TurtleWriter that will write to the supplied Writer.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
closePreviousStatement()
protected void
consumeStatement(Statement st)
Consume a statement.void
endRDF()
Signals the end of the RDF data.protected ModelFactory
getModelFactory()
RDFFormat
getRDFFormat()
Gets the RDF format that this RDFWriter uses.Collection<RioSetting<?>>
getSupportedSettings()
Writer
getWriter()
void
handleComment(String comment)
Handles a comment.void
handleNamespace(String prefix, String name)
Handles a namespace declaration/definition.protected void
handleStatementInternal(Statement st, boolean endRDFCalled, boolean canShortenSubjectBNode, boolean canShortenObjectBNode)
Internal method that differentiates between the pretty-print and streaming writer cases.void
setModelFactory(ModelFactory modelFactory)
Set aModelFactory
to use for creating internal Models for statement processing/buffering purposes.void
startRDF()
Signals the start of the RDF data.protected void
writeBase(String baseURI)
protected void
writeBNode(BNode bNode)
Deprecated.UsewriteBNode(BNode, boolean)
instead.protected void
writeBNode(BNode bNode, boolean canShorten)
protected void
writeCommentLine(String line)
protected void
writeLiteral(Literal lit)
protected void
writeNamespace(String prefix, String name)
protected void
writePredicate(IRI predicate)
protected void
writeResource(Resource res)
Deprecated.UsewriteResource(Resource, boolean)
instead.protected void
writeResource(Resource res, boolean canShorten)
protected void
writeStatement(Resource subj, IRI pred, Value obj, Resource context, boolean canShortenSubjectBNode, boolean canShortenObjectBNode)
protected void
writeTriple(Triple triple, boolean canShorten)
protected void
writeTripleRDFStar(Triple triple, boolean canShorten)
protected void
writeURI(IRI uri)
protected void
writeValue(Value val)
Deprecated.UsewriteValue(Value, boolean)
instead.protected void
writeValue(Value val, boolean canShorten)
-
Methods inherited from class org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
checkWritingStarted, getFileFormat, getWriterConfig, handleStatement, isWritingStarted, set, setWriterConfig
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.rdf4j.common.io.Sink
acceptsFileFormat, getFileFormat
-
-
-
-
Field Detail
-
bufferedStatements
protected Model bufferedStatements
-
baseIRI
protected ParsedIRI baseIRI
-
writer
protected IndentingWriter writer
-
statementClosed
protected boolean statementClosed
Flag indicating whether the last written statement has been closed.
-
lastWrittenSubject
protected Resource lastWrittenSubject
-
lastWrittenPredicate
protected IRI lastWrittenPredicate
-
-
Constructor Detail
-
TurtleWriter
public TurtleWriter(OutputStream out)
Creates a new TurtleWriter that will write to the supplied OutputStream.- Parameters:
out
- The OutputStream to write the Turtle document to.
-
TurtleWriter
public TurtleWriter(OutputStream out, ParsedIRI baseIRI)
Creates a new TurtleWriter that will write to the supplied OutputStream.- Parameters:
out
- The OutputStream to write the Turtle document to.baseIRI
-
-
TurtleWriter
public TurtleWriter(Writer writer)
Creates a new TurtleWriter that will write to the supplied Writer.- Parameters:
writer
- The Writer to write the Turtle document to.
-
-
Method Detail
-
getRDFFormat
public RDFFormat getRDFFormat()
Description copied from interface:RDFWriter
Gets the RDF format that this RDFWriter uses.- Specified by:
getRDFFormat
in interfaceRDFWriter
-
getSupportedSettings
public Collection<RioSetting<?>> getSupportedSettings()
- Specified by:
getSupportedSettings
in interfaceRDFWriter
- Overrides:
getSupportedSettings
in classAbstractRDFWriter
- Returns:
- A collection of
RioSetting
s that are supported by this RDFWriter.
-
startRDF
public void startRDF() throws RDFHandlerException
Description copied from interface:RDFHandler
Signals the start of the RDF data. This method is called before any data is reported.- Specified by:
startRDF
in interfaceRDFHandler
- Overrides:
startRDF
in classAbstractRDFWriter
- Throws:
RDFHandlerException
- If the RDF handler has encountered an unrecoverable error.
-
endRDF
public void endRDF() throws RDFHandlerException
Description copied from interface:RDFHandler
Signals the end of the RDF data. This method is called when all data has been reported.- Specified by:
endRDF
in interfaceRDFHandler
- Throws:
RDFHandlerException
- If the RDF handler has encountered an unrecoverable error.
-
handleNamespace
public void handleNamespace(String prefix, String name) throws RDFHandlerException
Description copied from interface:RDFHandler
Handles a namespace declaration/definition. A namespace declaration associates a (short) prefix string with the namespace's URI. The prefix for default namespaces, which do not have an associated prefix, are represented as empty strings.- Specified by:
handleNamespace
in interfaceRDFHandler
- Overrides:
handleNamespace
in classAbstractRDFWriter
- Parameters:
prefix
- The prefix for the namespace, or an empty string in case of a default namespace.name
- The URI that the prefix maps to.- Throws:
RDFHandlerException
- If the RDF handler has encountered an unrecoverable error.
-
setModelFactory
public void setModelFactory(ModelFactory modelFactory)
Set aModelFactory
to use for creating internal Models for statement processing/buffering purposes.- Parameters:
modelFactory
- aModelFactory
to use for internal buffering / statement processing purposes. May not be null.
-
getModelFactory
protected ModelFactory getModelFactory()
-
consumeStatement
protected void consumeStatement(Statement st) throws RDFHandlerException
Description copied from class:AbstractRDFWriter
Consume a statement.Extending classes must override this method instead of overriding
AbstractRDFWriter.handleStatement(Statement)
in order to benefit from automatic handling of RDF-star conversion or encoding.- Overrides:
consumeStatement
in classAbstractRDFWriter
- Parameters:
st
- the statement to consume.- Throws:
RDFHandlerException
-
handleStatementInternal
protected void handleStatementInternal(Statement st, boolean endRDFCalled, boolean canShortenSubjectBNode, boolean canShortenObjectBNode)
Internal method that differentiates between the pretty-print and streaming writer cases.- Parameters:
st
- The next statement to writeendRDFCalled
- True if endRDF has been called before this method is called. This is used to buffer statements for pretty-printing before dumping them when all statements have been delivered to us.canShortenSubjectBNode
- True if, in the current context, we may be able to shorten the subject of this statement iff it is an instance ofBNode
.canShortenObjectBNode
- True if, in the current context, we may be able to shorten the object of this statement iff it is an instance ofBNode
.
-
writeStatement
protected void writeStatement(Resource subj, IRI pred, Value obj, Resource context, boolean canShortenSubjectBNode, boolean canShortenObjectBNode) throws IOException
- Throws:
IOException
-
handleComment
public void handleComment(String comment) throws RDFHandlerException
Description copied from interface:RDFHandler
Handles a comment.- Specified by:
handleComment
in interfaceRDFHandler
- Parameters:
comment
- The comment.- Throws:
RDFHandlerException
- If the RDF handler has encountered an unrecoverable error.
-
writeCommentLine
protected void writeCommentLine(String line) throws IOException
- Throws:
IOException
-
writeBase
protected void writeBase(String baseURI) throws IOException
- Throws:
IOException
-
writeNamespace
protected void writeNamespace(String prefix, String name) throws IOException
- Throws:
IOException
-
writePredicate
protected void writePredicate(IRI predicate) throws IOException
- Throws:
IOException
-
writeValue
@Deprecated protected void writeValue(Value val) throws IOException
Deprecated.UsewriteValue(Value, boolean)
instead.- Parameters:
val
- TheValue
to write.- Throws:
IOException
-
writeValue
protected void writeValue(Value val, boolean canShorten) throws IOException
Writes a value, optionally shortening it if it is anIRI
and has a namespace definition that is suitable for use in this context for shortening or aBNode
that has been confirmed to be able to be shortened in this context.- Parameters:
val
- TheValue
to write.canShorten
- True if, in the current context, we can shorten this value if it is an instance ofBNode
.- Throws:
IOException
-
writeResource
@Deprecated protected void writeResource(Resource res) throws IOException
Deprecated.UsewriteResource(Resource, boolean)
instead.- Parameters:
res
- TheResource
to write.- Throws:
IOException
-
writeResource
protected void writeResource(Resource res, boolean canShorten) throws IOException
Writes aResource
, optionally shortening it if it is anIRI
and has a namespace definition that is suitable for use in this context for shortening or aBNode
that has been confirmed to be able to be shortened in this context.- Parameters:
res
- TheResource
to write.canShorten
- True if, in the current context, we can shorten this value if it is an instance ofBNode
.- Throws:
IOException
-
writeURI
protected void writeURI(IRI uri) throws IOException
- Throws:
IOException
-
writeBNode
@Deprecated protected void writeBNode(BNode bNode) throws IOException
Deprecated.UsewriteBNode(BNode, boolean)
instead.- Parameters:
bNode
- TheBNode
to write.- Throws:
IOException
-
writeBNode
protected void writeBNode(BNode bNode, boolean canShorten) throws IOException
- Throws:
IOException
-
writeTriple
protected void writeTriple(Triple triple, boolean canShorten) throws IOException
- Throws:
IOException
-
writeTripleRDFStar
protected void writeTripleRDFStar(Triple triple, boolean canShorten) throws IOException
- Throws:
IOException
-
writeLiteral
protected void writeLiteral(Literal lit) throws IOException
- Throws:
IOException
-
closePreviousStatement
protected void closePreviousStatement() throws IOException
- Throws:
IOException
-
-