From 1db3aabaab78711f49e0e3f53a39fc575a2312f7 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Mon, 30 Jan 2017 17:24:30 +0100 Subject: [PATCH] Added collector to LibraryList --- .../processing/app/packages/LibraryList.java | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/arduino-core/src/processing/app/packages/LibraryList.java b/arduino-core/src/processing/app/packages/LibraryList.java index 33c1e0230..cff1b7b12 100644 --- a/arduino-core/src/processing/app/packages/LibraryList.java +++ b/arduino-core/src/processing/app/packages/LibraryList.java @@ -30,8 +30,15 @@ package processing.app.packages; import java.io.File; import java.util.Collections; +import java.util.EnumSet; import java.util.LinkedList; import java.util.List; +import java.util.Set; +import java.util.function.BiConsumer; +import java.util.function.BinaryOperator; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.stream.Collector; import processing.app.helpers.FileUtils; @@ -76,5 +83,36 @@ public class LibraryList extends LinkedList { if (l == lib) return true; return false; } -} + public static Collector collector() { + return new Collector() { + @Override + public Supplier supplier() { + return () -> new LibraryList(); + } + + @Override + public BiConsumer accumulator() { + return (libs, lib) -> libs.add(lib); + } + + @Override + public BinaryOperator combiner() { + return (we, they) -> { + we.addAll(they); + return we; + }; + } + + @Override + public Function finisher() { + return (libs) -> libs; + } + + @Override + public Set characteristics() { + return EnumSet.noneOf(Characteristics.class); + } + }; + } +}