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 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 | 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()` | 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.RDFHandler

      `handleStatement`

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

      `getWriterConfig, set, setWriterConfig`

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