org.apache.tinkerpop.gremlin.structure

## Interface Graph.Features.VertexFeatures

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

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

  Features that are related to `Vertex` operations.

- - ### Property Summary

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

      `supportsAddProperty, supportsRemoveProperty`

  - ### 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`

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

      `FEATURE_ADD_PROPERTY, FEATURE_ANY_IDS, FEATURE_CUSTOM_IDS, 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`.

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

      `supportsAddProperty, supportsAnyIds, supportsCustomIds, 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

  - ### 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.

    - #### properties

          default Graph.Features.VertexPropertyFeatures properties()

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

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