Skip to content

Commit

Permalink
include node id in json (for StoredNode) (#4979)
Browse files Browse the repository at this point in the history
fixes #4976
  • Loading branch information
mpollmeier authored Sep 30, 2024
1 parent fa22d81 commit f1e3270
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -82,14 +82,19 @@ class Steps[A](val traversal: Iterator[A]) extends AnyVal {
object Steps {
private lazy val nodeSerializer = new CustomSerializer[AbstractNode](implicit format =>
(
{ case _ => ??? },
{ case _ => ??? }, // deserializer not required for now
{ case node: AbstractNode =>
val elementMap = (0 until node.productArity).map { i =>
val elementMap = Map.newBuilder[String, Any]
(0 until node.productArity).foreach { i =>
val label = node.productElementName(i)
val element = node.productElement(i)
label -> element
}.toMap + ("_label" -> node.label)
Extraction.decompose(elementMap)
elementMap.addOne(label -> element)
}
elementMap.addOne("_label" -> node.label)
if (node.isInstanceOf[StoredNode]) {
elementMap.addOne("_id" -> node.asInstanceOf[StoredNode].id())
}
Extraction.decompose(elementMap.result())
}
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,9 @@ class StepsTest extends AnyWordSpec with Matchers {
val parsed = parse(json).children.head // exactly one result for the above query
(parsed \ "_label") shouldBe JString("METHOD")
(parsed \ "name") shouldBe JString("foo")

// id should be defined, but we don't care what number it is
(parsed \ "_id") shouldBe a[JInt]
}

"operating on NewNode" in {
Expand Down

0 comments on commit f1e3270

Please sign in to comment.