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 CharSink
RDFWriterimplementation for the RDF/JSON format
-
-
Field Summary
Fields Modifier and Type Field Description private RDFFormatactualFormatprivate Modelgraphprivate booleanisEmptyStreamprivate booleanisStreamingprivate com.fasterxml.jackson.core.JsonGeneratorjgprivate IRIlastWrittenPredicateprivate ResourcelastWrittenSubjectprivate java.io.Writerwriter-
Fields inherited from class org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
namespaceTable, statementConsumer
-
-
Constructor Summary
Constructors Constructor Description RDFJSONWriter(java.io.OutputStream out, RDFFormat actualFormat)RDFJSONWriter(java.io.Writer writer, RDFFormat actualFormat)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private com.fasterxml.jackson.core.JsonFactoryconfigureNewJsonFactory()Get an instance of JsonFactory.voidconsumeStatement(Statement statement)Consume a statement.private voidconsumeStreamingStatement(Statement statement)Consumes statement when RDF/JSON writer is streaming output.voidendRDF()Signals the end of the RDF data.RDFFormatgetRDFFormat()Gets the RDF format that this RDFWriter uses.java.util.Collection<RioSetting<?>>getSupportedSettings()java.io.WritergetWriter()get theWriterused by thisCharSink.voidhandleComment(java.lang.String comment)Handles a comment.voidhandleNamespace(java.lang.String prefix, java.lang.String uri)Handles a namespace declaration/definition.static voidmodelToRdfJsonInternal(Model graph, WriterConfig writerConfig, com.fasterxml.jackson.core.JsonGenerator jg)static java.lang.StringresourceToString(Resource uriOrBnode)Returns the correct syntax for a Resource, depending on whether it is a URI or a Blank Node (ie, BNode)voidstartRDF()Signals the start of the RDF data.static voidwriteObject(Value object, java.util.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.common.io.Sink
acceptsFileFormat, getFileFormat
-
-
-
-
Field Detail
-
writer
private final java.io.Writer writer
-
actualFormat
private final RDFFormat actualFormat
-
graph
private Model graph
-
lastWrittenSubject
private Resource lastWrittenSubject
-
lastWrittenPredicate
private IRI lastWrittenPredicate
-
jg
private com.fasterxml.jackson.core.JsonGenerator jg
-
isEmptyStream
private boolean isEmptyStream
-
isStreaming
private boolean isStreaming
-
-
Method Detail
-
getWriter
public java.io.Writer getWriter()
Description copied from interface:CharSinkget theWriterused by thisCharSink.
-
startRDF
public void startRDF() throws RDFHandlerExceptionDescription copied from interface:RDFHandlerSignals the start of the RDF data. This method is called before any data is reported.- Specified by:
startRDFin interfaceRDFHandler- Overrides:
startRDFin classAbstractRDFWriter- Throws:
RDFHandlerException- If the RDF handler has encountered an unrecoverable error.
-
endRDF
public void endRDF() throws RDFHandlerExceptionDescription copied from interface:RDFHandlerSignals the end of the RDF data. This method is called when all data has been reported.- Specified by:
endRDFin interfaceRDFHandler- Throws:
RDFHandlerException- If the RDF handler has encountered an unrecoverable error.
-
getRDFFormat
public RDFFormat getRDFFormat()
Description copied from interface:RDFWriterGets the RDF format that this RDFWriter uses.- Specified by:
getRDFFormatin interfaceRDFWriter
-
getSupportedSettings
public java.util.Collection<RioSetting<?>> getSupportedSettings()
- Specified by:
getSupportedSettingsin interfaceRDFWriter- Overrides:
getSupportedSettingsin classAbstractRDFWriter- Returns:
- A collection of
RioSettings that are supported by this RDFWriter.
-
handleComment
public void handleComment(java.lang.String comment) throws RDFHandlerExceptionDescription copied from interface:RDFHandlerHandles a comment.- Specified by:
handleCommentin interfaceRDFHandler- Parameters:
comment- The comment.- Throws:
RDFHandlerException- If the RDF handler has encountered an unrecoverable error.
-
handleNamespace
public void handleNamespace(java.lang.String prefix, java.lang.String uri) throws RDFHandlerExceptionDescription copied from interface:RDFHandlerHandles 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:
handleNamespacein interfaceRDFHandler- Overrides:
handleNamespacein classAbstractRDFWriter- 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:AbstractRDFWriterConsume 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:
consumeStatementin classAbstractRDFWriter- Parameters:
statement- the statement to consume.- Throws:
RDFHandlerException
-
writeObject
public static void writeObject(Value object, java.util.Set<Resource> contexts, com.fasterxml.jackson.core.JsonGenerator jg) throws com.fasterxml.jackson.core.JsonGenerationException, java.io.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 serialisecontexts- The set of contexts that are relevant to this object, including null contexts as they are found.jg- theJsonGeneratorto write to.- Throws:
java.io.IOExceptioncom.fasterxml.jackson.core.JsonGenerationException
-
resourceToString
public static java.lang.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 RDF4J resource
-
modelToRdfJsonInternal
public static void modelToRdfJsonInternal(Model graph, WriterConfig writerConfig, com.fasterxml.jackson.core.JsonGenerator jg) throws java.io.IOException
- Throws:
java.io.IOException
-
configureNewJsonFactory
private com.fasterxml.jackson.core.JsonFactory configureNewJsonFactory()
Get an instance of JsonFactory.- Returns:
- A newly configured JsonFactory based on the currently enabled settings
-
consumeStreamingStatement
private void consumeStreamingStatement(Statement statement) throws RDFHandlerException
Consumes statement when RDF/JSON writer is streaming output.- Throws:
RDFHandlerException
-
-