2626import java .util .Map ;
2727import java .util .Map .Entry ;
2828import java .util .Set ;
29- import java .util .Spliterators . AbstractSpliterator ;
29+ import java .util .Spliterator ;
3030import java .util .function .Consumer ;
3131import java .util .stream .Collectors ;
3232import java .util .stream .Stream ;
@@ -75,8 +75,9 @@ Stream<Map<Attribute, Integer>> solveChoco() {
7575 Model model = zebraModel .getChocoModel ();
7676 Solver solver = model .getSolver ();
7777 Solution solution = new Solution (model );
78- AbstractSpliterator <Map <Attribute , Integer >> spliterator = new AbstractSpliterator <Map <Attribute , Integer >>(
79- Long .MAX_VALUE , 0 ) {
78+ // We don't extend AbstractSpliterator below because it is not available in
79+ // TeaVM stdlib. We don't use its features anyway.
80+ Spliterator <Map <Attribute , Integer >> spliterator = new Spliterator <Map <Attribute , Integer >>() {
8081
8182 @ Override
8283 public boolean tryAdvance (Consumer <? super Map <Attribute , Integer >> action ) {
@@ -95,6 +96,24 @@ public boolean tryAdvance(Consumer<? super Map<Attribute, Integer>> action) {
9596 .collect (Collectors .toMap (e -> e .getKey (), e -> solution .getIntVal (e .getValue ()))));
9697 return true ;
9798 }
99+
100+ @ Override
101+ public Spliterator <Map <Attribute , Integer >> trySplit () {
102+ // Splitting not possible
103+ return null ;
104+ }
105+
106+ @ Override
107+ public long estimateSize () {
108+ // Per javadoc, means unknown size
109+ return Long .MAX_VALUE ;
110+ }
111+
112+ @ Override
113+ public int characteristics () {
114+ // Value is a bit field. 0 means no characteristics.
115+ return 0 ;
116+ }
98117 };
99118 return StreamSupport .stream (spliterator , false );
100119 }
0 commit comments