Skip to content

Commit d4a48be

Browse files
committed
CTR: Update CONCRETE_STEPS list for all step contracts
1 parent 2a42652 commit d4a48be

23 files changed

+109
-40
lines changed

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/P.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@
3030
import java.util.Collections;
3131
import java.util.HashMap;
3232
import java.util.HashSet;
33-
import java.util.List;
3433
import java.util.Map;
35-
import java.util.Optional;
3634
import java.util.Set;
3735
import java.util.function.Predicate;
3836
import java.util.stream.Collectors;

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@
5151
import org.apache.tinkerpop.gremlin.process.traversal.step.Configuring;
5252
import org.apache.tinkerpop.gremlin.process.traversal.step.filter.IsStepPlaceholder;
5353
import org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeGlobalStepPlaceholder;
54-
import org.apache.tinkerpop.gremlin.process.traversal.step.filter.RangeLocalStepPlaceholder;
5554
import org.apache.tinkerpop.gremlin.process.traversal.step.filter.TailGlobalStepPlaceholder;
56-
import org.apache.tinkerpop.gremlin.process.traversal.step.filter.TailLocalStepPlaceholder;
55+
import org.apache.tinkerpop.gremlin.process.traversal.step.map.RangeLocalStepPlaceholder;
56+
import org.apache.tinkerpop.gremlin.process.traversal.step.map.TailLocalStepPlaceholder;
5757
import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddEdgeStepPlaceholder;
5858
import org.apache.tinkerpop.gremlin.process.traversal.step.map.AddVertexStepPlaceholder;
5959
import org.apache.tinkerpop.gremlin.process.traversal.step.map.CallStepPlaceholder;

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/GValue.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -340,23 +340,6 @@ public static Object[] resolveToValues(final GValue<?>[] gvalues) {
340340
return values;
341341
}
342342

343-
/**
344-
* Converts possible {@link GValue} objects argument array to their values to prevent them from leaking to the Graph API.
345-
* Providers extending from this step should use this method to get actual values to prevent any {@link GValue}
346-
* objects from leaking to the Graph API.
347-
*/
348-
public static Object[] resolveToValues(final Object[] gvalues) {
349-
final Object[] values = new Object[gvalues.length];
350-
for (int i = 0; i < gvalues.length; i++) {
351-
values[i] = gvalues[i] instanceof GValue ? ((GValue<?>) gvalues[i]).get() : gvalues[i];
352-
if (values[i] instanceof GValueConstantTraversal) {
353-
// TODO:: This seems out of place here, find a better home for this.
354-
values[i] = ((GValueConstantTraversal<?, ?>) values[i]).getConstantTraversal();
355-
}
356-
}
357-
return values;
358-
}
359-
360343
/**
361344
* Tests if any of the objects are GValues.
362345
*/

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/IsStepContract.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,19 @@
2222
import org.apache.tinkerpop.gremlin.process.traversal.Step;
2323
import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
2424

25+
import java.util.List;
2526
import java.util.Set;
2627

2728
/**
2829
* Defines the contract for steps containing a single {@link P}.
2930
*/
3031
public interface IsStepContract<S> extends Step<S, S> {
3132

33+
/**
34+
* Concrete implementations of this contract that can be referenced as TinkerPop implementations.
35+
*/
36+
List<Class<? extends Step>> CONCRETE_STEPS = List.of(IsStep.class, IsStepPlaceholder.class);
37+
3238
/**
3339
* Retrieves the step's predicate.
3440
*

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RangeGlobalStepContract.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,19 @@
2929
import org.apache.tinkerpop.gremlin.process.traversal.util.FastNoSuchElementException;
3030
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
3131

32+
import java.util.List;
3233
import java.util.NoSuchElementException;
3334

3435
/**
3536
* Defines the contract for {@code range} related steps.
3637
*/
3738
public interface RangeGlobalStepContract<S> extends Step<S, S>, FilteringBarrier<TraverserSet<S>>, Ranging, Bypassing {
3839

40+
/**
41+
* Concrete implementations of this contract that can be referenced as TinkerPop implementations.
42+
*/
43+
List<Class<? extends Step>> CONCRETE_STEPS = List.of(RangeGlobalStep.class, RangeGlobalStepPlaceholder.class);
44+
3945
/**
4046
* Retrieves the lower bound of the range.
4147
*

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/TailGlobalStepContract.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,16 @@
2727
import org.apache.tinkerpop.gremlin.process.traversal.util.FastNoSuchElementException;
2828
import org.apache.tinkerpop.gremlin.util.iterator.IteratorUtils;
2929

30+
import java.util.List;
3031
import java.util.NoSuchElementException;
3132

3233
public interface TailGlobalStepContract<S> extends Step<S, S>, Bypassing, FilteringBarrier<TraverserSet<S>> {
34+
35+
/**
36+
* Concrete implementations of this contract that can be referenced as TinkerPop implementations.
37+
*/
38+
List<Class<? extends Step>> CONCRETE_STEPS = List.of(TailGlobalStep.class, TailGlobalStepPlaceholder.class);
39+
3340
Long getLimit();
3441

3542
default GValue<Long> getLimitAsGValue() {

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddEdgeStepContract.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
*/
1919
package org.apache.tinkerpop.gremlin.process.traversal.step.map;
2020

21-
import java.util.Arrays;
22-
import java.util.Collections;
2321
import java.util.List;
2422

2523
import org.apache.tinkerpop.gremlin.process.traversal.Step;
@@ -40,7 +38,7 @@ public interface AddEdgeStepContract<S> extends AddElementStepContract<S, Edge>,
4038
/**
4139
* Concrete implementations of this contract that can be referenced as TinkerPop implementations.
4240
*/
43-
List<Class<? extends Step>> CONCRETE_STEPS = Collections.unmodifiableList(Arrays.asList(AddEdgeStep.class, AddEdgeStepPlaceholder.class));
41+
List<Class<? extends Step>> CONCRETE_STEPS = List.of(AddEdgeStep.class, AddEdgeStepPlaceholder.class, AddEdgeStartStep.class, AddEdgeStartStepPlaceholder.class);
4442

4543
/**
4644
* Gets the "from" vertex for the edge to be added. If the "from" vertex was added as a {@link Vertex}, ID, {@link GValue},

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddElementStepContract.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,23 @@
2020

2121
import org.apache.tinkerpop.gremlin.process.traversal.Step;
2222
import org.apache.tinkerpop.gremlin.process.traversal.step.Configuring;
23-
import org.apache.tinkerpop.gremlin.process.traversal.step.GValue;
2423
import org.apache.tinkerpop.gremlin.process.traversal.step.PropertiesHolder;
2524
import org.apache.tinkerpop.gremlin.process.traversal.step.Scoping;
2625
import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalParent;
2726

2827
import java.util.HashSet;
28+
import java.util.List;
29+
import java.util.stream.Collectors;
30+
import java.util.stream.Stream;
2931

3032
public interface AddElementStepContract<S, E> extends Step<S, E>, PropertiesHolder, TraversalParent, Scoping, Configuring {
33+
34+
/**
35+
* Concrete implementations of this contract that can be referenced as TinkerPop implementations.
36+
*/
37+
List<Class<? extends Step>> CONCRETE_STEPS = Stream.of(AddVertexStepContract.CONCRETE_STEPS, AddEdgeStepContract.CONCRETE_STEPS)
38+
.flatMap(List::stream).collect(Collectors.toList());
39+
3140
Object getLabel();
3241

3342
default Object getLabelWithGValue() {

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/AddVertexStepContract.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,14 @@
2323
import org.apache.tinkerpop.gremlin.process.traversal.step.util.event.Event;
2424
import org.apache.tinkerpop.gremlin.structure.Vertex;
2525

26+
import java.util.List;
27+
2628
public interface AddVertexStepContract<S> extends Step<S, Vertex>, AddElementStepContract<S, Vertex>, Writing<Event.VertexAddedEvent> {
2729

30+
/**
31+
* Concrete implementations of this contract that can be referenced as TinkerPop implementations.
32+
*/
33+
List<Class<? extends Step>> CONCRETE_STEPS = List.of(AddVertexStep.class, AddVertexStepPlaceholder.class, AddVertexStartStep.class, AddVertexStartStepPlaceholder.class);
34+
2835
boolean hasUserProvidedLabel();
2936
}

gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/CallStepContract.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,16 @@
2525
import org.apache.tinkerpop.gremlin.structure.service.Service;
2626
import org.apache.tinkerpop.gremlin.structure.service.ServiceRegistry;
2727

28+
import java.util.List;
2829
import java.util.Map;
2930

3031
public interface CallStepContract<S, E> extends Step<S, E>, Configuring, TraversalParent {
32+
33+
/**
34+
* Concrete implementations of this contract that can be referenced as TinkerPop implementations.
35+
*/
36+
List<Class<? extends Step>> CONCRETE_STEPS = List.of(CallStep.class, CallStepContract.class);
37+
3138
Service<S, E> service();
3239

3340
default Service<S, E> serviceGValueSafe() {

0 commit comments

Comments
 (0)