Package org.eclipse.rdf4j.rio.binary
Class BinaryRDFWriter
- java.lang.Object
-
- org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
-
- org.eclipse.rdf4j.rio.binary.BinaryRDFWriter
-
- All Implemented Interfaces:
ByteSink,Sink,RDFHandler,RDFWriter
public class BinaryRDFWriter extends AbstractRDFWriter implements ByteSink
ARDFWriterfor the binary RDF format.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classBinaryRDFWriter.ValueMetaHolds the frequency of a value within the currentstatementQueueas well as an identifier if any has been assigned.
-
Field Summary
Fields Modifier and Type Field Description private intbufferSizeprivate java.nio.charset.Charsetcharsetprivate intformatVersionprivate java.util.Queue<java.lang.Integer>idPoolprivate intnextIdprivate java.io.DataOutputStreamoutprivate booleanrecycleIdsprivate java.util.Queue<Statement>statementQueueprivate java.util.Map<Value,BinaryRDFWriter.ValueMeta>valueMeta-
Fields inherited from class org.eclipse.rdf4j.rio.helpers.AbstractRDFWriter
namespaceTable, statementConsumer
-
-
Constructor Summary
Constructors Constructor Description BinaryRDFWriter(java.io.OutputStream out)BinaryRDFWriter(java.io.OutputStream out, int bufferSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidassignId(Value v, BinaryRDFWriter.ValueMeta meta)protected voidconsumeStatement(Statement st)Consume a statement.voidendRDF()Signals the end of the RDF data.java.io.OutputStreamgetOutputStream()get theOutputStreamused by thisByteSink.RDFFormatgetRDFFormat()Gets the RDF format that this RDFWriter uses.java.util.Collection<RioSetting<?>>getSupportedSettings()voidhandleComment(java.lang.String comment)Handles a comment.voidhandleNamespace(java.lang.String prefix, java.lang.String uri)Handles a namespace declaration/definition.private voidhandleWriterConfig()private voidincValueFreq(Value v)voidstartRDF()Signals the start of the RDF data.private voidwriteBNode(BNode bnode)private voidwriteInt(int i)private voidwriteLiteral(Literal literal)private voidwriteStatement()Writes the first statement from the statement queueprivate voidwriteString(java.lang.String s)private voidwriteTriple(Triple triple)private voidwriteURI(IRI uri)private voidwriteValue(Value value)private voidwriteValueOrId(Value value)-
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
-
statementQueue
private final java.util.Queue<Statement> statementQueue
-
bufferSize
private int bufferSize
-
valueMeta
private final java.util.Map<Value,BinaryRDFWriter.ValueMeta> valueMeta
-
nextId
private int nextId
-
idPool
private final java.util.Queue<java.lang.Integer> idPool
-
out
private final java.io.DataOutputStream out
-
formatVersion
private int formatVersion
-
charset
private java.nio.charset.Charset charset
-
recycleIds
private boolean recycleIds
-
-
Method Detail
-
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.
-
getOutputStream
public java.io.OutputStream getOutputStream()
Description copied from interface:ByteSinkget theOutputStreamused by thisByteSink.- Specified by:
getOutputStreamin interfaceByteSink- Returns:
- an
OutputStream
-
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.
-
handleWriterConfig
private void handleWriterConfig()
-
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.
-
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.
-
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.
-
consumeStatement
protected void consumeStatement(Statement st)
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:
st- the statement to consume.
-
writeStatement
private void writeStatement() throws RDFHandlerException, java.io.IOExceptionWrites the first statement from the statement queue- Throws:
RDFHandlerExceptionjava.io.IOException
-
incValueFreq
private void incValueFreq(Value v)
-
assignId
private void assignId(Value v, BinaryRDFWriter.ValueMeta meta)
-
writeValueOrId
private void writeValueOrId(Value value) throws RDFHandlerException, java.io.IOException
- Throws:
RDFHandlerExceptionjava.io.IOException
-
writeValue
private void writeValue(Value value) throws RDFHandlerException, java.io.IOException
- Throws:
RDFHandlerExceptionjava.io.IOException
-
writeURI
private void writeURI(IRI uri) throws java.io.IOException
- Throws:
java.io.IOException
-
writeBNode
private void writeBNode(BNode bnode) throws java.io.IOException
- Throws:
java.io.IOException
-
writeLiteral
private void writeLiteral(Literal literal) throws java.io.IOException
- Throws:
java.io.IOException
-
writeTriple
private void writeTriple(Triple triple) throws java.io.IOException
- Throws:
java.io.IOException
-
writeString
private void writeString(java.lang.String s) throws java.io.IOException- Throws:
java.io.IOException
-
writeInt
private void writeInt(int i) throws java.io.IOException- Throws:
java.io.IOException
-
-