@Override public <V> void register(final String key, final Supplier<V> initialValue, final BinaryOperator<V> reducer) { this.sideEffects.register(key, initialValue, reducer); }
@Override public void apply(final Traversal.Admin<?, ?> traversal) { if (traversal.getParent() instanceof EmptyStep) { this.sideEffects.forEach(triplet -> traversal.getSideEffects().register(triplet.getValue0(), triplet.getValue1(), triplet.getValue2())); } }
@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); } }
@Override public <V> void register(final String key, final Supplier<V> initialValue, final BinaryOperator<V> reducer) { this.sideEffects.register(key, initialValue, reducer); }
this.traversal.get().getSideEffects().register(profileStep.getId(), new MutableMetricsSupplier(profileStep.getPreviousStep()), ProfileStep.ProfileBiOperator.instance());
@Override public void apply(final Traversal.Admin<?, ?> traversal) { if (traversal.getParent() instanceof EmptyStep) { this.sideEffects.forEach(triplet -> traversal.getSideEffects().register(triplet.getValue0(), triplet.getValue1(), triplet.getValue2())); } }
@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); } }
this.traversal.get().getSideEffects().register(profileStep.getId(), new MutableMetricsSupplier(profileStep.getPreviousStep()), ProfileStep.ProfileBiOperator.instance());