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 Description Map<String,Optional<Object>>
currentMap
Map<String,MemoryComputeKey>
memoryKeys
Map<String,Optional<Object>>
previousMap
-
Constructor Summary
Constructors Constructor Description TinkerMemory(VertexProgram<?> vertexProgram, Set<MapReduce> mapReducers)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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 theGraphComputer
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
-
-
-
-
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.
-
incrIteration
public void incrIteration()
- Specified by:
incrIteration
in interfaceMemory.Admin
-
setIteration
public void setIteration(int iteration)
- Specified by:
setIteration
in interfaceMemory.Admin
-
getIteration
public int getIteration()
Description copied from interface:Memory
Get the current iteration number.- Specified by:
getIteration
in interfaceMemory
- Returns:
- the current iteration
-
setRuntime
public void setRuntime(long runTime)
- Specified by:
setRuntime
in interfaceMemory.Admin
-
getRuntime
public long getRuntime()
Description copied from interface:Memory
Get the amount of milliseconds theGraphComputer
has been executing thus far.- Specified by:
getRuntime
in interfaceMemory
- 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 interfaceMemory
- 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 interfaceMemory
- 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
-
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 theVertexProgram
. If this is called during execute(), there is no guarantee as to the ultimately stored value as call order is indeterminate. It is up to the implementation to determine the states in which this method can be called.
-
-