Interface GraphWriter
-
- All Known Implementing Classes:
GraphMLWriter
,GraphSONWriter
,GryoWriter
public interface GraphWriter
Functions for writing a graph and its elements to a serialized format. Implementations of this class do not need to explicitly guarantee that an object written with one method must have its format equivalent to another. In other words, callingwriteVertex(OutputStream, Vertex)
} need not have equivalent output towriteObject(OutputStream, Object)
. Nor does the representation of anEdge
within the output ofwriteVertex(OutputStream, Vertex, Direction)
need to match the representation of that sameEdge
when provided towriteEdge(OutputStream, Edge)
. In other words, implementations are free to optimize as is possible for a specific serialization method. That said, it is however important that the complementary "read" operation inGraphReader
be capable of reading the output of the writer. In other words, the output ofwriteObject(OutputStream, Object)
should always be readable byGraphReader.readObject(InputStream, Class)
and the output ofwriteGraph(OutputStream, Graph)
should always be readable byGraphReader.readGraph(InputStream, Graph)
.- Author:
- Stephen Mallette (http://stephen.genoprime.com)
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
GraphWriter.WriterBuilder<T extends GraphWriter>
Largely a marker interface for builder classes that construct aGraphWriter
.
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description void
writeEdge(OutputStream outputStream, Edge e)
Write an edge to a stream.void
writeGraph(OutputStream outputStream, Graph g)
Write the entire graph to a stream.void
writeObject(OutputStream outputStream, Object object)
Writes an arbitrary object to the stream.void
writeProperty(OutputStream outputStream, Property p)
Write a property to a stream.void
writeVertex(OutputStream outputStream, Vertex v)
Write a vertex to a stream without writing its edges.void
writeVertex(OutputStream outputStream, Vertex v, Direction direction)
Write a vertex to a stream with its associated edges.void
writeVertexProperty(OutputStream outputStream, VertexProperty vp)
Write a vertex property to a stream.default void
writeVertices(OutputStream outputStream, Iterator<Vertex> vertexIterator)
Write a vertex to a stream without writing its edges.default void
writeVertices(OutputStream outputStream, Iterator<Vertex> vertexIterator, Direction direction)
Write a list of vertices from aTraversal
to a stream with its associated edges.
-
-
-
Method Detail
-
writeGraph
void writeGraph(OutputStream outputStream, Graph g) throws IOException
Write the entire graph to a stream.- Parameters:
outputStream
- the stream to write to.g
- the graph to write to stream.- Throws:
IOException
-
writeVertex
void writeVertex(OutputStream outputStream, Vertex v, Direction direction) throws IOException
Write a vertex to a stream with its associated edges. Only write edges as defined by the requested direction.- Parameters:
outputStream
- the stream to write to.v
- the vertex to write.direction
- the direction of edges to write or null if no edges are to be written.- Throws:
IOException
-
writeVertex
void writeVertex(OutputStream outputStream, Vertex v) throws IOException
Write a vertex to a stream without writing its edges.- Parameters:
outputStream
- the stream to write to.v
- the vertex to write.- Throws:
IOException
-
writeVertices
default void writeVertices(OutputStream outputStream, Iterator<Vertex> vertexIterator, Direction direction) throws IOException
Write a list of vertices from aTraversal
to a stream with its associated edges. Only write edges as defined by the requested direction.- Parameters:
outputStream
- the stream to write to.vertexIterator
- a traversal that returns a list of vertices.direction
- the direction of edges to write or null if no edges are to be written.- Throws:
IOException
-
writeVertices
default void writeVertices(OutputStream outputStream, Iterator<Vertex> vertexIterator) throws IOException
Write a vertex to a stream without writing its edges.- Parameters:
outputStream
- the stream to write to.vertexIterator
- a iterator that returns a list of vertices.- Throws:
IOException
-
writeEdge
void writeEdge(OutputStream outputStream, Edge e) throws IOException
Write an edge to a stream.- Parameters:
outputStream
- the stream to write to.e
- the edge to write.- Throws:
IOException
-
writeVertexProperty
void writeVertexProperty(OutputStream outputStream, VertexProperty vp) throws IOException
Write a vertex property to a stream.- Parameters:
outputStream
- the stream to write to.vp
- the vertex property to write.- Throws:
IOException
-
writeProperty
void writeProperty(OutputStream outputStream, Property p) throws IOException
Write a property to a stream.- Parameters:
outputStream
- the stream to write to.p
- the property to write.- Throws:
IOException
-
writeObject
void writeObject(OutputStream outputStream, Object object) throws IOException
Writes an arbitrary object to the stream.- Parameters:
outputStream
- the stream to write to.object
- the object to write which will use the standard serializer set.- Throws:
IOException
-
-