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 RDFWriter, 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 and 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 and 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 and 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()` get the `Writer` used by this `CharSink`.
    `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 a `ModelFactory` 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. Use `writeBNode(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. Use `writeResource(Resource, boolean)` instead.
    `protected void` | `writeResource(Resource res, boolean canShorten)` Writes a `Resource`, optionally shortening it if it is an `IRI` and has a namespace definition that is suitable for use in this context for shortening or a `BNode` that has been confirmed to be able to be shortened in this context.
    `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. Use `writeValue(Value, boolean)` instead.
    `protected void` | `writeValue(Value val, boolean canShorten)` Writes a value, optionally shortening it if it is an `IRI` and has a namespace definition that is suitable for use in this context for shortening or a `BNode` that has been confirmed to be able to be shortened in this context.

    - ### 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.rio.RDFWriter

      `getWriterConfig, set, setWriterConfig`

    - ### Methods inherited from interface org.eclipse.rdf4j.rio.RDFHandler

      `handleStatement`

    - ### 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.

    - #### TurtleWriter

          public TurtleWriter(Writer writer,
                              ParsedIRI baseIRI)

      Creates a new TurtleWriter that will write to the supplied Writer.
      Parameters:
        `writer` - The Writer to write the Turtle document to.
        `baseIRI` -

  - ### Method Detail

    - #### getWriter

          public Writer getWriter()

      Description copied from interface: `CharSink`
      get the `Writer` used by this `CharSink`.
      Specified by:
        `getWriter` in interface `CharSink`
      Returns:
        an `Writer`

    - #### getRDFFormat

          public RDFFormat getRDFFormat()

      Description copied from interface: `RDFWriter`
      Gets the RDF format that this RDFWriter uses.
      Specified by:
        `getRDFFormat` in interface `RDFWriter`

    - #### getSupportedSettings

          public Collection<RioSetting<?>> getSupportedSettings()

      Specified by:
        `getSupportedSettings` in interface `RDFWriter`
      Overrides:
        `getSupportedSettings` in class `AbstractRDFWriter`
      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 interface `RDFHandler`
      Overrides:
        `startRDF` in class `AbstractRDFWriter`
      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 interface `RDFHandler`
      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 interface `RDFHandler`
      Overrides:
        `handleNamespace` in class `AbstractRDFWriter`
      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 a `ModelFactory` to use for creating internal Models for statement processing/buffering purposes.
      Parameters:
        `modelFactory` - a `ModelFactory` 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 class `AbstractRDFWriter`
      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 write
        `endRDFCalled` - 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 of `BNode`.
        `canShortenObjectBNode` - True if, in the current context, we may be able to shorten the object of this statement iff it is an instance of `BNode`.

    - #### 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 interface `RDFHandler`
      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. Use `writeValue(Value, boolean)` instead.
      Parameters:
        `val` - The `Value` to write.
      Throws:
        `IOException`

    - #### writeValue

          protected void writeValue(Value val,
                                    boolean canShorten)
                             throws IOException

      Writes a value, optionally shortening it if it is an `IRI` and has a namespace definition that is suitable for use in this context for shortening or a `BNode` that has been confirmed to be able to be shortened in this context.
      Parameters:
        `val` - The `Value` to write.
        `canShorten` - True if, in the current context, we can shorten this value if it is an instance of `BNode` .
      Throws:
        `IOException`

    - #### writeResource

          @Deprecated
          protected void writeResource(Resource res)
                                            throws IOException

      Deprecated. Use `writeResource(Resource, boolean)` instead.
      Parameters:
        `res` - The `Resource` to write.
      Throws:
        `IOException`

    - #### writeResource

          protected void writeResource(Resource res,
                                       boolean canShorten)
                                throws IOException

      Writes a `Resource`, optionally shortening it if it is an `IRI` and has a namespace definition that is suitable for use in this context for shortening or a `BNode` that has been confirmed to be able to be shortened in this context.
      Parameters:
        `res` - The `Resource` to write.
        `canShorten` - True if, in the current context, we can shorten this value if it is an instance of `BNode` .
      Throws:
        `IOException`

    - #### writeURI

          protected void writeURI(IRI uri)
                           throws IOException

      Throws:
        `IOException`

    - #### writeBNode

          @Deprecated
          protected void writeBNode(BNode bNode)
                                         throws IOException

      Deprecated. Use `writeBNode(BNode, boolean)` instead.
      Parameters:
        `bNode` - The `BNode` 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`

Copyright © 2015-2022 Eclipse Foundation. All Rights Reserved.