org.apache.tinkerpop.gremlin.structure

## Interface Graph.Features.GraphFeatures

- All Superinterfaces:
    Graph.Features.FeatureSet
  Enclosing interface:
    Graph.Features

      public static interface Graph.Features.GraphFeatures
      extends Graph.Features.FeatureSet

  Features specific to a operations of a "graph".

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `FEATURE_COMPUTER`
    `static String` | `FEATURE_CONCURRENT_ACCESS`
    `static String` | `FEATURE_IO_READ`
    `static String` | `FEATURE_IO_WRITE`
    `static String` | `FEATURE_PERSISTENCE`
    `static String` | `FEATURE_THREADED_TRANSACTIONS`
    `static String` | `FEATURE_TRANSACTIONS`

  - ### Method Summary

    All Methods Instance Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default boolean` | `supportsComputer()` Determines if the `Graph` implementation supports `GraphComputer` based processing.
    `default boolean` | `supportsConcurrentAccess()` Determines if the `Graph` implementation supports more than one connection to the same instance at the same time.
    `default boolean` | `supportsIoRead()` Determines if the `Graph` implementations supports read operations as executed with the `GraphTraversalSource.io(String)` step.
    `default boolean` | `supportsIoWrite()` Determines if the `Graph` implementations supports write operations as executed with the `GraphTraversalSource.io(String)` step.
    `default boolean` | `supportsPersistence()` Determines if the `Graph` implementation supports persisting it's contents natively to disk.
    `default boolean` | `supportsThreadedTransactions()` Determines if the `Graph` implementation supports threaded transactions which allow a transaction to be executed across multiple threads via `Transaction.createThreadedTx()`.
    `default boolean` | `supportsTransactions()` Determines if the `Graph` implementations supports transactions.
    `default Graph.Features.VariableFeatures` | `variables()` Gets the features related to "graph sideEffects" operation.

- - ### Field Detail

    - #### FEATURE_COMPUTER

          static final String FEATURE_COMPUTER

      See Also:
        Constant Field Values

    - #### FEATURE_TRANSACTIONS

          static final String FEATURE_TRANSACTIONS

      See Also:
        Constant Field Values

    - #### FEATURE_PERSISTENCE

          static final String FEATURE_PERSISTENCE

      See Also:
        Constant Field Values

    - #### FEATURE_THREADED_TRANSACTIONS

          static final String FEATURE_THREADED_TRANSACTIONS

      See Also:
        Constant Field Values

    - #### FEATURE_CONCURRENT_ACCESS

          static final String FEATURE_CONCURRENT_ACCESS

      See Also:
        Constant Field Values

    - #### FEATURE_IO_READ

          static final String FEATURE_IO_READ

      See Also:
        Constant Field Values

    - #### FEATURE_IO_WRITE

          static final String FEATURE_IO_WRITE

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### supportsComputer

          default boolean supportsComputer()

      Determines if the `Graph` implementation supports `GraphComputer` based processing.

    - #### supportsPersistence

          default boolean supportsPersistence()

      Determines if the `Graph` implementation supports persisting it's contents natively to disk. This feature does not refer to every graph's ability to write to disk via the Gremlin IO packages (.e.g. GraphML), unless the graph natively persists to disk via those options somehow. For example, TinkerGraph does not support this feature as it is a pure in-sideEffects graph.

    - #### supportsConcurrentAccess

          default boolean supportsConcurrentAccess()

      Determines if the `Graph` implementation supports more than one connection to the same instance at the same time. For example, Neo4j embedded does not support this feature because concurrent access to the same database files by multiple instances is not possible. However, Neo4j HA could support this feature as each new `Graph` instance coordinates with the Neo4j cluster allowing multiple instances to operate on the same database.

    - #### supportsTransactions

          default boolean supportsTransactions()

      Determines if the `Graph` implementations supports transactions.

    - #### supportsThreadedTransactions

          default boolean supportsThreadedTransactions()

      Determines if the `Graph` implementation supports threaded transactions which allow a transaction to be executed across multiple threads via `Transaction.createThreadedTx()`.

    - #### supportsIoRead

          default boolean supportsIoRead()

      Determines if the `Graph` implementations supports read operations as executed with the `GraphTraversalSource.io(String)` step. Graph implementations will generally support this by default as any graph that can support direct mutation through the Structure API will by default accept data from the standard TinkerPop `GraphReader` implementations. However, some graphs like `HadoopGraph` don't accept direct mutations but can still do reads from that `io()` step.

    - #### supportsIoWrite

          default boolean supportsIoWrite()

      Determines if the `Graph` implementations supports write operations as executed with the `GraphTraversalSource.io(String)` step. Graph implementations will generally support this by default given the standard TinkerPop `GraphWriter` implementations. However, some graphs like `HadoopGraph` will use a different approach to handle writes.

    - #### variables

          default Graph.Features.VariableFeatures variables()

      Gets the features related to "graph sideEffects" operation.

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