Skip to content

Commit 56a4bda

Browse files
committed
and step for dsl
1 parent 2550191 commit 56a4bda

File tree

1 file changed

+19
-1
lines changed
  • gremlin-scala/src/main/scala/gremlin/scala/dsl

1 file changed

+19
-1
lines changed

gremlin-scala/src/main/scala/gremlin/scala/dsl/Steps.scala

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@ class Steps[EndDomain, EndGraph, Labels <: HList](val raw: GremlinScala[EndGraph
233233
)
234234

235235
/**
236-
* The or step is a filter with multiple or related filter traversals.
236+
* The or step is a filter with multiple `or` related filter traversals.
237237
*/
238238
def or(orTraversals: (Steps[EndDomain, EndGraph, HNil] => Steps[_, _, _])*)
239239
: Steps[EndDomain, EndGraph, Labels] = {
@@ -250,6 +250,24 @@ class Steps[EndDomain, EndGraph, Labels <: HList](val raw: GremlinScala[EndGraph
250250
)
251251
}
252252

253+
/**
254+
* The and step is a filter with multiple `and` related filter traversals.
255+
*/
256+
def and(andTraversals: (Steps[EndDomain, EndGraph, HNil] => Steps[_, _, _])*)
257+
: Steps[EndDomain, EndGraph, Labels] = {
258+
val rawAndTraversals = andTraversals.map {
259+
andTraversal => (rawTraversal: GremlinScala[EndGraph]) =>
260+
andTraversal(
261+
new Steps[EndDomain, EndGraph, HNil](
262+
rawTraversal.asInstanceOf[GremlinScala.Aux[EndGraph, HNil]])
263+
).raw
264+
}
265+
266+
new Steps[EndDomain, EndGraph, Labels](
267+
raw.and(rawAndTraversals: _*)
268+
)
269+
}
270+
253271
/**
254272
* Step that orders nodes according to f.
255273
* */

0 commit comments

Comments
 (0)