@@ -117,6 +117,103 @@ package object generate {
117
117
implicit def myCBFs = outerCBFs
118
118
}
119
119
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
+
120
217
class ArrThings (val sizes : Array [Int ]) extends AbstractThings [Array ](" Array" ) {}
121
218
122
219
class IshThings (val sizes : Array [Int ]) extends AbstractThings [collection.immutable.HashSet ](" immutable.HashSet" ) {}
@@ -149,6 +246,10 @@ package object generate {
149
246
150
247
class WraThings (val sizes : Array [Int ]) extends AbstractThings [collection.mutable.WrappedArray ](" mutable.WrappedArray" ) {}
151
248
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
+
152
253
class Things (sizes : Array [Int ] = Array (0 , 1 , 2 , 5 , 7 , 15 , 16 , 32 , 33 , 64 , 129 , 256 , 1023 , 2914 , 7151 , 50000 , 200000 , 1000000 )) {
153
254
lazy val arr = new ArrThings (sizes)
154
255
lazy val ish = new IshThings (sizes)
@@ -166,5 +267,7 @@ package object generate {
166
267
lazy val prq = new PrqThings (sizes)
167
268
lazy val muq = new MuqThings (sizes)
168
269
lazy val wra = new WraThings (sizes)
270
+ lazy val jix = new JixThings (sizes)
271
+ lazy val jln = new JlnThings (sizes)
169
272
}
170
273
}
0 commit comments