From c87b5420017ede4b1fb99c2d8925e58bb9b87ee7 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 19 Aug 2016 16:13:03 -0600 Subject: [PATCH] [Issue #166] Make ScalaElement.updateWith(x) remove properties which are None in x --- .../src/main/scala/gremlin/scala/ScalaElement.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gremlin-scala/src/main/scala/gremlin/scala/ScalaElement.scala b/gremlin-scala/src/main/scala/gremlin/scala/ScalaElement.scala index 5658f6ad..4f196721 100644 --- a/gremlin-scala/src/main/scala/gremlin/scala/ScalaElement.scala +++ b/gremlin-scala/src/main/scala/gremlin/scala/ScalaElement.scala @@ -56,7 +56,11 @@ trait ScalaElement[ElementType <: Element] { def updateWith[CC <: Product: Marshallable](update: CC): ElementType = { val propMap = implicitly[Marshallable[CC]].fromCC(update).valueMap - propMap foreach {case (prop, value) => element.property(prop, value)} + this.valueMap.keySet.diff(propMap.keySet) foreach { key => + val prop = element.property(key) + if (prop.isPresent) prop.remove() + } + propMap foreach {case (key, value) => element.property(key, value)} element }