org.apache.tinkerpop.gremlin.structure

## Interface Graph.Features.VertexFeatures

- All Superinterfaces:
    Graph.Features.ElementFeatures, Graph.Features.FeatureSet
  All Known Implementing Classes:
    EmptyGraph.EmptyGraphFeatures.EmptyGraphVertexFeatures, TinkerGraph.TinkerGraphVertexFeatures
  Enclosing interface:
    Graph.Features

      public static interface Graph.Features.VertexFeatures
      extends Graph.Features.ElementFeatures

  Features that are related to `Vertex` operations.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `FEATURE_ADD_VERTICES`
    `static String` | `FEATURE_DUPLICATE_MULTI_PROPERTIES`
    `static String` | `FEATURE_META_PROPERTIES`
    `static String` | `FEATURE_MULTI_PROPERTIES`
    `static String` | `FEATURE_REMOVE_VERTICES`
    `static String` | `FEATURE_UPSERT`

    - ### Fields inherited from interface org.apache.tinkerpop.gremlin.structure.Graph.Features.ElementFeatures

      `FEATURE_ADD_PROPERTY, FEATURE_ANY_IDS, FEATURE_CUSTOM_IDS, FEATURE_NULL_PROPERTY_VALUES, FEATURE_NUMERIC_IDS, FEATURE_REMOVE_PROPERTY, FEATURE_STRING_IDS, FEATURE_USER_SUPPLIED_IDS, FEATURE_UUID_IDS`

  - ### Method Summary

    All Methods Instance Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default VertexProperty.Cardinality` | `getCardinality(String key)` Gets the `VertexProperty.Cardinality` for a key.
    `default Graph.Features.VertexPropertyFeatures` | `properties()` Gets features related to "properties" on a `Vertex`.
    `default boolean` | `supportsAddVertices()` Determines if a `Vertex` can be added to the `Graph`.
    `default boolean` | `supportsDuplicateMultiProperties()` Determines if a `Vertex` can support non-unique values on the same key.
    `default boolean` | `supportsMetaProperties()` Determines if a `Vertex` can support properties on vertex properties.
    `default boolean` | `supportsMultiProperties()` Determines if a `Vertex` can support multiple properties with the same key.
    `default boolean` | `supportsRemoveVertices()` Determines if a `Vertex` can be removed from the `Graph`.
    `default boolean` | `supportsUpsert()` Determines if the `Graph` implementation uses upsert functionality as opposed to insert functionality for `Graph.addVertex(String)`.

    - ### Methods inherited from interface org.apache.tinkerpop.gremlin.structure.Graph.Features.ElementFeatures

      `supportsAddProperty, supportsAnyIds, supportsCustomIds, supportsNullPropertyValues, supportsNumericIds, supportsRemoveProperty, supportsStringIds, supportsUserSuppliedIds, supportsUuidIds, willAllowId`

- - ### Field Detail

    - #### FEATURE_ADD_VERTICES

          static final String FEATURE_ADD_VERTICES

      See Also:
        Constant Field Values

    - #### FEATURE_MULTI_PROPERTIES

          static final String FEATURE_MULTI_PROPERTIES

      See Also:
        Constant Field Values

    - #### FEATURE_DUPLICATE_MULTI_PROPERTIES

          static final String FEATURE_DUPLICATE_MULTI_PROPERTIES

      See Also:
        Constant Field Values

    - #### FEATURE_META_PROPERTIES

          static final String FEATURE_META_PROPERTIES

      See Also:
        Constant Field Values

    - #### FEATURE_REMOVE_VERTICES

          static final String FEATURE_REMOVE_VERTICES

      See Also:
        Constant Field Values

    - #### FEATURE_UPSERT

          static final String FEATURE_UPSERT

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getCardinality

          default VertexProperty.Cardinality getCardinality(String key)

      Gets the `VertexProperty.Cardinality` for a key. By default, this method will return `VertexProperty.Cardinality.list`. Implementations that employ a schema can consult it to determine the `VertexProperty.Cardinality`. Those that do no have a schema can return their default `VertexProperty.Cardinality` for every key.

      Note that this method is primarily used by TinkerPop for internal usage and may not be suitable to reliably determine the cardinality of a key. For some implementation it may offer little more than a hint on the actual cardinality. Generally speaking it is likely best to drop down to the API of the `Graph` implementation for any schema related queries.

    - #### supportsAddVertices

          default boolean supportsAddVertices()

      Determines if a `Vertex` can be added to the `Graph`.

    - #### supportsRemoveVertices

          default boolean supportsRemoveVertices()

      Determines if a `Vertex` can be removed from the `Graph`.

    - #### supportsMultiProperties

          default boolean supportsMultiProperties()

      Determines if a `Vertex` can support multiple properties with the same key.

    - #### supportsDuplicateMultiProperties

          default boolean supportsDuplicateMultiProperties()

      Determines if a `Vertex` can support non-unique values on the same key. For this value to be `true`, then `supportsMetaProperties()` must also return true. By default this method, just returns what `supportsMultiProperties()` returns.

    - #### supportsMetaProperties

          default boolean supportsMetaProperties()

      Determines if a `Vertex` can support properties on vertex properties. It is assumed that a graph will support all the same data types for meta-properties that are supported for regular properties.

    - #### supportsUpsert

          default boolean supportsUpsert()

      Determines if the `Graph` implementation uses upsert functionality as opposed to insert functionality for `Graph.addVertex(String)`. This feature gives graph providers some flexibility as to how graph mutations are treated. For graph providers, testing of this feature (as far as TinkerPop is concerned) only covers graphs that can support user supplied identifiers as there is no other way for TinkerPop to know what aspect of a vertex is unique to appropriately apply assertions. Graph providers, especially those who support schema features, may have other methods for uniquely identifying a vertex and should therefore resort to their own body of tests to validate this feature.

    - #### properties

          default Graph.Features.VertexPropertyFeatures properties()

      Gets features related to "properties" on a `Vertex`.

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