From ac8a5bad60b4e2e4b2d05b9abd35ccf1cf373c6d Mon Sep 17 00:00:00 2001 From: Johannes Rudolph Date: Thu, 8 Oct 2015 17:09:37 +0200 Subject: [PATCH] +str #18679 add BidiFlow.mapMaterializedValue --- .../src/main/scala/akka/stream/javadsl/BidiFlow.scala | 6 ++++++ .../src/main/scala/akka/stream/scaladsl/BidiFlow.scala | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/akka-stream/src/main/scala/akka/stream/javadsl/BidiFlow.scala b/akka-stream/src/main/scala/akka/stream/javadsl/BidiFlow.scala index 723df5d6dd..15d1283916 100644 --- a/akka-stream/src/main/scala/akka/stream/javadsl/BidiFlow.scala +++ b/akka-stream/src/main/scala/akka/stream/javadsl/BidiFlow.scala @@ -152,6 +152,12 @@ class BidiFlow[-I1, +O1, -I2, +O2, +Mat](delegate: scaladsl.BidiFlow[I1, O1, I2, */ def reversed: BidiFlow[I2, O2, I1, O1, Mat] = new BidiFlow(delegate.reversed) + /** + * Transform only the materialized value of this BidiFlow, leaving all other properties as they were. + */ + def mapMaterializedValue[Mat2](f: function.Function[Mat, Mat2]): BidiFlow[I1, O1, I2, O2, Mat2] = + new BidiFlow(delegate.mapMaterializedValue(f.apply _)) + override def withAttributes(attr: Attributes): BidiFlow[I1, O1, I2, O2, Mat] = new BidiFlow(delegate.withAttributes(attr)) } diff --git a/akka-stream/src/main/scala/akka/stream/scaladsl/BidiFlow.scala b/akka-stream/src/main/scala/akka/stream/scaladsl/BidiFlow.scala index f937cef6d4..8fc258cd23 100644 --- a/akka-stream/src/main/scala/akka/stream/scaladsl/BidiFlow.scala +++ b/akka-stream/src/main/scala/akka/stream/scaladsl/BidiFlow.scala @@ -117,6 +117,12 @@ final class BidiFlow[-I1, +O1, -I2, +O2, +Mat](private[stream] override val modu */ def reversed: BidiFlow[I2, O2, I1, O1, Mat] = new BidiFlow(module.replaceShape(shape.reversed)) + /** + * Transform only the materialized value of this BidiFlow, leaving all other properties as they were. + */ + def mapMaterializedValue[Mat2](f: Mat ⇒ Mat2): BidiFlow[I1, O1, I2, O2, Mat2] = + new BidiFlow(module.transformMaterializedValue(f.asInstanceOf[Any ⇒ Any])) + override def withAttributes(attr: Attributes): BidiFlow[I1, O1, I2, O2, Mat] = new BidiFlow(module.withAttributes(attr).nest())