Interface Vertex
-
- All Known Implementing Classes:
ComputerGraph.ComputerAdjacentVertex
,ComputerGraph.ComputerVertex
,DetachedVertex
,ReferenceVertex
,StarGraph.StarAdjacentVertex
,StarGraph.StarVertex
,TinkerVertex
public interface Vertex extends Element, Host
AVertex
maintains pointers to both a set of incoming and outgoingEdge
objects. The outgoing edges are those edges for which theVertex
is the tail. The incoming edges are those edges for which theVertex
is the head. Diagrammatically:---inEdges---> vertex ---outEdges--->.
- Author:
- Marko A. Rodriguez (http://markorodriguez.com), Stephen Mallette (http://stephen.genoprime.com)
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
Vertex.Exceptions
Common exceptions to use with a vertex.
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_LABEL
The default label to use for a vertex.static Object[]
EMPTY_ARGS
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description Edge
addEdge(String label, Vertex inVertex, Object... keyValues)
Add an outgoing edge to the vertex with provided label and edge properties as key/value pairs.Iterator<Edge>
edges(Direction direction, String... edgeLabels)
Gets anIterator
of incident edges.<V> Iterator<VertexProperty<V>>
properties(String... propertyKeys)
Get anIterator
of properties where thepropertyKeys
is meant to be a filter on the available keys.default <V> VertexProperty<V>
property(String key)
Get theVertexProperty
for the provided key.default <V> VertexProperty<V>
property(String key, V value)
Set the provided key to the provided value usingVertexProperty.Cardinality.single
.default <V> VertexProperty<V>
property(String key, V value, Object... keyValues)
Set the provided key to the provided value using defaultVertexProperty.Cardinality
for that key.<V> VertexProperty<V>
property(VertexProperty.Cardinality cardinality, String key, V value, Object... keyValues)
Create a new vertex property.Iterator<Vertex>
vertices(Direction direction, String... edgeLabels)
Gets anIterator
of adjacent vertices.
-
-
-
Field Detail
-
DEFAULT_LABEL
static final String DEFAULT_LABEL
The default label to use for a vertex.- See Also:
- Constant Field Values
-
EMPTY_ARGS
static final Object[] EMPTY_ARGS
-
-
Method Detail
-
addEdge
Edge addEdge(String label, Vertex inVertex, Object... keyValues)
Add an outgoing edge to the vertex with provided label and edge properties as key/value pairs. These key/values must be provided in an even number where the odd numbered arguments areString
property keys and the even numbered arguments are the related property values.- Parameters:
label
- The label of the edgeinVertex
- The vertex to receive an incoming edge from the current vertexkeyValues
- The key/value pairs to turn into edge properties- Returns:
- the newly created edge
-
property
default <V> VertexProperty<V> property(String key)
Get theVertexProperty
for the provided key. If the property does not exist, returnVertexProperty.empty()
. If there are more than one vertex properties for the provided key, then throwVertex.Exceptions.multiplePropertiesExistForProvidedKey(java.lang.String)
.
-
property
default <V> VertexProperty<V> property(String key, V value)
Set the provided key to the provided value usingVertexProperty.Cardinality.single
.
-
property
default <V> VertexProperty<V> property(String key, V value, Object... keyValues)
Set the provided key to the provided value using defaultVertexProperty.Cardinality
for that key. The default cardinality can be vendor defined and is usually tied to the graph schema. The default implementation of this method determines the cardinalitygraph().features().vertex().getCardinality(key)
. The provided key/values are the properties of the newly createdVertexProperty
. These key/values must be provided in an even number where the odd numbered arguments areString
.- Type Parameters:
V
- the type of the value of the vertex property- Parameters:
key
- the key of the vertex propertyvalue
- The value of the vertex propertykeyValues
- the key/value pairs to turn into vertex property properties- Returns:
- the newly created vertex property
-
property
<V> VertexProperty<V> property(VertexProperty.Cardinality cardinality, String key, V value, Object... keyValues)
Create a new vertex property. If the cardinality isVertexProperty.Cardinality.single
, then set the key to the value. If the cardinality isVertexProperty.Cardinality.list
, then add a new value to the key. If the cardinality isVertexProperty.Cardinality.set
, then only add a new value if that value doesn't already exist for the key. If the value already exists for the key, add the provided key value vertex property properties to it.- Type Parameters:
V
- the type of the value of the vertex property- Parameters:
cardinality
- the desired cardinality of the property keykey
- the key of the vertex propertyvalue
- The value of the vertex propertykeyValues
- the key/value pairs to turn into vertex property properties- Returns:
- the newly created vertex property
-
edges
Iterator<Edge> edges(Direction direction, String... edgeLabels)
Gets anIterator
of incident edges.- Parameters:
direction
- The incident direction of the edges to retrieve off this vertexedgeLabels
- The labels of the edges to retrieve. If no labels are provided, then get all edges.- Returns:
- An iterator of edges meeting the provided specification
-
vertices
Iterator<Vertex> vertices(Direction direction, String... edgeLabels)
Gets anIterator
of adjacent vertices.- Parameters:
direction
- The adjacency direction of the vertices to retrieve off this vertexedgeLabels
- The labels of the edges associated with the vertices to retrieve. If no labels are provided, then get all edges.- Returns:
- An iterator of vertices meeting the provided specification
-
properties
<V> Iterator<VertexProperty<V>> properties(String... propertyKeys)
Get anIterator
of properties where thepropertyKeys
is meant to be a filter on the available keys. If no keys are provide then return all the properties.- Specified by:
properties
in interfaceElement
-
-