@@ -117,6 +117,103 @@ package object generate {
117117 implicit def myCBFs = outerCBFs
118118 }
119119
120+ // Java collection CBFs
121+
122+ implicit val javaUtilArrayListIntCanBuildFrom = new CanBuildFrom [Nothing , Int , java.util.ArrayList [Int ]] {
123+ def apply (from : Nothing ): collection.mutable.Builder [Int , java.util.ArrayList [Int ]] = apply()
124+ def apply (): collection.mutable.Builder [Int , java.util.ArrayList [Int ]] = new collection.mutable.Builder [Int , java.util.ArrayList [Int ]] {
125+ private var myAL = new java.util.ArrayList [Int ]
126+ def clear () = { myAL = new java.util.ArrayList [Int ]; () }
127+ def result () = { val ans = myAL; clear(); ans }
128+ def += (x : Int ) = { myAL add x; this }
129+ }
130+ }
131+ implicit val javaUtilArrayListStringCanBuildFrom = new CanBuildFrom [Nothing , String , java.util.ArrayList [String ]] {
132+ def apply (from : Nothing ): collection.mutable.Builder [String , java.util.ArrayList [String ]] = apply()
133+ def apply (): collection.mutable.Builder [String , java.util.ArrayList [String ]] = new collection.mutable.Builder [String , java.util.ArrayList [String ]] {
134+ private var myAL = new java.util.ArrayList [String ]
135+ def clear () = { myAL = new java.util.ArrayList [String ]; () }
136+ def result () = { val ans = myAL; clear(); ans }
137+ def += (x : String ) = { myAL add x; this }
138+ }
139+ }
140+ implicit val javaUtilLinkedListIntCanBuildFrom = new CanBuildFrom [Nothing , Int , java.util.LinkedList [Int ]] {
141+ def apply (from : Nothing ): collection.mutable.Builder [Int , java.util.LinkedList [Int ]] = apply()
142+ def apply (): collection.mutable.Builder [Int , java.util.LinkedList [Int ]] = new collection.mutable.Builder [Int , java.util.LinkedList [Int ]] {
143+ private var myLL = new java.util.LinkedList [Int ]
144+ def clear () = { myLL = new java.util.LinkedList [Int ]; () }
145+ def result () = { val ans = myLL; clear(); ans }
146+ def += (x : Int ) = { myLL add x; this }
147+ }
148+ }
149+ implicit val javaUtilLinkedListStringCanBuildFrom = new CanBuildFrom [Nothing , String , java.util.LinkedList [String ]] {
150+ def apply (from : Nothing ): collection.mutable.Builder [String , java.util.LinkedList [String ]] = apply()
151+ def apply (): collection.mutable.Builder [String , java.util.LinkedList [String ]] = new collection.mutable.Builder [String , java.util.LinkedList [String ]] {
152+ private var myLL = new java.util.LinkedList [String ]
153+ def clear () = { myLL = new java.util.LinkedList [String ]; () }
154+ def result () = { val ans = myLL; clear(); ans }
155+ def += (x : String ) = { myLL add x; this }
156+ }
157+ }
158+
159+ // Streams from ArrayList (Java)
160+
161+ implicit val getsParStreamFromArrayListInt : (java.util.ArrayList [Int ] => MakesParallelStream [java.lang.Integer , IntStream ]) = ali => {
162+ new MakesParallelStream [java.lang.Integer , IntStream ] {
163+ def parStream : IntStream = ali.
164+ asInstanceOf [java.util.ArrayList [java.lang.Integer ]].
165+ parallelStream.parallel.
166+ mapToInt(new java.util.function.ToIntFunction [java.lang.Integer ]{ def applyAsInt (i : java.lang.Integer ) = i.intValue })
167+ }
168+ }
169+ implicit val getsSeqStreamFromArrayListInt : (java.util.ArrayList [Int ] => MakesSequentialStream [java.lang.Integer , IntStream ]) = ali => {
170+ new MakesSequentialStream [java.lang.Integer , IntStream ] {
171+ def seqStream : IntStream = ali.
172+ asInstanceOf [java.util.ArrayList [java.lang.Integer ]].
173+ stream().
174+ mapToInt(new java.util.function.ToIntFunction [java.lang.Integer ]{ def applyAsInt (i : java.lang.Integer ) = i.intValue })
175+ }
176+ }
177+ implicit val getsParStreamFromArrayListString : (java.util.ArrayList [String ] => MakesParallelStream [String , Stream [String ]]) = als => {
178+ new MakesParallelStream [String , Stream [String ]] {
179+ def parStream : Stream [String ] = als.parallelStream.parallel
180+ }
181+ }
182+ implicit val getsSeqStreamFromArrayListString : (java.util.ArrayList [String ] => MakesSequentialStream [String , Stream [String ]]) = als => {
183+ new MakesSequentialStream [String , Stream [String ]] {
184+ def seqStream : Stream [String ] = als.stream
185+ }
186+ }
187+
188+ // Streams from LinkedList (Java)
189+
190+ implicit val getsParStreamFromLinkedListInt : (java.util.LinkedList [Int ] => MakesParallelStream [java.lang.Integer , IntStream ]) = ali => {
191+ new MakesParallelStream [java.lang.Integer , IntStream ] {
192+ def parStream : IntStream = ali.
193+ asInstanceOf [java.util.LinkedList [java.lang.Integer ]].
194+ parallelStream.parallel.
195+ mapToInt(new java.util.function.ToIntFunction [java.lang.Integer ]{ def applyAsInt (i : java.lang.Integer ) = i.intValue })
196+ }
197+ }
198+ implicit val getsSeqStreamFromLinkedListInt : (java.util.LinkedList [Int ] => MakesSequentialStream [java.lang.Integer , IntStream ]) = ali => {
199+ new MakesSequentialStream [java.lang.Integer , IntStream ] {
200+ def seqStream : IntStream = ali.
201+ asInstanceOf [java.util.LinkedList [java.lang.Integer ]].
202+ stream().
203+ mapToInt(new java.util.function.ToIntFunction [java.lang.Integer ]{ def applyAsInt (i : java.lang.Integer ) = i.intValue })
204+ }
205+ }
206+ implicit val getsParStreamFromLinkedListString : (java.util.LinkedList [String ] => MakesParallelStream [String , Stream [String ]]) = als => {
207+ new MakesParallelStream [String , Stream [String ]] {
208+ def parStream : Stream [String ] = als.parallelStream.parallel
209+ }
210+ }
211+ implicit val getsSeqStreamFromLinkedListString : (java.util.LinkedList [String ] => MakesSequentialStream [String , Stream [String ]]) = als => {
212+ new MakesSequentialStream [String , Stream [String ]] {
213+ def seqStream : Stream [String ] = als.stream
214+ }
215+ }
216+
120217 class ArrThings (val sizes : Array [Int ]) extends AbstractThings [Array ](" Array" ) {}
121218
122219 class IshThings (val sizes : Array [Int ]) extends AbstractThings [collection.immutable.HashSet ](" immutable.HashSet" ) {}
@@ -149,6 +246,10 @@ package object generate {
149246
150247 class WraThings (val sizes : Array [Int ]) extends AbstractThings [collection.mutable.WrappedArray ](" mutable.WrappedArray" ) {}
151248
249+ class JixThings (val sizes : Array [Int ]) extends AbstractThings [java.util.ArrayList ](" java.util.ArrayList" ) {}
250+
251+ class JlnThings (val sizes : Array [Int ]) extends AbstractThings [java.util.LinkedList ](" java.util.LinkedList" ) {}
252+
152253 class Things (sizes : Array [Int ] = Array (0 , 1 , 2 , 5 , 7 , 15 , 16 , 32 , 33 , 64 , 129 , 256 , 1023 , 2914 , 7151 , 50000 , 200000 , 1000000 )) {
153254 lazy val arr = new ArrThings (sizes)
154255 lazy val ish = new IshThings (sizes)
@@ -166,5 +267,7 @@ package object generate {
166267 lazy val prq = new PrqThings (sizes)
167268 lazy val muq = new MuqThings (sizes)
168269 lazy val wra = new WraThings (sizes)
270+ lazy val jix = new JixThings (sizes)
271+ lazy val jln = new JlnThings (sizes)
169272 }
170273}
0 commit comments