org.apache.tinkerpop.gremlin.tinkergraph.process.computer

## Class TinkerMemory

- java.lang.Object
- - org.apache.tinkerpop.gremlin.tinkergraph.process.computer.TinkerMemory

- All Implemented Interfaces:
    Memory, Memory.Admin

      public final class TinkerMemory
      extends Object
      implements Memory.Admin

  Author:
    Marko A. Rodriguez (http://markorodriguez.com)

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.apache.tinkerpop.gremlin.process.computer.Memory

      `Memory.Admin, Memory.Exceptions`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `Map<String,Object>` | `currentMap`
    `Map<String,MemoryComputeKey>` | `memoryKeys`
    `Map<String,Object>` | `previousMap`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TinkerMemory(VertexProgram<?> vertexProgram, Set<MapReduce> mapReducers)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(String key, Object value)` Set the value of the provided key.
    `protected void` | `checkKeyValue(String key, Object value)`
    `protected void` | `complete()`
    `protected void` | `completeSubRound()`
    `<R> R` | `get(String key)` Get the value associated with the provided key.
    `int` | `getIteration()` Get the current iteration number.
    `long` | `getRuntime()` Get the amount of milliseconds the `GraphComputer` has been executing thus far.
    `void` | `incrIteration()`
    `boolean` | `isInitialIteration()` A helper method that states whether the current iteration is 0.
    `Set<String>` | `keys()` The set of keys currently associated with this memory.
    `void` | `set(String key, Object value)`
    `void` | `setIteration(int iteration)`
    `void` | `setRuntime(long runTime)`
    `String` | `toString()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.tinkerpop.gremlin.process.computer.Memory.Admin

      `asImmutable`

    - ### Methods inherited from interface org.apache.tinkerpop.gremlin.process.computer.Memory

      `asMap, exists`

- - ### Field Detail

    - #### memoryKeys

          public final Map<String,MemoryComputeKey> memoryKeys

    - #### previousMap

          public Map<String,Object> previousMap

    - #### currentMap

          public Map<String,Object> currentMap

  - ### Constructor Detail

    - #### TinkerMemory

          public TinkerMemory(VertexProgram<?> vertexProgram,
                              Set<MapReduce> mapReducers)

  - ### Method Detail

    - #### keys

          public Set<String> keys()

      Description copied from interface: `Memory`
      The set of keys currently associated with this memory.
      Specified by:
        `keys` in interface `Memory`
      Returns:
        the memory's key set.

    - #### incrIteration

          public void incrIteration()

      Specified by:
        `incrIteration` in interface `Memory.Admin`

    - #### setIteration

          public void setIteration(int iteration)

      Specified by:
        `setIteration` in interface `Memory.Admin`

    - #### getIteration

          public int getIteration()

      Description copied from interface: `Memory`
      Get the current iteration number.
      Specified by:
        `getIteration` in interface `Memory`
      Returns:
        the current iteration

    - #### setRuntime

          public void setRuntime(long runTime)

      Specified by:
        `setRuntime` in interface `Memory.Admin`

    - #### getRuntime

          public long getRuntime()

      Description copied from interface: `Memory`
      Get the amount of milliseconds the `GraphComputer` has been executing thus far.
      Specified by:
        `getRuntime` in interface `Memory`
      Returns:
        the total time in milliseconds

    - #### complete

          protected void complete()

    - #### completeSubRound

          protected void completeSubRound()

    - #### isInitialIteration

          public boolean isInitialIteration()

      Description copied from interface: `Memory`
      A helper method that states whether the current iteration is 0.
      Specified by:
        `isInitialIteration` in interface `Memory`
      Returns:
        whether this is the first iteration

    - #### get

          public <R> R get(String key)
                    throws IllegalArgumentException

      Description copied from interface: `Memory`
      Get the value associated with the provided key.
      Specified by:
        `get` in interface `Memory`
      Type Parameters:
        `R` - the type of the value
      Parameters:
        `key` - the key of the value
      Returns:
        the value
      Throws:
        `IllegalArgumentException` - is thrown if the key does not exist

    - #### set

          public void set(String key,
                          Object value)

      Specified by:
        `set` in interface `Memory`

    - #### add

          public void add(String key,
                          Object value)

      Description copied from interface: `Memory`
      Set the value of the provided key. This is typically called in setup() and/or terminate() of the `VertexProgram`. If this is called during execute(), there is no guarantee as to the ultimately stored value as call order is indeterminate.
      Specified by:
        `add` in interface `Memory`
      Parameters:
        `key` - they key to set a value for
        `value` - the value to set for the key

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### checkKeyValue

          protected void checkKeyValue(String key,
                                       Object value)

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