org.apache.tinkerpop.gremlin.structure.util

## Interface Attachable<V>

- All Known Subinterfaces:
    RemoteTraverser<T>, Traverser.Admin<T>
  All Known Implementing Classes:
    AbstractRemoteTraverser, AbstractTraverser, B_LP_O_P_S_SE_SL_Traverser, B_LP_O_S_SE_SL_Traverser, B_O_S_SE_SL_Traverser, B_O_Traverser, DefaultRemoteTraverser, DetachedEdge, DetachedElement, DetachedPath, DetachedProperty, DetachedVertex, DetachedVertexProperty, EmptyTraverser, LP_O_OB_P_S_SE_SL_Traverser, LP_O_OB_S_SE_SL_Traverser, O_OB_S_SE_SL_Traverser, O_Traverser, ProjectedTraverser, ReferenceEdge, ReferenceElement, ReferencePath, ReferenceProperty, ReferenceVertex, ReferenceVertexProperty, StarGraph.StarEdge, StarGraph.StarElement, StarGraph.StarInEdge, StarGraph.StarOutEdge, StarGraph.StarProperty, StarGraph.StarVertex, StarGraph.StarVertexProperty

      public interface Attachable<V>

  An interface that provides methods for detached properties and elements to be re-attached to the `Graph`. There are two general ways in which they can be attached: `Attachable.Method.get(org.apache.tinkerpop.gremlin.structure.util.Host)` or `Attachable.Method.create(org.apache.tinkerpop.gremlin.structure.util.Host)`. A `Attachable.Method.get(org.apache.tinkerpop.gremlin.structure.util.Host)` will find the property/element at the host location and return it. A `Attachable.Method.create(org.apache.tinkerpop.gremlin.structure.util.Host)` will create the property/element at the host location and return it.
  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` | `Attachable.Exceptions`
    `static class` | `Attachable.Method` A collection of general methods of attachment.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method and Description
    --- | ---
    `default V` | `attach(Function<Attachable<V>,V> method)` Provide a way to attach an `Attachable` implementation to a host.
    `V` | `get()` Get the raw object trying to be attached.

- - ### Method Detail

    - #### get

          V get()

      Get the raw object trying to be attached.
      Returns:
        the raw object to attach

    - #### attach

          default V attach(Function<Attachable<V>,V> method)
                    throws IllegalStateException

      Provide a way to attach an `Attachable` implementation to a host. Note that the context of the host is not defined by way of the attachment method itself that is supplied as an argument. It is up to the implementer to supply that context.
      Parameters:
        `method` - a `Function` that takes an `Attachable` and returns the "re-attached" object
      Returns:
        the return value of the `method`
      Throws:
        `IllegalStateException` - if the `Attachable` is not a "graph" object (i.e. host or attachable don't work together)

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