[
https://issues.apache.org/jira/browse/TINKERPOP-2978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17778852#comment-17778852
]
ASF GitHub Bot commented on TINKERPOP-2978:
-------------------------------------------
kenhuuu commented on code in PR #2302:
URL: https://github.com/apache/tinkerpop/pull/2302#discussion_r1369372294
##########
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java:
##########
@@ -1672,6 +1678,90 @@ public default GraphTraversal<S, Long> dateDiff(final
Traversal<?, Date> dateTra
return this.asAdmin().addStep(new DateDiffStep<>(this.asAdmin(),
dateTraversal));
}
+ /**
+ * Calculates the difference between the list traverser and list argument.
+ *
+ * @return the traversal with an appended {@link DifferenceStep}.
+ * @see <a
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#difference-step"
target="_blank">Reference Documentation - Difference Step</a>
+ * @since 3.7.1
+ */
+ public default GraphTraversal<S, Set<?>> difference(final Object values) {
+ this.asAdmin().getBytecode().addStep(Symbols.difference, values);
+ return this.asAdmin().addStep(new DifferenceStep<>(this.asAdmin(),
values));
+ }
+
+ /**
+ * Calculates the disjunction between the list traverser and list argument.
+ *
+ * @return the traversal with an appended {@link DisjunctStep}.
+ * @see <a
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#disjunct-step"
target="_blank">Reference Documentation - Disjunct Step</a>
+ * @since 3.7.1
+ */
+ public default GraphTraversal<S, Set<?>> disjunct(final Object values) {
+ this.asAdmin().getBytecode().addStep(Symbols.disjunct, values);
+ return this.asAdmin().addStep(new DisjunctStep<>(this.asAdmin(),
values));
+ }
+
+ /**
+ * Calculates the intersection between the list traverser and list
argument.
+ *
+ * @return the traversal with an appended {@link IntersectStep}.
+ * @see <a
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#intersect-step"
target="_blank">Reference Documentation - Intersect Step</a>
+ * @since 3.7.1
+ */
+ public default GraphTraversal<S, Set<?>> intersect(final Object values) {
+ this.asAdmin().getBytecode().addStep(Symbols.intersect, values);
+ return this.asAdmin().addStep(new IntersectStep<>(this.asAdmin(),
values));
+ }
+
+ /**
+ * Joins together the elements of the incoming list traverser together
with the provided delimiter.
+ *
+ * @return the traversal with an appended {@link ConjoinStep}.
+ * @see <a
href="http://tinkerpop.apache.org/docs/${project.version}/reference/#join-step"
target="_blank">Reference Documentation - Join Step</a>
Review Comment:
updated.
> Add List Manipulation Steps to Gremlin
> --------------------------------------
>
> Key: TINKERPOP-2978
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2978
> Project: TinkerPop
> Issue Type: Improvement
> Components: language
> Reporter: Cole Greer
> Priority: Major
>
> Today Gremlin requires that users fall back to closures to handle many common
> list manipulation options that users want to do on data in the graph. This
> is a problem for many users as many of the providers prevent the use of
> closures due to the security risks so for these users there is no way to
> manipulate lists directly.
> A full list of proposed functions and semantics is detailed here:
> https://github.com/apache/tinkerpop/blob/3.7.0/docs/src/dev/future/proposal-3-remove-closures.asciidoc
--
This message was sent by Atlassian Jira
(v8.20.10#820010)