Interface Element

All Known Subinterfaces:
Edge, Vertex, VertexProperty<V>
All Known Implementing Classes:
ComputerGraph.ComputerAdjacentVertex, ComputerGraph.ComputerEdge, ComputerGraph.ComputerElement, ComputerGraph.ComputerVertex, ComputerGraph.ComputerVertexProperty, DetachedEdge, DetachedElement, DetachedVertex, DetachedVertexProperty, EmptyVertexProperty, KeyedVertexProperty, ReferenceEdge, ReferenceElement, ReferenceVertex, ReferenceVertexProperty, StarGraph.StarAdjacentVertex, StarGraph.StarEdge, StarGraph.StarElement, StarGraph.StarInEdge, StarGraph.StarOutEdge, StarGraph.StarVertex, StarGraph.StarVertexProperty, TinkerEdge, TinkerElement, TinkerVertex, TinkerVertexProperty

public interface Element
An Element is the base class for both Vertex and Edge. An Element has an identifier that must be unique to its inheriting classes (Vertex or Edge). An Element can maintain a collection of Property objects. Typically, objects are Java primitives (e.g. String, long, int, boolean, etc.)
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 an element.
  • Method Summary

    Modifier and Type
    Method
    Description
    default void
    addLabel(String label, String... labels)
    Adds one or more labels to this element.
    default void
    dropLabel(String label, String... labels)
    Removes specific labels from this element.
    default void
    Removes all labels from this element, triggering the provider's default label behavior.
    Get the graph that this element is within.
    id()
    Gets the unique identifier for the graph Element.
    default Set<String>
    Get the keys of the properties associated with this element.
    Deprecated.
    As of release 4.0.0, replaced by labels().
    default Set<String>
    Gets all labels for this element.
    <V> Iterator<? extends Property<V>>
    properties(String... propertyKeys)
    Get an Iterator of properties where the propertyKeys is meant to be a filter on the available keys.
    default <V> Property<V>
    Get a Property for the Element given its key.
    <V> Property<V>
    property(String key, V value)
    Add or set a property value for the Element given its key.
    void
    Removes the Element from the graph.
    default <V> V
    Get the value of a Property given it's key.
    default <V> Iterator<V>
    values(String... propertyKeys)
    Get the values of properties as an Iterator.
  • Method Details

    • id

      Object id()
      Gets the unique identifier for the graph Element.
      Returns:
      The id of the element
    • labels

      default Set<String> labels()
      Gets all labels for this element.

      For Vertex: may return zero or more labels (multi-label support). For Edge: returns a singleton set (single label only in TinkerGraph). For VertexProperty: returns a singleton set containing the property key.

      Returns:
      An unmodifiable Set of labels; may be empty for vertices with no labels
      Since:
      4.0.0
    • label

      Deprecated.
      As of release 4.0.0, replaced by labels(). This method returns an arbitrary label when multiple labels exist.
      Gets the label for the graph Element which helps categorize it.
      Returns:
      The label of the element
    • graph

      Graph graph()
      Get the graph that this element is within.
      Returns:
      the graph of this element
    • keys

      default Set<String> keys()
      Get the keys of the properties associated with this element. The default implementation iterators the properties and stores the keys into a HashSet.
      Returns:
      The property key set
    • property

      default <V> Property<V> property(String key)
      Get a Property for the Element given its key. The default implementation calls the raw properties(java.lang.String...).
    • property

      <V> Property<V> property(String key, V value)
      Add or set a property value for the Element given its key.
    • value

      default <V> V value(String key) throws NoSuchElementException
      Get the value of a Property given it's key. The default implementation calls property(java.lang.String) and then returns the associated value.
      Throws:
      NoSuchElementException - if the property does not exist on the Element.
    • remove

      void remove()
      Removes the Element from the graph.
    • addLabel

      default void addLabel(String label, String... labels)
      Adds one or more labels to this element.
      Parameters:
      label - the first label to add
      labels - additional labels to add
      Throws:
      UnsupportedOperationException - if the element does not support label mutation
      Since:
      4.0.0
    • dropLabels

      default void dropLabels()
      Removes all labels from this element, triggering the provider's default label behavior.
      Throws:
      UnsupportedOperationException - if the element does not support label mutation
      Since:
      4.0.0
    • dropLabel

      default void dropLabel(String label, String... labels)
      Removes specific labels from this element. If this action removes all labels, triggers the provider's default label behavior.
      Parameters:
      label - the first label to remove
      labels - additional labels to remove
      Throws:
      UnsupportedOperationException - if the element does not support label mutation
      Since:
      4.0.0
    • values

      default <V> Iterator<V> values(String... propertyKeys)
      Get the values of properties as an Iterator.
    • properties

      <V> Iterator<? extends Property<V>> properties(String... propertyKeys)
      Get an Iterator of properties where the propertyKeys is meant to be a filter on the available keys. If no keys are provide then return all the properties.