Changeset 10638 in josm for trunk/src/org/openstreetmap/josm/tools/StreamUtils.java
- Timestamp:
- 2016-07-25T21:19:38+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/tools/StreamUtils.java
r10585 r10638 2 2 package org.openstreetmap.josm.tools; 3 3 4 import java.util.EnumSet; 4 5 import java.util.Iterator; 6 import java.util.Set; 5 7 import java.util.Spliterator; 6 8 import java.util.Spliterators; 9 import java.util.function.BiConsumer; 10 import java.util.function.BinaryOperator; 11 import java.util.function.Function; 12 import java.util.function.Supplier; 13 import java.util.stream.Collector; 7 14 import java.util.stream.Stream; 8 15 import java.util.stream.StreamSupport; … … 14 21 */ 15 22 public final class StreamUtils { 23 24 private static final class HtmlListCollector implements Collector<String, StringBuilder, String> { 25 @Override 26 public Supplier<StringBuilder> supplier() { 27 return StringBuilder::new; 28 } 29 30 @Override 31 public BiConsumer<StringBuilder, String> accumulator() { 32 return (sb, item) -> sb.append("<li>").append(item).append("</li>"); 33 } 34 35 @Override 36 public BinaryOperator<StringBuilder> combiner() { 37 return StringBuilder::append; 38 } 39 40 @Override 41 public Function<StringBuilder, String> finisher() { 42 return sb -> "<ul>" + sb.toString() + "</ul>"; 43 } 44 45 @Override 46 public Set<Characteristics> characteristics() { 47 return EnumSet.of(Characteristics.CONCURRENT); 48 } 49 } 16 50 17 51 /** … … 30 64 return StreamSupport.stream(spliterator, false); 31 65 } 66 67 /** 68 * Creates a new Collector that collects the items and returns them as HTML unordered list. 69 * @return The collector. 70 * @since 10638 71 */ 72 public static Collector<String, ?, String> toHtmlList() { 73 return new HtmlListCollector(); 74 } 32 75 }
Note:
See TracChangeset
for help on using the changeset viewer.