From 64771c5712dfc106c0635ea291434d793b7d9571 Mon Sep 17 00:00:00 2001 From: Isira Seneviratne Date: Thu, 28 Jul 2022 07:38:28 +0530 Subject: [PATCH] Use String.join() and Collectors.joining(). --- .../extractors/BandcampStreamExtractor.java | 9 ++--- .../SoundcloudPlaylistExtractor.java | 3 +- .../schabi/newpipe/extractor/utils/Utils.java | 36 +++++-------------- .../newpipe/extractor/utils/UtilsTest.java | 7 ++-- 4 files changed, 13 insertions(+), 42 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java index bf5517694..9ea326d36 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java @@ -136,13 +136,8 @@ public class BandcampStreamExtractor extends StreamExtractor { @Nonnull @Override public Description getDescription() { - final String s = Utils.nonEmptyAndNullJoin( - "\n\n", - new String[] { - current.getString("about"), - current.getString("lyrics"), - current.getString("credits") - }); + final String s = Utils.nonEmptyAndNullJoin("\n\n", current.getString("about"), + current.getString("lyrics"), current.getString("credits")); return new Description(s, Description.PLAIN_TEXT); } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java index 3d525e631..d38f87e2b 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java @@ -16,7 +16,6 @@ import org.schabi.newpipe.extractor.playlist.PlaylistExtractor; import org.schabi.newpipe.extractor.services.soundcloud.SoundcloudParsingHelper; import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector; -import org.schabi.newpipe.extractor.utils.Utils; import java.io.IOException; import java.util.ArrayList; @@ -165,7 +164,7 @@ public class SoundcloudPlaylistExtractor extends PlaylistExtractor { } final String currentPageUrl = SOUNDCLOUD_API_V2_URL + "tracks?client_id=" - + SoundcloudParsingHelper.clientId() + "&ids=" + Utils.join(",", currentIds); + + SoundcloudParsingHelper.clientId() + "&ids=" + String.join(",", currentIds); final StreamInfoItemsCollector collector = new StreamInfoItemsCollector(getServiceId()); final String response = NewPipe.getDownloader().get(currentPageUrl, diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java b/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java index 0f1ee49fa..76484c899 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java @@ -6,15 +6,12 @@ import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLDecoder; -import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; import java.util.Map; import java.util.Objects; import java.util.regex.Pattern; +import java.util.stream.Collectors; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -310,31 +307,14 @@ public final class Utils { return true; } - @Nonnull - public static String join(final CharSequence delimiter, - @Nonnull final Iterable elements) { - final StringBuilder stringBuilder = new StringBuilder(); - final Iterator iterator = elements.iterator(); - while (iterator.hasNext()) { - stringBuilder.append(iterator.next()); - if (iterator.hasNext()) { - stringBuilder.append(delimiter); - } - } - return stringBuilder.toString(); - } - @Nonnull public static String join( final String delimiter, final String mapJoin, @Nonnull final Map elements) { - final List list = new LinkedList<>(); - for (final Map.Entry entry - : elements.entrySet()) { - list.add(entry.getKey() + mapJoin + entry.getValue()); - } - return join(delimiter, list); + return elements.entrySet().stream() + .map(entry -> entry.getKey() + mapJoin + entry.getValue()) + .collect(Collectors.joining(delimiter)); } /** @@ -342,10 +322,10 @@ public final class Utils { */ @Nonnull public static String nonEmptyAndNullJoin(final CharSequence delimiter, - final String[] elements) { - final List list = new ArrayList<>(Arrays.asList(elements)); - list.removeIf(s -> isNullOrEmpty(s) || s.equals("null")); - return join(delimiter, list); + final String... elements) { + return Arrays.stream(elements) + .filter(s -> !isNullOrEmpty(s) && !s.equals("null")) + .collect(Collectors.joining(delimiter)); } /** diff --git a/extractor/src/test/java/org/schabi/newpipe/extractor/utils/UtilsTest.java b/extractor/src/test/java/org/schabi/newpipe/extractor/utils/UtilsTest.java index 2dd787b88..e01e2cb27 100644 --- a/extractor/src/test/java/org/schabi/newpipe/extractor/utils/UtilsTest.java +++ b/extractor/src/test/java/org/schabi/newpipe/extractor/utils/UtilsTest.java @@ -3,9 +3,6 @@ package org.schabi.newpipe.extractor.utils; import org.junit.jupiter.api.Test; import org.schabi.newpipe.extractor.exceptions.ParsingException; -import javax.annotation.Nonnull; -import java.util.Arrays; - import static org.junit.jupiter.api.Assertions.assertEquals; class UtilsTest { @@ -20,8 +17,8 @@ class UtilsTest { @Test void testJoin() { - assertEquals("some,random,stuff", Utils.join(",", Arrays.asList("some", "random", "stuff"))); - assertEquals("some,random,not-null,stuff", Utils.nonEmptyAndNullJoin(",", new String[]{"some", "null", "random", "", "not-null", null, "stuff"})); + assertEquals("some,random,not-null,stuff", Utils.nonEmptyAndNullJoin(",", + "some", "null", "random", "", "not-null", null, "stuff")); } @Test