# Package org.apache.tinkerpop.gremlin.structure

- Interface Summary
  Interface | Description
  --- | ---
  Edge | An `Edge` links two `Vertex` objects.
  Element | An `Element` is the base class for both `Vertex` and `Edge`.
  Graph | A `Graph` is a container object for a collection of `Vertex`, `Edge`, `VertexProperty`, and `Property` objects.
  Graph.Features | An interface that represents the capabilities of a `Graph` implementation.
  Graph.Features.DataTypeFeatures | Base interface for features that relate to supporting different data types.
  Graph.Features.EdgeFeatures | Features that are related to `Edge` operations.
  Graph.Features.EdgePropertyFeatures | Features that are related to `Edge` `Property` objects.
  Graph.Features.ElementFeatures | Features that are related to `Element` objects.
  Graph.Features.FeatureSet | A marker interface to identify any set of Features.
  Graph.Features.GraphFeatures | Features specific to a operations of a "graph".
  Graph.Features.PropertyFeatures | A base interface for `Edge` or `Vertex` `Property` features.
  Graph.Features.VariableFeatures | Features for `Graph.Variables`.
  Graph.Features.VertexFeatures | Features that are related to `Vertex` operations.
  Graph.Features.VertexPropertyFeatures | Features that are related to `Vertex` `Property` objects.
  Graph.Variables | Graph variables are a set of key/value pairs associated with the graph.
  Property<V> | A `Property` denotes a key/value pair associated with an `Edge`.
  Transaction | A set of methods that allow for control of transactional behavior of a `Graph` instance.
  Vertex | A `Vertex` maintains pointers to both a set of incoming and outgoing `Edge` objects.
  VertexProperty<V> | A `VertexProperty` is similar to a `Property` in that it denotes a key/value pair associated with an `Vertex`, however it is different in the sense that it also represents an entity that it is an `Element` that can have properties of its own.

- Class Summary
  Class | Description
  --- | ---
  Edge.Exceptions | Common exceptions to use with an edge.
  EdgeTest |
  EdgeTest.BasicEdgeTest |
  Element.Exceptions | Common exceptions to use with an element.
  FeatureSupportTest | Tests that do basic validation of proper Feature settings in Graph implementations.
  FeatureSupportTest.EdgeFunctionalityTest | Feature checks that test `Edge` functionality to determine if a feature should be on when it is marked as not supported.
  FeatureSupportTest.ElementPropertyDataTypeFunctionalityTest | Feature checks that test `Element` `Property` functionality to determine if a feature should be on when it is marked as not supported.
  FeatureSupportTest.FeatureToStringTest |
  FeatureSupportTest.GraphFunctionalityTest | Feature checks that test `Graph` functionality to determine if a feature should be on when it is marked as not supported.
  FeatureSupportTest.GraphVariablesFunctionalityTest | Feature checks that tests if `Graph.Variables` functionality to determine if a feature should be on when it is marked as not supported.
  FeatureSupportTest.LogicalFeatureSupportTest | Feature checks that simply evaluate conflicting feature definitions without evaluating the actual implementation itself.
  FeatureSupportTest.VertexFunctionalityTest | Feature checks that test `Vertex` functionality to determine if a feature should be on when it is marked as not supported.
  FeatureSupportTest.VertexPropertyFunctionalityTest |
  Graph.Exceptions | Common exceptions to use with a graph.
  Graph.Hidden | This should only be used by providers to create keys, labels, etc.
  Graph.Variables.Exceptions |
  GraphConstructionTest | Tests that support the creation of `Graph` instances which occurs via `GraphFactory`.
  GraphTest |
  MockSerializable |
  Property.Exceptions | Common exceptions to use with a property.
  PropertyTest | Gremlin Test Suite for `Property` operations.
  PropertyTest.BasicPropertyTest | Basic tests for the `Property` class.
  PropertyTest.ElementGetValueExceptionConsistencyTest | Test exceptions around use of `Element.value(String)`.
  PropertyTest.PropertyFeatureSupportTest | Tests for feature support on `Property`.
  PropertyTest.PropertyValidationOnAddExceptionConsistencyTest | Checks that properties added to an `Element` are validated in a consistent way when they are added at `Vertex` or `Edge` construction by throwing an appropriate exception.
  PropertyTest.PropertyValidationOnSetExceptionConsistencyTest | Checks that properties added to an `Element` are validated in a consistent way when they are set after `Vertex` or `Edge` construction by throwing an appropriate exception.
  RemoteGraph | `RemoteGraph` is only required for integrating with the test suite as there must be a `Graph` instance for the test suite to bind to.
  RemoteGraph.RemoteFeatures |
  RemoteGraph.RemoteGraphFeatures |
  SerializationTest | Serialization tests that occur at a lower level than IO.
  SerializationTest.GraphSONV1d0Test |
  SerializationTest.GraphSONV2d0Test |
  SerializationTest.GraphSONV3d0Test |
  SerializationTest.GryoV1d0Test |
  SerializationTest.GryoV3d0Test |
  StructureIntegrateSuite | The `StructureIntegrationSuite` is a JUnit test runner that executes the Gremlin Test Suite over a `Graph` implementation.
  StructureStandardSuite | The `StructureStandardSuite` is a JUnit test runner that executes the Gremlin Test Suite over a `Graph` implementation.
  Transaction.Exceptions |
  TransactionTest |
  VariablesTest | Gremlin Test Suite for `Graph.Variables` operations.
  VariablesTest.GraphVariablesFeatureSupportTest | Tests for feature support on `Graph.Variables`.
  VariablesTest.StringRepresentationTest | Basic tests to ensure that `Graph.Variables` have appropriate `String` representations.
  VariablesTest.VariableAsMapTest | Ensure that the `Graph.Variables.asMap()` method returns some basics.
  VariablesTest.VariableExceptionConsistencyTest | Test exceptions around `Graph.Variables`.
  Vertex.Exceptions | Common exceptions to use with a vertex.
  VertexProperty.Exceptions | Common exceptions to use with a property.
  VertexPropertyTest |
  VertexPropertyTest.BasicVertexProperty |
  VertexPropertyTest.VertexPropertyAddition |
  VertexPropertyTest.VertexPropertyProperties |
  VertexPropertyTest.VertexPropertyRemoval |
  VertexTest |
  VertexTest.AddEdgeTest |
  VertexTest.BasicVertexTest |

- Enum Summary
  Enum | Description
  --- | ---
  Column | Column references a particular type of column in a complex data structure such as a `Map`, a `Map.Entry`, or a `Path`.
  Direction | `Direction` is used to denote the direction of an `Edge` or location of a `Vertex` on an `Edge`.
  PropertyType | This enumeration allows for the specification of the type of a `Property`.
  T | A collection of (T)okens which allows for more concise Traversal definitions.
  Transaction.CLOSE_BEHAVIOR | Behaviors to supply to the `Transaction.onClose(Consumer)`.
  Transaction.READ_WRITE_BEHAVIOR | Behaviors to supply to the `Transaction.onReadWrite(Consumer)`.
  Transaction.Status | A status provided to transaction listeners to inform whether a transaction was successfully committed or rolled back.
  VertexProperty.Cardinality |

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  Graph.OptIn | Defines the test suite that the implementer has decided to support and represents publicly as "passing".
  Graph.OptIns | Holds a collection of `Graph.OptIn` enabling multiple `Graph.OptIn` to be applied to a single suite.
  Graph.OptOut | Defines a test in the suite that the implementer does not want to run.
  Graph.OptOuts | Holds a collection of `Graph.OptOut` enabling multiple `Graph.OptOut` to be applied to a single suite.

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