public final class TinkerGraph extends Object implements Graph
close()
), reference implementation of the property
graph interfaces provided by TinkerPop.Modifier and Type | Class and Description |
---|---|
static class |
TinkerGraph.DefaultIdManager
A default set of
TinkerGraph.IdManager implementations for common identifier types. |
static interface |
TinkerGraph.IdManager<T>
TinkerGraph will use an implementation of this interface to generate identifiers when a user does not supply
them and to handle identifier conversions when querying to provide better flexibility with respect to
handling different data types that mean the same thing.
|
class |
TinkerGraph.TinkerGraphEdgeFeatures |
class |
TinkerGraph.TinkerGraphFeatures |
class |
TinkerGraph.TinkerGraphGraphFeatures |
class |
TinkerGraph.TinkerGraphVertexFeatures |
class |
TinkerGraph.TinkerGraphVertexPropertyFeatures |
Graph.Exceptions, Graph.Features, Graph.Hidden, Graph.OptIn, Graph.OptIns, Graph.OptOut, Graph.OptOuts, Graph.Variables
Modifier and Type | Field and Description |
---|---|
protected AtomicLong |
currentId |
protected VertexProperty.Cardinality |
defaultVertexPropertyCardinality |
protected TinkerGraph.IdManager<?> |
edgeIdManager |
protected org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIndex<TinkerEdge> |
edgeIndex |
protected Map<Object,Edge> |
edges |
protected TinkerGraphComputerView |
graphComputerView |
static String |
GREMLIN_TINKERGRAPH_DEFAULT_VERTEX_PROPERTY_CARDINALITY |
static String |
GREMLIN_TINKERGRAPH_EDGE_ID_MANAGER |
static String |
GREMLIN_TINKERGRAPH_GRAPH_FORMAT |
static String |
GREMLIN_TINKERGRAPH_GRAPH_LOCATION |
static String |
GREMLIN_TINKERGRAPH_VERTEX_ID_MANAGER |
static String |
GREMLIN_TINKERGRAPH_VERTEX_PROPERTY_ID_MANAGER |
protected TinkerGraphVariables |
variables |
protected TinkerGraph.IdManager<?> |
vertexIdManager |
protected org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIndex<TinkerVertex> |
vertexIndex |
protected TinkerGraph.IdManager<?> |
vertexPropertyIdManager |
protected Map<Object,Vertex> |
vertices |
Modifier and Type | Method and Description |
---|---|
Vertex |
addVertex(Object... keyValues)
Add a
Vertex to the graph given an optional series of key/value pairs. |
void |
clear() |
void |
close()
This method only has an effect if the
GREMLIN_TINKERGRAPH_GRAPH_LOCATION is set, in which case the
data in the graph is persisted to that location. |
GraphComputer |
compute()
Generate a
GraphComputer using the default engine of the underlying graph system. |
<C extends GraphComputer> |
compute(Class<C> graphComputerClass)
Declare the
GraphComputer to use for OLAP operations on the graph. |
Configuration |
configuration()
Get the
org.apache.commons.configuration.Configuration associated with the construction of this graph. |
<E extends Element> |
createIndex(String key,
Class<E> elementClass)
|
<E extends Element> |
dropIndex(String key,
Class<E> elementClass)
|
Iterator<Edge> |
edges(Object... edgeIds)
|
Graph.Features |
features()
Return TinkerGraph feature set.
|
<E extends Element> |
getIndexedKeys(Class<E> elementClass)
|
<I extends Io> |
io(Io.Builder<I> builder)
Construct a particular
Io implementation for reading and writing the Graph and other data. |
static TinkerGraph |
open()
Open a new
TinkerGraph instance. |
static TinkerGraph |
open(Configuration configuration)
Open a new
TinkerGraph instance. |
String |
toString() |
Transaction |
tx()
Configure and control the transactions for those graphs that support this feature.
|
Graph.Variables |
variables()
A collection of global
Graph.Variables associated with the graph. |
Iterator<Vertex> |
vertices(Object... vertexIds)
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addVertex, traversal, traversal
getHostingVertex
public static final String GREMLIN_TINKERGRAPH_VERTEX_ID_MANAGER
public static final String GREMLIN_TINKERGRAPH_EDGE_ID_MANAGER
public static final String GREMLIN_TINKERGRAPH_VERTEX_PROPERTY_ID_MANAGER
public static final String GREMLIN_TINKERGRAPH_DEFAULT_VERTEX_PROPERTY_CARDINALITY
public static final String GREMLIN_TINKERGRAPH_GRAPH_LOCATION
public static final String GREMLIN_TINKERGRAPH_GRAPH_FORMAT
protected AtomicLong currentId
protected TinkerGraphVariables variables
protected TinkerGraphComputerView graphComputerView
protected org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIndex<TinkerVertex> vertexIndex
protected org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerIndex<TinkerEdge> edgeIndex
protected final TinkerGraph.IdManager<?> vertexIdManager
protected final TinkerGraph.IdManager<?> edgeIdManager
protected final TinkerGraph.IdManager<?> vertexPropertyIdManager
protected final VertexProperty.Cardinality defaultVertexPropertyCardinality
public static TinkerGraph open()
TinkerGraph
instance.
Reference Implementation Help: If a Graph
implementation does not require a Configuration
(or perhaps has a default configuration) it can choose to implement a zero argument
open()
method. This is an optional constructor method for TinkerGraph. It is not enforced by the Gremlin
Test Suite.public static TinkerGraph open(Configuration configuration)
TinkerGraph
instance.
Reference Implementation Help: This method is the one use by the GraphFactory
to instantiate
Graph
instances. This method must be overridden for the Structure Test Suite to pass. Implementers have
latitude in terms of how exceptions are handled within this method. Such exceptions will be considered
implementation specific by the test suite as all test generate graph instances by way of
GraphFactory
. As such, the exceptions get generalized behind that facade and since
GraphFactory
is the preferred method to opening graphs it will be consistent at that level.configuration
- the configuration for the instanceGraph
public <C extends GraphComputer> C compute(Class<C> graphComputerClass)
Graph
GraphComputer
to use for OLAP operations on the graph.
If the graph does not support graph computer then an UnsupportedOperationException
is thrown.public GraphComputer compute()
Graph
GraphComputer
using the default engine of the underlying graph system.
This is a shorthand method for the more involved method that uses Graph.compute(Class)
.public Graph.Variables variables()
Graph
Graph.Variables
associated with the graph.
Variables are used for storing metadata about the graph.public <I extends Io> I io(Io.Builder<I> builder)
Graph
Io
implementation for reading and writing the Graph
and other data.
End-users will "select" the Io
implementation that they want to use by supplying the
Io.Builder
that constructs it. In this way, Graph
vendors can supply their IoRegistry
to that builder thus allowing for custom serializers to be
auto-configured into the Io
instance. Registering custom serializers is particularly useful for those
graphs that have complex types for Element
identifiers.
For those graphs that do not need to register any custom serializers, the default implementation should suffice.
If the default is overridden, take care to register the current graph via the
Io.Builder.graph(Graph)
method.public void clear()
public void close()
GREMLIN_TINKERGRAPH_GRAPH_LOCATION
is set, in which case the
data in the graph is persisted to that location. This method may be called multiple times and does not release
resources.close
in interface AutoCloseable
close
in interface Graph
public Transaction tx()
Graph
Transaction
in the TinkerPop context is a
transaction "factory" or "controller" that helps manage transactions owned by the underlying graph database.public Configuration configuration()
Graph
org.apache.commons.configuration.Configuration
associated with the construction of this graph.
Whatever configuration was passed to GraphFactory#open(org.apache.commons.configuration.Configuration)
is what should be returned by this method.configuration
in interface Graph
public Iterator<Vertex> vertices(Object... vertexIds)
Graph
Vertex
objects in this graph with the provided vertex ids or Vertex
objects themselves.
If no ids are provided, get all vertices. Note that a vertex identifier does not need to correspond to the
actual id used in the graph. It needs to be a bit more flexible than that in that given the
Graph.Features
around id support, multiple arguments might be applicable here.
If the graph return true
for Graph.Features.ElementFeatures.supportsNumericIds()
then it should support
filters as with:
true
for Graph.Features.ElementFeatures.supportsCustomIds()
()} then it should support
filters as with:
true
for Graph.Features.ElementFeatures.supportsAnyIds()
()} then it should support
filters as with:
true
for Graph.Features.ElementFeatures.supportsStringIds()
()} then it should support
filters as with:
true
for Graph.Features.ElementFeatures.supportsStringIds()
()} then it should support
filters as with:
public Iterator<Edge> edges(Object... edgeIds)
Graph
Edge
objects in this graph with the provided edge ids or Edge
objects. If no ids are
provided, get all edges. Note that an edge identifier does not need to correspond to the actual id used in the
graph. It needs to be a bit more flexible than that in that given the Graph.Features
around id support,
multiple arguments might be applicable here.
If the graph return true
for Graph.Features.ElementFeatures.supportsNumericIds()
then it should support
filters as with:
true
for Graph.Features.ElementFeatures.supportsCustomIds()
()} then it should support
filters as with:
true
for Graph.Features.ElementFeatures.supportsAnyIds()
()} then it should support
filters as with:
true
for Graph.Features.ElementFeatures.supportsStringIds()
()} then it should support
filters as with:
public Graph.Features features()
Graph.Features
return true.public <E extends Element> void createIndex(String key, Class<E> elementClass)
Vertex
or Edge
) and said property key.
Whenever an element has the specified key mutated, the index is updated.
When the index is created, all existing elements are indexed to ensure that they are captured by the index.E
- The type of the element classkey
- the property key to indexelementClass
- the element class to indexpublic <E extends Element> void dropIndex(String key, Class<E> elementClass)
E
- The type of the element classkey
- the property key to stop indexingelementClass
- the element class of the index to dropCopyright © 2013–2018 Apache Software Foundation. All rights reserved.