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 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]

Reply via email to