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
    Description
    static class 
    Common exceptions to use with a property.
  • Method Summary

    Modifier and Type
    Method
    Description
    Get the element that this property is associated with.
    static <V> Property<V>
    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
    Whether the property is empty or not.
    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 the property from the associated element.
    The value of the property.
  • Method Details

    • 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
      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
    • 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