org.apache.tinkerpop.gremlin.structure

## Interface Vertex

- All Superinterfaces:
    Element, org.apache.tinkerpop.gremlin.structure.util.Host

      public interface Vertex
      extends Element, org.apache.tinkerpop.gremlin.structure.util.Host

  A `Vertex` maintains pointers to both a set of incoming and outgoing `Edge` objects. The outgoing edges are those edges for which the `Vertex` is the tail. The incoming edges are those edges for which the `Vertex` 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 and Description
    --- | ---
    `static class` | `Vertex.Exceptions` Common exceptions to use with a vertex.

  - ### Field Summary

    Fields
    Modifier and Type | Field and 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 and 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 an `Iterator` of incident edges.
    `<V> Iterator<VertexProperty<V>>` | `properties(String... propertyKeys)` Get an `Iterator` of properties where the `propertyKeys` is meant to be a filter on the available keys.
    `default <V> VertexProperty<V>` | `property(String key)` Get the `VertexProperty` for the provided key.
    `default <V> VertexProperty<V>` | `property(String key, V value)` Set the provided key to the provided value using `VertexProperty.Cardinality.single`.
    `default <V> VertexProperty<V>` | `property(String key, V value, Object... keyValues)` Set the provided key to the provided value using default `VertexProperty.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 an `Iterator` of adjacent vertices.

    - ### Methods inherited from interface org.apache.tinkerpop.gremlin.structure.Element

      `graph, id, keys, label, remove, value, values`

    - ### Methods inherited from interface org.apache.tinkerpop.gremlin.structure.util.Host

      `getHostingVertex`

- - ### 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 are `String` property keys and the even numbered arguments are the related property values.
      Parameters:
        `label` - The label of the edge
        `inVertex` - The vertex to receive an incoming edge from the current vertex
        `keyValues` - The key/value pairs to turn into edge properties
      Returns:
        the newly created edge

    - #### property

          default <V> VertexProperty<V> property(String key)

      Get the `VertexProperty` for the provided key. If the property does not exist, return `VertexProperty.empty()`. If there are more than one vertex properties for the provided key, then throw `Vertex.Exceptions.multiplePropertiesExistForProvidedKey(java.lang.String)`.
      Specified by:
        `property` in interface `Element`
      Type Parameters:
        `V` - the expected type of the vertex property value
      Parameters:
        `key` - the key of the vertex property to get
      Returns:
        the retrieved vertex property

    - #### property

          default <V> VertexProperty<V> property(String key,
                                                 V value)

      Set the provided key to the provided value using `VertexProperty.Cardinality.single`.
      Specified by:
        `property` in interface `Element`
      Type Parameters:
        `V` - the type of the value of the vertex property
      Parameters:
        `key` - the key of the vertex property
        `value` - The value of the vertex property
      Returns:
        the newly created vertex property

    - #### property

          default <V> VertexProperty<V> property(String key,
                                                 V value,
                                                 Object... keyValues)

      Set the provided key to the provided value using default `VertexProperty.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 cardinality `graph().features().vertex().getCardinality(key)`. The provided key/values are the properties of the newly created `VertexProperty`. These key/values must be provided in an even number where the odd numbered arguments are `String`.
      Type Parameters:
        `V` - the type of the value of the vertex property
      Parameters:
        `key` - the key of the vertex property
        `value` - The value of the vertex property
        `keyValues` - 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 is `VertexProperty.Cardinality.single`, then set the key to the value. If the cardinality is `VertexProperty.Cardinality.list`, then add a new value to the key. If the cardinality is `VertexProperty.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 key
        `key` - the key of the vertex property
        `value` - The value of the vertex property
        `keyValues` - 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 an `Iterator` of incident edges.
      Parameters:
        `direction` - The incident direction of the edges to retrieve off this vertex
        `edgeLabels` - 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 an `Iterator` of adjacent vertices.
      Parameters:
        `direction` - The adjacency direction of the vertices to retrieve off this vertex
        `edgeLabels` - 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 an `Iterator` of properties where the `propertyKeys` is meant to be a filter on the available keys. If no keys are provide then return all the properties.
      Specified by:
        `properties` in interface `Element`

Copyright © 2013–2019 Apache Software Foundation. All rights reserved.