GitHub user FlorianHockmann opened a pull request: https://github.com/apache/tinkerpop/pull/815
TINKERPOP-1901 Transform enums into classes in Gremlin.Net https://issues.apache.org/jira/browse/TINKERPOP-1901 The various Gremlin tokens like `T`, `Order`, and so on are now classes in Gremlin.Net so they can implement interfaces which makes them usable in more steps. Using the example from the issue description, the Java step ```java public default <V> GraphTraversal<S, E> by(final Traversal<?, ?> traversal, final Comparator<V> comparator) ``` now has this equivalent in Gremlin.Net: ```cs public GraphTraversal<S, E> By (ITraversal traversal, IComparator comparator) ``` and `Order` implements `IComparator`. This example already shows that the Gremlin.Net versions of those **interfaces aren't generic** which means in practice that they can still be used in some places where it shouldn't be possible. Especially `T` implements `Function<Element, Object>` in Java, but simply `IFunction` in Gremlin.Net. So users can still use `T` for steps that don't take a lambda with an `Element` argument. However, this was also possible before as we simply had the `object` type in those places before this PR. So I'd say that we tackle that one later. All tests pass with `docker/build.sh -t -i -d` VOTE +1 You can merge this pull request into a Git repository by running: $ git pull https://github.com/apache/tinkerpop TINKERPOP-1901 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/tinkerpop/pull/815.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #815 ---- commit dcf3da3917a9626d432ef26089bb05c6a15158ed Author: Florian Hockmann <fh@...> Date: 2018-03-10T18:17:15Z TINKERPOP-1901 Transformed Gremlin.Net enums into classes commit d012171e97d5d87108eef3d0257a8b859f77de04 Author: Florian Hockmann <fh@...> Date: 2018-03-10T18:21:46Z TINKERPOP-1901 Add interfaces for tokens in Gremlin.Net These interfaces simply represent their Java counterparts which allows to use them as arguments in Gremlin steps. ---- ---