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, calling
writeVertex(OutputStream, Vertex)} need not have equivalent output to
writeObject(OutputStream, Object). Nor does the representation of an Edge within the output of
writeVertex(OutputStream, Vertex, Direction) need to match the representation of that same
Edge when provided to writeEdge(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 in GraphReader be capable of
reading the output of the writer. In other words, the output of writeObject(OutputStream, Object)
should always be readable by GraphReader.readObject(InputStream, Class) and the output of
writeGraph(OutputStream, Graph) should always be readable by
GraphReader.readGraph(InputStream, Graph).- Author:
- Stephen Mallette (http://stephen.genoprime.com)
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceGraphWriter.WriterBuilder<T extends GraphWriter>Largely a marker interface for builder classes that construct aGraphWriter. -
Method Summary
Modifier and TypeMethodDescriptionvoidwriteEdge(OutputStream outputStream, Edge e) Write an edge to a stream.voidwriteGraph(OutputStream outputStream, Graph g) Write the entire graph to a stream.voidwriteObject(OutputStream outputStream, Object object) Writes an arbitrary object to the stream.voidwriteProperty(OutputStream outputStream, Property p) Write a property to a stream.voidwriteVertex(OutputStream outputStream, Vertex v) Write a vertex to a stream without writing its edges.voidwriteVertex(OutputStream outputStream, Vertex v, Direction direction) Write a vertex to a stream with its associated edges.voidwriteVertexProperty(OutputStream outputStream, VertexProperty vp) Write a vertex property to a stream.default voidwriteVertices(OutputStream outputStream, Iterator<Vertex> vertexIterator) Write a vertex to a stream without writing its edges.default voidwriteVertices(OutputStream outputStream, Iterator<Vertex> vertexIterator, Direction direction) Write a list of vertices from aTraversalto a stream with its associated edges.
-
Method Details
-
writeGraph
Write the entire graph to a stream.- Parameters:
outputStream- the stream to write to.g- the graph to write to stream.- Throws:
IOException
-
writeVertex
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
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 aTraversalto 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
Write an edge to a stream.- Parameters:
outputStream- the stream to write to.e- the edge to write.- Throws:
IOException
-
writeVertexProperty
Write a vertex property to a stream.- Parameters:
outputStream- the stream to write to.vp- the vertex property to write.- Throws:
IOException
-
writeProperty
Write a property to a stream.- Parameters:
outputStream- the stream to write to.p- the property to write.- Throws:
IOException
-
writeObject
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
-