+str #17108 adds arity-numbers to javadsl for nicer compile errors
Resolves #17108
This commit is contained in:
parent
6cc6363734
commit
4e796a5eec
8 changed files with 68 additions and 19 deletions
|
|
@ -7,6 +7,7 @@ import java.util.Arrays;
|
|||
import java.util.List;
|
||||
import java.util.HashSet;
|
||||
|
||||
import akka.stream.javadsl.japi.Function;
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Test;
|
||||
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ public class FlowGraphTest extends StreamTest {
|
|||
final Source<Integer, BoxedUnit> in3 = Source.single(100);
|
||||
final Source<Integer, BoxedUnit> in4 = Source.single(1000);
|
||||
|
||||
final Graph<FanInShape4<Integer, Integer, Integer, Integer, Integer>, BoxedUnit> sumZip = ZipWith.create(
|
||||
final Graph<FanInShape4<Integer, Integer, Integer, Integer, Integer>, BoxedUnit> sumZip = ZipWith.create4(
|
||||
new Function4<Integer, Integer, Integer, Integer, Integer>() {
|
||||
@Override public Integer apply(Integer i1, Integer i2, Integer i3, Integer i4) throws Exception {
|
||||
return i1 + i2 + i3 + i4;
|
||||
|
|
|
|||
|
|
@ -16,10 +16,15 @@ trait BidiFlowCreate {
|
|||
def create[I1, O1, I2, O2](block: japi.Function[FlowGraph.Builder[Unit], BidiShape[I1, O1, I2, O2]]): BidiFlow[I1, O1, I2, O2, Unit] =
|
||||
new BidiFlow(scaladsl.BidiFlow() { b ⇒ block.apply(b.asJava) })
|
||||
|
||||
def create[I1, O1, I2, O2, S <: Shape, M](g1: Graph[S, M], block: japi.Function2[FlowGraph.Builder[M], S, BidiShape[I1, O1, I2, O2]]): BidiFlow[I1, O1, I2, O2, M] =
|
||||
def create[I1, O1, I2, O2, S <: Shape, M](g1: Graph[S, M],
|
||||
block: japi.Function2[FlowGraph.Builder[M], S, BidiShape[I1, O1, I2, O2]]): BidiFlow[I1, O1, I2, O2, M] =
|
||||
new BidiFlow(scaladsl.BidiFlow(g1) { b ⇒ s => block.apply(b.asJava, s) })
|
||||
|
||||
[2..21#def create[I##1, O##1, I##2, O##2, [#S1 <: Shape#], [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
def create[I1, O1, I2, O2, S1 <: Shape, S2 <: Shape, M1, M2, M](g1: Graph[S1, M1], g2: Graph[S2, M2], combineMat: japi.Function2[M1, M2, M],
|
||||
block: japi.Function3[FlowGraph.Builder[M], S1, S2, BidiShape[I1, O1, I2, O2]]): BidiFlow[I1, O1, I2, O2, M] =
|
||||
new BidiFlow(scaladsl.BidiFlow(g1, g2)(combineMat.apply _) { b => (s1, s2) => block.apply(b.asJava, s1, s2) })
|
||||
|
||||
[3..21#def create1[I##1, O##1, I##2, O##2, [#S1 <: Shape#], [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
block: japi.Function2[FlowGraph.Builder[M], [#S1#], BidiShape[I##1, O##1, I##2, O##2]]): BidiFlow[I##1, O##1, I##2, O##2, M] =
|
||||
new BidiFlow(scaladsl.BidiFlow([#g1#])(combineMat.apply _) { b => ([#s1#]) => block.apply(b.asJava, [#s1#]) })#
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,11 @@ trait FlowCreate {
|
|||
def create[I, O, S <: Shape, M](g1: Graph[S, M], block: japi.Function2[FlowGraph.Builder[M], S, Inlet[I] Pair Outlet[O]]): Flow[I, O, M] =
|
||||
new Flow(scaladsl.Flow(g1) { b ⇒ s => block.apply(b.asJava, s) })
|
||||
|
||||
[2..21#def create[I, O, [#S1 <: Shape#], [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
def create[I, O, S1 <: Shape, S2 <: Shape, M1, M2, M](g1: Graph[S1, M1], g2: Graph[S2, M2], combineMat: japi.Function2[M1, M2, M],
|
||||
block: japi.Function3[FlowGraph.Builder[M], S1, S2, Inlet[I] Pair Outlet[O]]): Flow[I, O, M] =
|
||||
new Flow(scaladsl.Flow(g1, g2)(combineMat.apply _) { b => (s1, s2) => block.apply(b.asJava, s1, s2) })
|
||||
|
||||
[3..21#def create1[I, O, [#S1 <: Shape#], [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
block: japi.Function2[FlowGraph.Builder[M], [#S1#], Inlet[I] Pair Outlet[O]]): Flow[I, O, M] =
|
||||
new Flow(scaladsl.Flow([#g1#])(combineMat.apply _) { b => ([#s1#]) => block.apply(b.asJava, [#s1#]) })#
|
||||
|
||||
|
|
|
|||
|
|
@ -18,17 +18,23 @@ trait GraphCreate {
|
|||
def partial[S <: Shape](block: japi.Function[FlowGraph.Builder[Unit], S]): Graph[S, Unit] =
|
||||
scaladsl.FlowGraph.partial() { b ⇒ block.apply(b.asJava) }
|
||||
|
||||
def closed[S1 <: Shape, M](g1: Graph[S1, M], block: japi.Procedure2[FlowGraph.Builder[M], S1]): RunnableFlow[M] =
|
||||
def closed[S1 <: Shape, M](g1: Graph[S1, M],
|
||||
block: japi.Procedure2[FlowGraph.Builder[M], S1]): RunnableFlow[M] =
|
||||
scaladsl.FlowGraph.closed(g1) { b ⇒ s => block.apply(b.asJava, s) }
|
||||
|
||||
def partial[S1 <: Shape, S <: Shape, M](g1: Graph[S1, M], block: japi.Function2[FlowGraph.Builder[M], S1, S]): Graph[S, M] =
|
||||
def partial[S1 <: Shape, S <: Shape, M](g1: Graph[S1, M],
|
||||
block: japi.Function2[FlowGraph.Builder[M], S1, S]): Graph[S, M] =
|
||||
scaladsl.FlowGraph.partial(g1) { b ⇒ s => block.apply(b.asJava, s) }
|
||||
|
||||
[2..21#def closed[[#S1 <: Shape#], [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
def closed[S1 <: Shape, S2 <: Shape, M1, M2, M](g1: Graph[S1, M1], g2: Graph[S2, M2], combineMat: japi.Function2[M1, M2, M],
|
||||
block: japi.Procedure3[FlowGraph.Builder[M], S1, S2]): RunnableFlow[M] =
|
||||
scaladsl.FlowGraph.closed(g1, g2)(combineMat.apply _) { b => (s1, s2) => block.apply(b.asJava, s1, s2) }
|
||||
|
||||
[3..21#def closed1[[#S1 <: Shape#], [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
block: japi.Procedure2[FlowGraph.Builder[M], [#S1#]]): RunnableFlow[M] =
|
||||
scaladsl.FlowGraph.closed([#g1#])(combineMat.apply _) { b => ([#s1#]) => block.apply(b.asJava, [#s1#]) }
|
||||
|
||||
def partial[[#S1 <: Shape#], S <: Shape, [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
def partial1[[#S1 <: Shape#], S <: Shape, [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
block: japi.Function2[FlowGraph.Builder[M], [#S1#], S]): Graph[S, M] =
|
||||
scaladsl.FlowGraph.partial([#g1#])(combineMat.apply _) { b => ([#s1#]) => block.apply(b.asJava, [#s1#]) }#
|
||||
|
||||
|
|
|
|||
|
|
@ -10,20 +10,33 @@ import akka.stream.scaladsl.JavaConverters._
|
|||
trait SinkCreate {
|
||||
|
||||
/**
|
||||
* Creates a `Sink` by using a `FlowGraph.Builder` on a block that expects
|
||||
* a [[FlowGraph.Builder]] and returns the `UndefinedSource`.
|
||||
* Creates a `Sink` by using a `FlowGraph.Builder[Unit]` on a block that expects
|
||||
* a [[FlowGraph.Builder]] and returns an [[Inlet]].
|
||||
*/
|
||||
def create[T](block: japi.Function[FlowGraph.Builder[Unit], Inlet[T]]): Sink[T, Unit] =
|
||||
new Sink(scaladsl.Sink() { b ⇒ block.apply(b.asJava) })
|
||||
|
||||
/**
|
||||
* Creates a `Sink` by using a `FlowGraph.Builder` on a block that expects
|
||||
* a [[FlowGraph.Builder]] and returns the `UndefinedSource`.
|
||||
* Creates a `Sink` by using a `FlowGraph.Builder[M]` on a block that expects
|
||||
* a [[FlowGraph.Builder]] and 1 graph and then returns an [[Inlet]].
|
||||
*/
|
||||
def create[T, S <: Shape, M](g1: Graph[S, M], block: japi.Function2[FlowGraph.Builder[M], S, Inlet[T]]): Sink[T, M] =
|
||||
def create[T, S <: Shape, M](g1: Graph[S, M],
|
||||
block: japi.Function2[FlowGraph.Builder[M], S, Inlet[T]]): Sink[T, M] =
|
||||
new Sink(scaladsl.Sink(g1) { b ⇒ s => block.apply(b.asJava, s) })
|
||||
|
||||
[2..21#def create[T, [#S1 <: Shape#], [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
/**
|
||||
* Creates a `Sink` by using a `FlowGraph.Builder[M]` on a block that expects
|
||||
* a [[FlowGraph.Builder]] and 2 graphs and then returns an [[Inlet]].
|
||||
*/
|
||||
def create[T, S1 <: Shape, S2 <: Shape, M1, M2, M](g1: Graph[S1, M1], g2: Graph[S2, M2], combineMat: japi.Function2[M1, M2, M],
|
||||
block: japi.Function3[FlowGraph.Builder[M], S1, S2, Inlet[T]]): Sink[T, M] =
|
||||
new Sink(scaladsl.Sink(g1, g2)(combineMat.apply _) { b => (s1, s2) => block.apply(b.asJava, s1, s2) })
|
||||
|
||||
[3..21#/**
|
||||
* Creates a `Sink` by using a `FlowGraph.Builder[M]` on a block that expects
|
||||
* a [[FlowGraph.Builder]] and 1 graphs and then returns an [[Inlet]].
|
||||
*/
|
||||
def create1[T, [#S1 <: Shape#], [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
block: japi.Function2[FlowGraph.Builder[M], [#S1#], Inlet[T]]): Sink[T, M] =
|
||||
new Sink(scaladsl.Sink([#g1#])(combineMat.apply _) { b => ([#s1#]) => block.apply(b.asJava, [#s1#]) })#
|
||||
|
||||
|
|
|
|||
|
|
@ -9,13 +9,34 @@ import akka.stream.scaladsl.JavaConverters._
|
|||
|
||||
trait SourceCreate {
|
||||
|
||||
/**
|
||||
* Creates a `Source` by using a `FlowGraph.Builder[Unit]` on a block that expects
|
||||
* a [[FlowGraph.Builder]] and returns an [[Outlet]].
|
||||
*/
|
||||
def create[T](block: japi.Function[FlowGraph.Builder[Unit], Outlet[T]]): Source[T, Unit] =
|
||||
new Source(scaladsl.Source() { b ⇒ block.apply(b.asJava) })
|
||||
|
||||
def create[T, S <: Shape, M](g1: Graph[S, M], block: japi.Function2[FlowGraph.Builder[M], S, Outlet[T]]): Source[T, M] =
|
||||
/**
|
||||
* Creates a `Source` by using a `FlowGraph.Builder[M]` on a block that expects
|
||||
* a [[FlowGraph.Builder]] and 1 graph and then returns an [[Outlet]].
|
||||
*/
|
||||
def create[T, S <: Shape, M](g1: Graph[S, M],
|
||||
block: japi.Function2[FlowGraph.Builder[M], S, Outlet[T]]): Source[T, M] =
|
||||
new Source(scaladsl.Source(g1) { b ⇒ s => block.apply(b.asJava, s) })
|
||||
|
||||
[2..21#def create[T, [#S1 <: Shape#], [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
/**
|
||||
* Creates a `Source` by using a `FlowGraph.Builder[M]` on a block that expects
|
||||
* a [[FlowGraph.Builder]] and 2 graphs and then returns an [[Outlet]].
|
||||
*/
|
||||
def create[T, S1 <: Shape, S2 <: Shape, M1, M2, M](g1: Graph[S1, M1], g2: Graph[S2, M2], combineMat: japi.Function2[M1, M2, M],
|
||||
block: japi.Function3[FlowGraph.Builder[M], S1, S2, Outlet[T]]): Source[T, M] =
|
||||
new Source(scaladsl.Source(g1, g2)(combineMat.apply _) { b => (s1, s2) => block.apply(b.asJava, s1, s2) })
|
||||
|
||||
[3..21#/**
|
||||
* Creates a `Source` by using a `FlowGraph.Builder[M]` on a block that expects
|
||||
* a [[FlowGraph.Builder]] and 1 graphs and then returns an [[Outlet]].
|
||||
*/
|
||||
def create1[T, [#S1 <: Shape#], [#M1#], M]([#g1: Graph[S1, M1]#], combineMat: japi.Function1[[#M1#], M],
|
||||
block: japi.Function2[FlowGraph.Builder[M], [#S1#], Outlet[T]]): Source[T, M] =
|
||||
new Source(scaladsl.Source([#g1#])(combineMat.apply _) { b => ([#s1#]) => block.apply(b.asJava, [#s1#]) })#
|
||||
|
||||
|
|
|
|||
|
|
@ -17,9 +17,8 @@ object ZipWith {
|
|||
def create[A, B, Out](f: japi.Function2[A, B, Out]): Graph[FanInShape2[A, B, Out], Unit] =
|
||||
scaladsl.ZipWith(f.apply _)
|
||||
|
||||
|
||||
[3..20#/** Create a new `ZipWith` specialized for 1 input streams. */
|
||||
def create[[#T1#], Out](f: japi.Function1[[#T1#], Out]): Graph[FanInShape1[[#T1#], Out], Unit] =
|
||||
[3..20#/** Create a new `ZipWith` specialized for 1 inputs. */
|
||||
def create1[[#T1#], Out](f: japi.Function1[[#T1#], Out]): Graph[FanInShape1[[#T1#], Out], Unit] =
|
||||
scaladsl.ZipWith(f.apply _)#
|
||||
|
||||
]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue