Package org.eclipse.rdf4j.rio.rdfjson

## Class RDFJSONWriter

- java.lang.Object
- - org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
  - - org.eclipse.rdf4j.rio.rdfjson.RDFJSONWriter

- All Implemented Interfaces:
    `CharSink`, `Sink`, `RDFHandler`, `RDFWriter`

      public class RDFJSONWriter
      extends AbstractRDFWriter
      implements RDFWriter, CharSink

  `RDFWriter` implementation for the RDF/JSON format
  Author:
    Peter Ansell p_ansell@yahoo.com

- - ### Field Summary

    - ### Fields inherited from class org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter

      `namespaceTable, statementConsumer`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `RDFJSONWriter​(OutputStream out, RDFFormat actualFormat)` |
    `RDFJSONWriter​(Writer writer, RDFFormat actualFormat)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `consumeStatement​(Statement statement)` | Consume a statement.
    `void` | `endRDF()` | Signals the end of the RDF data.
    `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 uri)` | Handles a namespace declaration/definition.
    `static void` | `modelToRdfJsonInternal​(Model graph, WriterConfig writerConfig, com.fasterxml.jackson.core.JsonGenerator jg)` |
    `static String` | `resourceToString​(Resource uriOrBnode)` | Returns the correct syntax for a Resource, depending on whether it is a URI or a Blank Node (ie, BNode)
    `void` | `startRDF()` | Signals the start of the RDF data.
    `static void` | `writeObject​(Value object, Set<Resource> contexts, com.fasterxml.jackson.core.JsonGenerator jg)` | Helper method to reduce complexity of the JSON serialisation algorithm Any null contexts will only be serialised to JSON if there are also non-null contexts in the contexts array

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

- - ### Constructor Detail

    - #### RDFJSONWriter

          public RDFJSONWriter​(OutputStream out,
                               RDFFormat actualFormat)

    - #### RDFJSONWriter

          public RDFJSONWriter​(Writer writer,
                               RDFFormat actualFormat)

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

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

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

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

    - #### handleNamespace

          public void handleNamespace​(String prefix,
                                      String uri)
                               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.
        `uri` - The URI that the prefix maps to.
      Throws:
        `RDFHandlerException` - If the RDF handler has encountered an unrecoverable error.

    - #### consumeStatement

          public void consumeStatement​(Statement statement)
                                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:
        `statement` - the statement to consume.
      Throws:
        `RDFHandlerException`

    - #### writeObject

          public static void writeObject​(Value object,
                                         Set<Resource> contexts,
                                         com.fasterxml.jackson.core.JsonGenerator jg)
                                  throws com.fasterxml.jackson.core.JsonGenerationException,
                                         IOException

      Helper method to reduce complexity of the JSON serialisation algorithm Any null contexts will only be serialised to JSON if there are also non-null contexts in the contexts array
      Parameters:
        `object` - The RDF value to serialise
        `contexts` - The set of contexts that are relevant to this object, including null contexts as they are found.
        `jg` - the `JsonGenerator` to write to.
      Throws:
        `IOException`
        `com.fasterxml.jackson.core.JsonGenerationException`

    - #### resourceToString

          public static String resourceToString​(Resource uriOrBnode)

      Returns the correct syntax for a Resource, depending on whether it is a URI or a Blank Node (ie, BNode)
      Parameters:
        `uriOrBnode` - The resource to serialise to a string
      Returns:
        The string value of the sesame resource

    - #### modelToRdfJsonInternal

          public static void modelToRdfJsonInternal​(Model graph,
                                                    WriterConfig writerConfig,
                                                    com.fasterxml.jackson.core.JsonGenerator jg)
                                             throws IOException

      Throws:
        `IOException`