Class GraphSONReader
- java.lang.Object
-
- org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONReader
-
- All Implemented Interfaces:
GraphReader
public final class GraphSONReader extends Object implements GraphReader
A @{link GraphReader} that constructs a graph from a JSON-based representation of a graph and its elements. This implementation only supports JSON data types and is therefore lossy with respect to data types (e.g. a float will become a double, element IDs may not be retrieved in the format they were serialized, etc.).Edge
andVertex
objects are serialized toMap
instances. If anElement
is used as a key, it is coerced to its identifier. Other complex objects are converted viaObject.toString()
unless there is a mapper serializer supplied.- Author:
- Stephen Mallette (http://stephen.genoprime.com)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
GraphSONReader.Builder
-
Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.structure.io.GraphReader
GraphReader.ReaderBuilder<T extends GraphReader>
-
-
Method Summary
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.tinkerpop.gremlin.structure.io.GraphReader
readVertex
-
-
-
-
Method Detail
-
readGraph
public void readGraph(InputStream inputStream, Graph graphToWriteTo) throws IOException
Read data into aGraph
from output generated by any of theGraphSONWriter
writeVertex
orwriteVertices
methods or byGryoWriter.writeGraph(OutputStream, Graph)
.- Specified by:
readGraph
in interfaceGraphReader
- Parameters:
inputStream
- a stream containing an entire graph of vertices and edges as defined by the accompanyingGraphSONWriter.writeGraph(OutputStream, Graph)
.graphToWriteTo
- the graph to write to when reading from the stream.- Throws:
IOException
-
readVertices
public Iterator<Vertex> readVertices(InputStream inputStream, Function<Attachable<Vertex>,Vertex> vertexAttachMethod, Function<Attachable<Edge>,Edge> edgeAttachMethod, Direction attachEdgesOfThisDirection) throws IOException
ReadVertex
objects from output generated by any of theGraphSONWriter
writeVertex
orwriteVertices
methods or byGraphSONWriter.writeGraph(OutputStream, Graph)
.- Specified by:
readVertices
in interfaceGraphReader
- Parameters:
inputStream
- a stream containing at least oneVertex
as defined by the accompanyingGraphWriter.writeVertices(OutputStream, Iterator, Direction)
orGraphWriter.writeVertices(OutputStream, Iterator)
methods.vertexAttachMethod
- a function that creates re-attaches aVertex
to aHost
object.edgeAttachMethod
- a function that creates re-attaches aEdge
to aHost
object.attachEdgesOfThisDirection
- only edges of this direction are passed to theedgeMaker
.- Throws:
IOException
-
readVertex
public Vertex readVertex(InputStream inputStream, Function<Attachable<Vertex>,Vertex> vertexAttachMethod) throws IOException
Read aVertex
from output generated by any of theGraphSONWriter
writeVertex
orwriteVertices
methods or byGraphSONWriter.writeGraph(OutputStream, Graph)
.- Specified by:
readVertex
in interfaceGraphReader
- Parameters:
inputStream
- a stream containing at least a single vertex as defined by the accompanyingGraphWriter.writeVertex(OutputStream, Vertex)
.vertexAttachMethod
- a function that creates re-attaches aVertex
to aHost
object.- Throws:
IOException
-
readVertex
public Vertex readVertex(InputStream inputStream, Function<Attachable<Vertex>,Vertex> vertexAttachMethod, Function<Attachable<Edge>,Edge> edgeAttachMethod, Direction attachEdgesOfThisDirection) throws IOException
Read aVertex
from output generated by any of theGraphSONWriter
writeVertex
orwriteVertices
methods or byGraphSONWriter.writeGraph(OutputStream, Graph)
.- Specified by:
readVertex
in interfaceGraphReader
- Parameters:
inputStream
- a stream containing at least oneVertex
as defined by the accompanyingGraphWriter.writeVertices(OutputStream, Iterator, Direction)
method.vertexAttachMethod
- a function that creates re-attaches aVertex
to aHost
object.edgeAttachMethod
- a function that creates re-attaches aEdge
to aHost
object.attachEdgesOfThisDirection
- only edges of this direction are passed to theedgeMaker
.- Throws:
IOException
-
readEdge
public Edge readEdge(InputStream inputStream, Function<Attachable<Edge>,Edge> edgeAttachMethod) throws IOException
Read anEdge
from output generated byGraphSONWriter.writeEdge(OutputStream, Edge)
or via anEdge
passed toGraphSONWriter.writeObject(OutputStream, Object)
.- Specified by:
readEdge
in interfaceGraphReader
- Parameters:
inputStream
- a stream containing at least oneEdge
as defined by the accompanyingGraphWriter.writeEdge(OutputStream, Edge)
method.edgeAttachMethod
- a function that creates re-attaches aEdge
to aHost
object.- Throws:
IOException
-
readVertexProperty
public VertexProperty readVertexProperty(InputStream inputStream, Function<Attachable<VertexProperty>,VertexProperty> vertexPropertyAttachMethod) throws IOException
Read aVertexProperty
from output generated byGraphSONWriter.writeVertexProperty(OutputStream, VertexProperty)
or via anVertexProperty
passed toGraphSONWriter.writeObject(OutputStream, Object)
.- Specified by:
readVertexProperty
in interfaceGraphReader
- Parameters:
inputStream
- a stream containing at least oneVertexProperty
as written by the accompanyingGraphWriter.writeVertexProperty(OutputStream, VertexProperty)
method.vertexPropertyAttachMethod
- a function that creates re-attaches aVertexProperty
to aHost
object.- Returns:
- the value returned by the attach method.
- Throws:
IOException
-
readProperty
public Property readProperty(InputStream inputStream, Function<Attachable<Property>,Property> propertyAttachMethod) throws IOException
Read aProperty
from output generated byGraphSONWriter.writeProperty(OutputStream, Property)
or via anProperty
passed toGraphSONWriter.writeObject(OutputStream, Object)
.- Specified by:
readProperty
in interfaceGraphReader
- Parameters:
inputStream
- a stream containing at least oneProperty
as written by the accompanyingGraphWriter.writeProperty(OutputStream, Property)
method.propertyAttachMethod
- a function that creates re-attaches aProperty
to aHost
object.- Returns:
- the value returned by the attach method.
- Throws:
IOException
-
readObject
public <C> C readObject(InputStream inputStream, Class<? extends C> clazz) throws IOException
Reads an arbitrary object using the registered serializers.- Specified by:
readObject
in interfaceGraphReader
- Parameters:
inputStream
- a stream containing an object.clazz
- the class expected to be in the stream - may or may not be used by the underlying implementation.- Throws:
IOException
-
build
public static GraphSONReader.Builder build()
-
-