@Override public void set(final String key, final Object value) { this.sideEffects.set(key, value); if (null != this.memory) this.memory.set(key, value); }
/** * {@inheritDoc} */ @Override public void mergeInto(final TraversalSideEffects sideEffects) { for (final String key : this.keys) { sideEffects.registerIfAbsent(key, this.supplierMap.get(key), this.reducerMap.get(key)); if (this.objectMap.containsKey(key)) sideEffects.set(key, this.objectMap.get(key)); } }
private Map<String, Object> getMapOfSideEffects() { final TraversalSideEffects temp = this.getTraversal().getSideEffects(); final Map<String, Object> sideEffects = new HashMap<>(); for (final String sideEffectKey : this.sideEffectKeys) { if (temp.exists(sideEffectKey)) { final E result = temp.get(sideEffectKey); final SideEffectCapable<Object, E> sideEffectCapable = this.sideEffectCapableSteps.get(sideEffectKey); final E finalResult = null == sideEffectCapable ? result : sideEffectCapable.generateFinalResult(result); temp.set(sideEffectKey, finalResult); sideEffects.put(sideEffectKey, finalResult); } } return sideEffects; }
private void processMemorySideEffects(final Memory memory) { // update the traversal side-effects with the state of the memory after the OLAP job execution final TraversalSideEffects sideEffects = this.getTraversal().getSideEffects(); for (final String key : memory.keys()) { if (sideEffects.exists(key)) { // halted traversers should never be propagated through sideEffects assert !key.equals(TraversalVertexProgram.HALTED_TRAVERSERS); sideEffects.set(key, memory.get(key)); } } }
@Override protected E supply() { if (null == this.sideEffectCapableSteps) { this.sideEffectCapableSteps = new HashMap<>(); Traversal.Admin<?, ?> parentTraversal = this.getTraversal(); while (!(parentTraversal instanceof EmptyTraversal)) { for (final SideEffectCapable<Object, E> capableStep : TraversalHelper.getStepsOfAssignableClassRecursively(SideEffectCapable.class, parentTraversal)) { if (this.sideEffectKeys.contains(capableStep.getSideEffectKey()) && !this.sideEffectCapableSteps.containsKey(capableStep.getSideEffectKey())) this.sideEffectCapableSteps.put(capableStep.getSideEffectKey(), capableStep); } if (this.sideEffectKeys.size() == this.sideEffectCapableSteps.size()) break; parentTraversal = parentTraversal.getParent().asStep().getTraversal(); } } //////////// if (this.sideEffectKeys.size() == 1) { final String sideEffectKey = this.sideEffectKeys.get(0); final E result = this.getTraversal().getSideEffects().<E>get(sideEffectKey); final SideEffectCapable<Object, E> sideEffectCapable = this.sideEffectCapableSteps.get(sideEffectKey); final E finalResult = null == sideEffectCapable ? result : sideEffectCapable.generateFinalResult(result); this.getTraversal().getSideEffects().set(sideEffectKey, finalResult); return finalResult; } else return (E) this.getMapOfSideEffects(); }
this.traversal.get().getSideEffects().set(profileStep.getSideEffectKey(), profileStep.generateFinalResult(this.traversal.get().getSideEffects().get(profileStep.getSideEffectKey())));
@Override public void set(final String key, final Object value) { this.sideEffects.set(key, value); if (null != this.memory) this.memory.set(key, value); }
/** * {@inheritDoc} */ @Override public void mergeInto(final TraversalSideEffects sideEffects) { for (final String key : this.keys) { sideEffects.registerIfAbsent(key, this.supplierMap.get(key), this.reducerMap.get(key)); if (this.objectMap.containsKey(key)) sideEffects.set(key, this.objectMap.get(key)); } }
private Map<String, Object> getMapOfSideEffects() { final TraversalSideEffects temp = this.getTraversal().getSideEffects(); final Map<String, Object> sideEffects = new HashMap<>(); for (final String sideEffectKey : this.sideEffectKeys) { if (temp.exists(sideEffectKey)) { final E result = temp.get(sideEffectKey); final SideEffectCapable<Object, E> sideEffectCapable = this.sideEffectCapableSteps.get(sideEffectKey); final E finalResult = null == sideEffectCapable ? result : sideEffectCapable.generateFinalResult(result); temp.set(sideEffectKey, finalResult); sideEffects.put(sideEffectKey, finalResult); } } return sideEffects; }
private void processMemorySideEffects(final Memory memory) { // update the traversal side-effects with the state of the memory after the OLAP job execution final TraversalSideEffects sideEffects = this.getTraversal().getSideEffects(); for (final String key : memory.keys()) { if (sideEffects.exists(key)) { // halted traversers should never be propagated through sideEffects assert !key.equals(TraversalVertexProgram.HALTED_TRAVERSERS); sideEffects.set(key, memory.get(key)); } } }
@Override protected E supply() { if (null == this.sideEffectCapableSteps) { this.sideEffectCapableSteps = new HashMap<>(); Traversal.Admin<?, ?> parentTraversal = this.getTraversal(); while (!(parentTraversal instanceof EmptyTraversal)) { for (final SideEffectCapable<Object, E> capableStep : TraversalHelper.getStepsOfAssignableClassRecursively(SideEffectCapable.class, parentTraversal)) { if (this.sideEffectKeys.contains(capableStep.getSideEffectKey()) && !this.sideEffectCapableSteps.containsKey(capableStep.getSideEffectKey())) this.sideEffectCapableSteps.put(capableStep.getSideEffectKey(), capableStep); } if (this.sideEffectKeys.size() == this.sideEffectCapableSteps.size()) break; parentTraversal = parentTraversal.getParent().asStep().getTraversal(); } } //////////// if (this.sideEffectKeys.size() == 1) { final String sideEffectKey = this.sideEffectKeys.get(0); final E result = this.getTraversal().getSideEffects().<E>get(sideEffectKey); final SideEffectCapable<Object, E> sideEffectCapable = this.sideEffectCapableSteps.get(sideEffectKey); final E finalResult = null == sideEffectCapable ? result : sideEffectCapable.generateFinalResult(result); this.getTraversal().getSideEffects().set(sideEffectKey, finalResult); return finalResult; } else return (E) this.getMapOfSideEffects(); }
this.traversal.get().getSideEffects().set(profileStep.getSideEffectKey(), profileStep.generateFinalResult(this.traversal.get().getSideEffects().get(profileStep.getSideEffectKey())));