org.apache.tinkerpop.gremlin.structure

## Interface Property<V>

- All Known Subinterfaces:
    VertexProperty<V>

      public interface Property<V>

  A `Property` denotes a key/value pair associated with an `Edge`. A property is much like a Java8 `Optional` in that a property can be not present (i.e. empty). The key of a property is always a String and the value of a property is an arbitrary Java object. Each underlying graph engine will typically have constraints on what Java objects are allowed to be used as values.
  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` | `Property.Exceptions` Common exceptions to use with a property.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `Element` | `element()` Get the element that this property is associated with.
    `static <V> Property<V>` | `empty()` Create an empty property that is not present.
    `default void` | `ifPresent(Consumer<? super V> consumer)` If the property is present, the consume the value as specified by the `Consumer`.
    `boolean` | `isPresent()` Whether the property is empty or not.
    `String` | `key()` The key of the property.
    `default V` | `orElse(V otherValue)` If the value is present, return the value, else return the provided value.
    `default V` | `orElseGet(Supplier<? extends V> valueSupplier)` If the value is present, return the value, else generate a value given the `Supplier`.
    `default <E extends Throwable> V` | `orElseThrow(Supplier<? extends E> exceptionSupplier)` If the value is present, return the value, else throw the exception generated by the `Supplier`.
    `void` | `remove()` Remove the property from the associated element.
    `V` | `value()` The value of the property.

- - ### Method Detail

    - #### key

          String key()

      The key of the property.
      Returns:
        The property key

    - #### value

          V value()
           throws NoSuchElementException

      The value of the property.
      Returns:
        The property value
      Throws:
        `NoSuchElementException` - thrown if the property is empty

    - #### isPresent

          boolean isPresent()

      Whether the property is empty or not.
      Returns:
        True if the property exists, else false

    - #### ifPresent

          default void ifPresent(Consumer<? super V> consumer)

      If the property is present, the consume the value as specified by the `Consumer`.
      Parameters:
        `consumer` - The consumer to process the existing value.

    - #### orElse

          default V orElse(V otherValue)

      If the value is present, return the value, else return the provided value.
      Parameters:
        `otherValue` - The value to return if the property is not present
      Returns:
        A value

    - #### orElseGet

          default V orElseGet(Supplier<? extends V> valueSupplier)

      If the value is present, return the value, else generate a value given the `Supplier`.
      Parameters:
        `valueSupplier` - The supplier to use to generate a value if the property is not present
      Returns:
        A value

    - #### orElseThrow

          default <E extends Throwable> V orElseThrow(Supplier<? extends E> exceptionSupplier)
                                               throws E extends Throwable

      If the value is present, return the value, else throw the exception generated by the `Supplier`.
      Type Parameters:
        `E` - The exception type
      Parameters:
        `exceptionSupplier` - The supplier to generate an exception if the property is not present
      Returns:
        A value
      Throws:
        `E` - if the property is not present, the exception is thrown
        `E extends Throwable`

    - #### element

          Element element()

      Get the element that this property is associated with.
      Returns:
        The element associated with this property (i.e. `Vertex`, `Edge`, or `VertexProperty`).

    - #### remove

          void remove()

      Remove the property from the associated element.

    - #### empty

          static <V> Property<V> empty()

      Create an empty property that is not present.
      Type Parameters:
        `V` - The value class of the empty property
      Returns:
        A property that is not present

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