@Override public void add(final String key, final Object value) { checkKeyValue(key, value); if (!this.inExecute && ("incr".equals(key) || "and".equals(key) || "or".equals(key))) throw Memory.Exceptions.memoryIsCurrentlyImmutable(); else if (!this.inExecute) throw Memory.Exceptions.memoryAddOnlyDuringVertexProgramExecute(key); this.currentMap.compute(key, (k, v) -> null == v ? value : this.memoryKeys.get(key).getReducer().apply(v, value)); }
@Override public void add(final String key, final Object value) { this.checkKeyValue(key, value); if (this.memoryMap.containsKey(key)) { final Object newValue = this.memoryComputeKeys.get(key).getReducer().apply(this.memoryMap.get(key), value); this.memoryMap.put(key, newValue); } else { this.memoryMap.put(key, value); } }
public TinkerWorkerMemory(final TinkerMemory mainMemory) { this.mainMemory = mainMemory; for (final MemoryComputeKey key : this.mainMemory.memoryKeys.values()) { this.reducers.put(key.getKey(), key.clone().getReducer()); } }
@Override public void add(final String key, final Object value) { checkKeyValue(key, value); if (!this.inExecute) throw Memory.Exceptions.memoryAddOnlyDuringVertexProgramExecute(key); this.currentMap.compute(key, (k, v) -> null == v ? value : this.memoryKeys.get(key).getReducer().apply(v, value)); }
@Override public void modulateBy(final Traversal.Admin<?, ?> kvTraversal) { if ('k' == this.state) { this.keyTraversal = this.integrateChild(kvTraversal); this.state = 'v'; } else if ('v' == this.state) { this.valueTraversal = this.integrateChild(convertValueTraversal(kvTraversal)); this.barrierStep = determineBarrierStep(this.valueTraversal); this.setReducingBiOperator(new GroupBiOperator<>(null == this.barrierStep ? Operator.assign : this.barrierStep.getMemoryComputeKey().getReducer())); this.state = 'x'; } else { throw new IllegalStateException("The key and value traversals for group()-step have already been set: " + this); } }
@Override public ObjectWritable<A> addAccumulator(final ObjectWritable<A> a, final ObjectWritable<A> b) { if (a.isEmpty()) return b; if (b.isEmpty()) return a; return new ObjectWritable<>(this.memoryComputeKey.getReducer().apply(a.get(), b.get())); }
@Override public void modulateBy(final Traversal.Admin<?, ?> kvTraversal) { if ('k' == this.state) { this.keyTraversal = this.integrateChild(kvTraversal); this.state = 'v'; } else if ('v' == this.state) { this.valueTraversal = this.integrateChild(GroupStep.convertValueTraversal(kvTraversal)); this.barrierStep = GroupStep.determineBarrierStep(this.valueTraversal); this.getTraversal().getSideEffects().register(this.sideEffectKey, null, new GroupStep.GroupBiOperator<>(null == this.barrierStep ? Operator.assign : this.barrierStep.getMemoryComputeKey().getReducer())); this.state = 'x'; } else { throw new IllegalStateException("The key and value traversals for group()-step have already been set: " + this); } }
public GroupStep(final Traversal.Admin traversal) { super(traversal); this.valueTraversal = this.integrateChild(__.fold().asAdmin()); this.barrierStep = determineBarrierStep(this.valueTraversal); this.setReducingBiOperator(new GroupBiOperator<>(null == this.barrierStep ? Operator.assign : this.barrierStep.getMemoryComputeKey().getReducer())); this.setSeedSupplier(HashMapSupplier.instance()); }
public GroupSideEffectStep(final Traversal.Admin traversal, final String sideEffectKey) { super(traversal); this.sideEffectKey = sideEffectKey; this.valueTraversal = this.integrateChild(__.fold().asAdmin()); this.barrierStep = GroupStep.determineBarrierStep(this.valueTraversal); this.getTraversal().getSideEffects().registerIfAbsent(this.sideEffectKey, HashMapSupplier.instance(), new GroupStep.GroupBiOperator<>(null == this.barrierStep ? Operator.assign : this.barrierStep.getMemoryComputeKey().getReducer())); }
@Override public void add(final String key, final Object value) { this.checkKeyValue(key, value); if (this.memoryMap.containsKey(key)) { final Object newValue = this.memoryComputeKeys.get(key).getReducer().apply(this.memoryMap.get(key), value); this.memoryMap.put(key, newValue); } else { this.memoryMap.put(key, value); } }
public TinkerWorkerMemory(final TinkerMemory mainMemory) { this.mainMemory = mainMemory; for (final MemoryComputeKey key : this.mainMemory.memoryKeys.values()) { this.reducers.put(key.getKey(), key.clone().getReducer()); } }
public TinkerWorkerMemory(final TinkerMemory mainMemory) { this.mainMemory = mainMemory; for (final MemoryComputeKey key : this.mainMemory.memoryKeys.values()) { this.reducers.put(key.getKey(), key.clone().getReducer()); } }
@Override public void add(final String key, final Object value) { checkKeyValue(key, value); if (!this.inExecute) throw Memory.Exceptions.memoryAddOnlyDuringVertexProgramExecute(key); this.currentMap.compute(key, (k, v) -> null == v ? value : this.memoryKeys.get(key).getReducer().apply(v, value)); }
@Override public void add(final String key, final Object value) { checkKeyValue(key, value); if (!this.inExecute) throw Memory.Exceptions.memoryAddOnlyDuringVertexProgramExecute(key); this.currentMap.compute(key, (k, v) -> null == v ? value : this.memoryKeys.get(key).getReducer().apply(v, value)); }
@Override public void modulateBy(final Traversal.Admin<?, ?> kvTraversal) { if ('k' == this.state) { this.keyTraversal = this.integrateChild(kvTraversal); this.state = 'v'; } else if ('v' == this.state) { this.valueTraversal = this.integrateChild(convertValueTraversal(kvTraversal)); this.barrierStep = determineBarrierStep(this.valueTraversal); this.setReducingBiOperator(new GroupBiOperator<>(null == this.barrierStep ? Operator.assign : this.barrierStep.getMemoryComputeKey().getReducer())); this.state = 'x'; } else { throw new IllegalStateException("The key and value traversals for group()-step have already been set: " + this); } }
@Override public ObjectWritable<A> addAccumulator(final ObjectWritable<A> a, final ObjectWritable<A> b) { if (a.isEmpty()) return b; if (b.isEmpty()) return a; return new ObjectWritable<>(this.memoryComputeKey.getReducer().apply(a.get(), b.get())); }
@Override public void modulateBy(final Traversal.Admin<?, ?> kvTraversal) { if ('k' == this.state) { this.keyTraversal = this.integrateChild(kvTraversal); this.state = 'v'; } else if ('v' == this.state) { this.valueTraversal = this.integrateChild(GroupStep.convertValueTraversal(kvTraversal)); this.barrierStep = GroupStep.determineBarrierStep(this.valueTraversal); this.getTraversal().getSideEffects().register(this.sideEffectKey, null, new GroupStep.GroupBiOperator<>(null == this.barrierStep ? Operator.assign : this.barrierStep.getMemoryComputeKey().getReducer())); this.state = 'x'; } else { throw new IllegalStateException("The key and value traversals for group()-step have already been set: " + this); } }
public GroupStep(final Traversal.Admin traversal) { super(traversal); this.valueTraversal = this.integrateChild(__.fold().asAdmin()); this.barrierStep = determineBarrierStep(this.valueTraversal); this.setReducingBiOperator(new GroupBiOperator<>(null == this.barrierStep ? Operator.assign : this.barrierStep.getMemoryComputeKey().getReducer())); this.setSeedSupplier(HashMapSupplier.instance()); }
public GroupSideEffectStep(final Traversal.Admin traversal, final String sideEffectKey) { super(traversal); this.sideEffectKey = sideEffectKey; this.valueTraversal = this.integrateChild(__.fold().asAdmin()); this.barrierStep = GroupStep.determineBarrierStep(this.valueTraversal); this.getTraversal().getSideEffects().registerIfAbsent(this.sideEffectKey, HashMapSupplier.instance(), new GroupStep.GroupBiOperator<>(null == this.barrierStep ? Operator.assign : this.barrierStep.getMemoryComputeKey().getReducer())); }