public final class StarGraph extends Object implements Graph, Serializable
StarGraph
is a form of Attachable
(though the Graph
implementation does not implement
that interface itself). It is a very limited Graph
implementation that holds a single Vertex
and its related properties and edges (and their properties). It is designed to be an efficient memory
representation of this data structure, thus making it good for network and disk-based serialization.Modifier and Type | Class and Description |
---|---|
static class |
StarGraph.Builder
StarGraph builder with options to customize its internals
|
class |
StarGraph.StarAdjacentVertex |
class |
StarGraph.StarEdge |
class |
StarGraph.StarElement<E extends Element> |
static class |
StarGraph.StarGraphFeatures |
class |
StarGraph.StarInEdge |
class |
StarGraph.StarOutEdge |
class |
StarGraph.StarProperty<V> |
class |
StarGraph.StarVertex |
class |
StarGraph.StarVertexProperty<V> |
Graph.Exceptions, Graph.Features, Graph.Hidden, Graph.OptIn, Graph.OptIns, Graph.OptOut, Graph.OptOuts, Graph.Variables
Modifier and Type | Field and Description |
---|---|
protected boolean |
compareIdsUsingStrings |
protected Map<Object,Map<String,Object>> |
edgeProperties |
protected boolean |
internStrings |
protected Map<Object,Map<String,Object>> |
metaProperties |
protected Long |
nextId |
protected StarGraph.StarVertex |
starVertex |
Modifier and Type | Method and Description |
---|---|
Vertex |
addVertex(Object... keyValues)
Add a
Vertex to the graph given an optional series of key/value pairs. |
Optional<StarGraph> |
applyGraphFilter(GraphFilter graphFilter) |
static StarGraph.Builder |
build() |
void |
close()
Closing a
Graph is equivalent to "shutdown" and implies that no further operations can be executed on
the instance. |
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. |
org.apache.commons.configuration2.Configuration |
configuration()
Get the
Configuration associated with the construction of this graph. |
Iterator<Edge> |
edges(Object... edgeIds)
|
Graph.Features |
features()
Gets the
Graph.Features exposed by the underlying Graph implementation. |
StarGraph.StarVertex |
getStarVertex()
|
static StarGraph |
of(Vertex vertex)
|
static StarGraph |
open()
Creates an empty
StarGraph . |
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, io, traversal, traversal, tx
getHostingVertex
protected Long nextId
protected StarGraph.StarVertex starVertex
protected final boolean internStrings
protected final boolean compareIdsUsingStrings
public StarGraph.StarVertex getStarVertex()
public <C extends GraphComputer> C compute(Class<C> graphComputerClass) throws IllegalArgumentException
Graph
GraphComputer
to use for OLAP operations on the graph.
If the graph does not support graph computer then an UnsupportedOperationException
is thrown.compute
in interface Graph
graphComputerClass
- The graph computer class to use.IllegalArgumentException
- if the provided GraphComputer
class is not supported.public GraphComputer compute() throws IllegalArgumentException
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)
.compute
in interface Graph
IllegalArgumentException
- if there is no default graph computerpublic 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 Transaction tx()
Graph
public Graph.Variables variables()
Graph
Graph.Variables
associated with the graph.
Variables are used for storing metadata about the graph.public org.apache.commons.configuration2.Configuration configuration()
Graph
Configuration
associated with the construction of this graph. Whatever configuration was passed
to GraphFactory.open(Configuration)
is what should be returned by this method.configuration
in interface Graph
public Graph.Features features()
Graph
Graph.Features
exposed by the underlying Graph
implementation.public void close() throws Exception
Graph
Graph
is equivalent to "shutdown" and implies that no further operations can be executed on
the instance. Users should consult the documentation of the underlying graph database implementation for what
this "shutdown" will mean in general and, if supported, how open transactions are handled. It will typically
be the end user's responsibility to synchronize the thread that calls close()
with other threads that
are accessing open transactions. In other words, be sure that all work performed on the Graph
instance
is complete prior to calling this method.
TinkerPop does not enforce any particular semantics with respect to "shutdown". It is up to the graph provider
to decide what this method will do.close
in interface AutoCloseable
close
in interface Graph
Exception
public static StarGraph.Builder build()
public Optional<StarGraph> applyGraphFilter(GraphFilter graphFilter)
Copyright © 2013–2022 Apache Software Foundation. All rights reserved.