andreachild commented on code in PR #3214:
URL: https://github.com/apache/tinkerpop/pull/3214#discussion_r2377178983
##########
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RangeGlobalStepPlaceholder.java:
##########
@@ -126,8 +124,42 @@ public GValue<Long> getHighRangeAsGValue() {
}
@Override
- protected Traverser.Admin<S> processNextStart() throws
NoSuchElementException {
- throw new IllegalStateException("RangeGlobalGValueContract is not
executable");
+ protected boolean filter(Traverser.Admin<S> traverser) {
+ throw new IllegalStateException("RangeGlobalStepPlaceholder is not
executable");
+ }
+
+ @Override
+ public void setBypass(final boolean bypass) {
+ this.bypass = bypass;
+ }
+
+ @Override
+ public void processAllStarts() {
+ throw new IllegalStateException("RangeGlobalStepPlaceholder is not
executable");
+ }
+
+ @Override
+ public boolean hasNextBarrier() {
Review Comment:
The barrier related methods are duplicated between placeholder and step and
can be moved to shared contract interface. For example in the contract
interface:
```
ExpandableStepIterator<S> getStarts();
@Override
default boolean hasNextBarrier() {
return getStarts().hasNext();
}
@Override
default TraverserSet<S> nextBarrier() throws NoSuchElementException {
if(!getStarts().hasNext())
throw FastNoSuchElementException.instance();
final TraverserSet<S> barrier = (TraverserSet<S>)
this.getTraversal().getTraverserSetSupplier().get();
while (getStarts().hasNext()) {
barrier.add(getStarts().next());
}
return barrier;
}
@Override
default void addBarrier(final TraverserSet<S> barrier) {
IteratorUtils.removeOnNext(barrier.iterator()).forEachRemaining(traverser -> {
traverser.setSideEffects(this.getTraversal().getSideEffects());
this.addStart(traverser);
});
}
```
This is also the same for the `TailGlobalStep` and
`TailGlobalStepPlaceholder`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]