Skip to content

Commit a703d10

Browse files
committed
Remove usage of AbstractSpliterator from PuzzleSolver
See comments
1 parent e350fed commit a703d10

File tree

1 file changed

+22
-3
lines changed

1 file changed

+22
-3
lines changed

src/main/java/zebra4j/PuzzleSolver.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import java.util.Map;
2727
import java.util.Map.Entry;
2828
import java.util.Set;
29-
import java.util.Spliterators.AbstractSpliterator;
29+
import java.util.Spliterator;
3030
import java.util.function.Consumer;
3131
import java.util.stream.Collectors;
3232
import 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

Comments
 (0)