From af05b0f45bbc39715c811300413103dda88e8819 Mon Sep 17 00:00:00 2001 From: jvoisin Date: Sat, 21 Sep 2019 18:26:24 +0200 Subject: [PATCH] Use lambdas instead of ghetto nested types This change was done in an automated fashion via IntelliJ IDEA Signed-off-by: Andrew DeMaria --- .../player/ajax/PlayQueueService.java | 7 +-- .../org/airsonic/player/domain/MediaFile.java | 7 +-- .../airsonic/player/domain/MusicFolder.java | 14 +---- .../org/airsonic/player/domain/PlayQueue.java | 50 +++++++-------- .../airsonic/player/service/LastFmCache.java | 9 +-- .../player/service/PodcastService.java | 62 ++++++------------- .../player/service/jukebox/PlayerTest.java | 30 +++------ .../player/service/sonos/SonosHelper.java | 7 +-- .../service/search/QueryFactoryTestCase.java | 18 +++--- 9 files changed, 69 insertions(+), 135 deletions(-) diff --git a/airsonic-main/src/main/java/org/airsonic/player/ajax/PlayQueueService.java b/airsonic-main/src/main/java/org/airsonic/player/ajax/PlayQueueService.java index 9c055f87..e3013c4e 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/ajax/PlayQueueService.java +++ b/airsonic-main/src/main/java/org/airsonic/player/ajax/PlayQueueService.java @@ -351,12 +351,7 @@ public class PlayQueueService { HttpServletResponse response = WebContextFactory.get().getHttpServletResponse(); List episodes = podcastService.getNewestEpisodes(10); - List files = Lists.transform(episodes, new Function() { - @Override - public MediaFile apply(PodcastEpisode episode) { - return mediaFileService.getMediaFile(episode.getMediaFileId()); - } - }); + List files = Lists.transform(episodes, episode -> mediaFileService.getMediaFile(episode.getMediaFileId())); String username = securityService.getCurrentUsername(request); boolean queueFollowingSongs = settingsService.getUserSettings(username).isQueueFollowingSongs(); diff --git a/airsonic-main/src/main/java/org/airsonic/player/domain/MediaFile.java b/airsonic-main/src/main/java/org/airsonic/player/domain/MediaFile.java index 7b7e0cc7..f4847ad9 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/domain/MediaFile.java +++ b/airsonic-main/src/main/java/org/airsonic/player/domain/MediaFile.java @@ -463,12 +463,7 @@ public class MediaFile { } public static Function toId() { - return new Function() { - @Override - public Integer apply(MediaFile from) { - return from.getId(); - } - }; + return from -> from.getId(); } public static enum MediaType { diff --git a/airsonic-main/src/main/java/org/airsonic/player/domain/MusicFolder.java b/airsonic-main/src/main/java/org/airsonic/player/domain/MusicFolder.java index d8640444..62b36f57 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/domain/MusicFolder.java +++ b/airsonic-main/src/main/java/org/airsonic/player/domain/MusicFolder.java @@ -178,20 +178,10 @@ public class MusicFolder implements Serializable { } public static Function toId() { - return new Function() { - @Override - public Integer apply(MusicFolder from) { - return from.getId(); - } - }; + return from -> from.getId(); } public static Function toPath() { - return new Function() { - @Override - public String apply(MusicFolder from) { - return from.getPath().getPath(); - } - }; + return from -> from.getPath().getPath(); } } \ No newline at end of file diff --git a/airsonic-main/src/main/java/org/airsonic/player/domain/PlayQueue.java b/airsonic-main/src/main/java/org/airsonic/player/domain/PlayQueue.java index 15d57515..eac63c6b 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/domain/PlayQueue.java +++ b/airsonic-main/src/main/java/org/airsonic/player/domain/PlayQueue.java @@ -251,32 +251,30 @@ public class PlayQueue { makeBackup(); MediaFile currentFile = getCurrentFile(); - Comparator comparator = new Comparator() { - public int compare(MediaFile a, MediaFile b) { - switch (sortOrder) { - case TRACK: - Integer trackA = a.getTrackNumber(); - Integer trackB = b.getTrackNumber(); - if (trackA == null) { - trackA = 0; - } - if (trackB == null) { - trackB = 0; - } - return trackA.compareTo(trackB); - - case ARTIST: - String artistA = StringUtils.trimToEmpty(a.getArtist()); - String artistB = StringUtils.trimToEmpty(b.getArtist()); - return artistA.compareTo(artistB); - - case ALBUM: - String albumA = StringUtils.trimToEmpty(a.getAlbumName()); - String albumB = StringUtils.trimToEmpty(b.getAlbumName()); - return albumA.compareTo(albumB); - default: - return 0; - } + Comparator comparator = (a, b) -> { + switch (sortOrder) { + case TRACK: + Integer trackA = a.getTrackNumber(); + Integer trackB = b.getTrackNumber(); + if (trackA == null) { + trackA = 0; + } + if (trackB == null) { + trackB = 0; + } + return trackA.compareTo(trackB); + + case ARTIST: + String artistA = StringUtils.trimToEmpty(a.getArtist()); + String artistB = StringUtils.trimToEmpty(b.getArtist()); + return artistA.compareTo(artistB); + + case ALBUM: + String albumA = StringUtils.trimToEmpty(a.getAlbumName()); + String albumB = StringUtils.trimToEmpty(b.getAlbumName()); + return albumA.compareTo(albumB); + default: + return 0; } }; diff --git a/airsonic-main/src/main/java/org/airsonic/player/service/LastFmCache.java b/airsonic-main/src/main/java/org/airsonic/player/service/LastFmCache.java index 9703d9ee..09ef4570 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/service/LastFmCache.java +++ b/airsonic-main/src/main/java/org/airsonic/player/service/LastFmCache.java @@ -20,13 +20,11 @@ package org.airsonic.player.service; import de.umass.lastfm.cache.Cache; -import de.umass.lastfm.cache.ExpirationPolicy; import de.umass.lastfm.cache.FileSystemCache; import org.airsonic.player.util.FileUtil; import org.apache.commons.io.IOUtils; import java.io.*; -import java.util.Map; import java.util.Properties; /** @@ -45,12 +43,7 @@ public class LastFmCache extends Cache { this.cacheDir = cacheDir; this.ttl = ttl; - setExpirationPolicy(new ExpirationPolicy() { - @Override - public long getExpirationTime(String method, Map params) { - return ttl; - } - }); + setExpirationPolicy((method, params) -> ttl); } @Override diff --git a/airsonic-main/src/main/java/org/airsonic/player/service/PodcastService.java b/airsonic-main/src/main/java/org/airsonic/player/service/PodcastService.java index 03fc384f..314ca01d 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/service/PodcastService.java +++ b/airsonic-main/src/main/java/org/airsonic/player/service/PodcastService.java @@ -96,13 +96,10 @@ public class PodcastService { private MetaDataParserFactory metaDataParserFactory; public PodcastService() { - ThreadFactory threadFactory = new ThreadFactory() { - @Override - public Thread newThread(Runnable r) { - Thread t = Executors.defaultThreadFactory().newThread(r); - t.setDaemon(true); - return t; - } + ThreadFactory threadFactory = r -> { + Thread t = Executors.defaultThreadFactory().newThread(r); + t.setDaemon(true); + return t; }; refreshExecutor = Executors.newFixedThreadPool(5, threadFactory); downloadExecutor = Executors.newFixedThreadPool(3, threadFactory); @@ -128,13 +125,10 @@ public class PodcastService { } public synchronized void schedule() { - Runnable task = new Runnable() { - @Override - public void run() { - LOG.info("Starting scheduled Podcast refresh."); - refreshAllChannels(true); - LOG.info("Completed scheduled Podcast refresh."); - } + Runnable task = () -> { + LOG.info("Starting scheduled Podcast refresh."); + refreshAllChannels(true); + LOG.info("Completed scheduled Podcast refresh."); }; if (scheduledRefresh != null) { @@ -224,16 +218,13 @@ public class PodcastService { public List getNewestEpisodes(int count) { List episodes = addMediaFileIdToEpisodes(podcastDao.getNewestEpisodes(count)); - return Lists.newArrayList(Iterables.filter(episodes, new Predicate() { - @Override - public boolean apply(PodcastEpisode episode) { - Integer mediaFileId = episode.getMediaFileId(); - if (mediaFileId == null) { - return false; - } - MediaFile mediaFile = mediaFileService.getMediaFile(mediaFileId); - return mediaFile != null && mediaFile.isPresent(); + return Lists.newArrayList(Iterables.filter(episodes, episode -> { + Integer mediaFileId = episode.getMediaFileId(); + if (mediaFileId == null) { + return false; } + MediaFile mediaFile = mediaFileService.getMediaFile(mediaFileId); + return mediaFile != null && mediaFile.isPresent(); })); } @@ -300,12 +291,7 @@ public class PodcastService { private void refreshChannels(final List channels, final boolean downloadEpisodes) { for (final PodcastChannel channel : channels) { - Runnable task = new Runnable() { - @Override - public void run() { - doRefreshChannel(channel, downloadEpisodes); - } - }; + Runnable task = () -> doRefreshChannel(channel, downloadEpisodes); refreshExecutor.submit(task); } } @@ -417,12 +403,7 @@ public class PodcastService { } public void downloadEpisode(final PodcastEpisode episode) { - Runnable task = new Runnable() { - @Override - public void run() { - doDownloadEpisode(episode); - } - }; + Runnable task = () -> doDownloadEpisode(episode); downloadExecutor.submit(task); } @@ -471,14 +452,11 @@ public class PodcastService { } // Sort episode in reverse chronological order (newest first) - Collections.sort(episodes, new Comparator() { - @Override - public int compare(PodcastEpisode a, PodcastEpisode b) { - long timeA = a.getPublishDate() == null ? 0L : a.getPublishDate().getTime(); - long timeB = b.getPublishDate() == null ? 0L : b.getPublishDate().getTime(); + Collections.sort(episodes, (a, b) -> { + long timeA = a.getPublishDate() == null ? 0L : a.getPublishDate().getTime(); + long timeB = b.getPublishDate() == null ? 0L : b.getPublishDate().getTime(); - return Long.compare(timeB, timeA); - } + return Long.compare(timeB, timeA); }); // Create episodes in database, skipping the proper number of episodes. diff --git a/airsonic-main/src/main/java/org/airsonic/player/service/jukebox/PlayerTest.java b/airsonic-main/src/main/java/org/airsonic/player/service/jukebox/PlayerTest.java index 11c6b30d..fa436380 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/service/jukebox/PlayerTest.java +++ b/airsonic-main/src/main/java/org/airsonic/player/service/jukebox/PlayerTest.java @@ -29,28 +29,18 @@ public class PlayerTest implements AudioPlayer.Listener { JButton resetButton = new JButton("Reset"); final JSlider gainSlider = new JSlider(0, 1000); - startButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - createPlayer(); - player.play(); - } + startButton.addActionListener(e -> { + createPlayer(); + player.play(); }); - stopButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - player.pause(); - } + stopButton.addActionListener(e -> player.pause()); + resetButton.addActionListener(e -> { + player.close(); + createPlayer(); }); - resetButton.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - player.close(); - createPlayer(); - } - }); - gainSlider.addChangeListener(new ChangeListener() { - public void stateChanged(ChangeEvent e) { - float gain = gainSlider.getValue() / 1000.0F; - player.setGain(gain); - } + gainSlider.addChangeListener(e -> { + float gain = gainSlider.getValue() / 1000.0F; + player.setGain(gain); }); frame.setLayout(new FlowLayout()); diff --git a/airsonic-main/src/main/java/org/airsonic/player/service/sonos/SonosHelper.java b/airsonic-main/src/main/java/org/airsonic/player/service/sonos/SonosHelper.java index 82eb89c1..de805eb7 100644 --- a/airsonic-main/src/main/java/org/airsonic/player/service/sonos/SonosHelper.java +++ b/airsonic-main/src/main/java/org/airsonic/player/service/sonos/SonosHelper.java @@ -623,12 +623,7 @@ public class SonosHelper { } private List filterMusic(List files) { - return Lists.newArrayList(Iterables.filter(files, new Predicate() { - @Override - public boolean apply(MediaFile input) { - return input.getMediaType() == MediaFile.MediaType.MUSIC; - } - })); + return Lists.newArrayList(Iterables.filter(files, input -> input.getMediaType() == MediaFile.MediaType.MUSIC)); } public void setPlaylistService(PlaylistService playlistService) { diff --git a/airsonic-main/src/test/java/org/airsonic/player/service/search/QueryFactoryTestCase.java b/airsonic-main/src/test/java/org/airsonic/player/service/search/QueryFactoryTestCase.java index 5010b43c..02936b65 100644 --- a/airsonic-main/src/test/java/org/airsonic/player/service/search/QueryFactoryTestCase.java +++ b/airsonic-main/src/test/java/org/airsonic/player/service/search/QueryFactoryTestCase.java @@ -1,8 +1,6 @@ package org.airsonic.player.service.search; -import static org.junit.Assert.assertEquals; - import org.airsonic.player.domain.MusicFolder; import org.airsonic.player.domain.RandomSearchCriteria; import org.airsonic.player.domain.SearchCriteria; @@ -25,6 +23,8 @@ import java.io.IOException; import java.util.Arrays; import java.util.List; +import static org.junit.Assert.assertEquals; + /** * Test case for QueryFactory. * These cases have the purpose of observing the current situation @@ -68,9 +68,9 @@ public class QueryFactoryTestCase { private static final int FID2 = 20; private static final MusicFolder MUSIC_FOLDER1 = - new MusicFolder(Integer.valueOf(FID1), new File(PATH1), "music1", true, new java.util.Date()); + new MusicFolder(FID1, new File(PATH1), "music1", true, new java.util.Date()); private static final MusicFolder MUSIC_FOLDER2 = - new MusicFolder(Integer.valueOf(FID2), new File(PATH2), "music2", true, new java.util.Date()); + new MusicFolder(FID2, new File(PATH2), "music2", true, new java.util.Date()); private static final List SINGLE_FOLDERS = Arrays.asList(MUSIC_FOLDER1); private static final List MULTI_FOLDERS = Arrays.asList(MUSIC_FOLDER1, MUSIC_FOLDER2); @@ -215,15 +215,15 @@ public class QueryFactoryTestCase { @Test public void testGetRandomSongs() throws IOException { RandomSearchCriteria criteria = new RandomSearchCriteria(50, "Classic Rock", - Integer.valueOf(1900), Integer.valueOf(2000), SINGLE_FOLDERS); + 1900, 2000, SINGLE_FOLDERS); Query query = queryFactory.getRandomSongs(criteria); assertEquals(ToStringBuilder.reflectionToString(criteria), "+mediaType:MUSIC +genre:Classic Rock +year:[1900 TO 2000] +(folder:" + PATH1 + ")", query.toString()); - criteria = new RandomSearchCriteria(50, "Classic Rock", Integer.valueOf(1900), - Integer.valueOf(2000), MULTI_FOLDERS); + criteria = new RandomSearchCriteria(50, "Classic Rock", 1900, + 2000, MULTI_FOLDERS); query = queryFactory.getRandomSongs(criteria); assertEquals(ToStringBuilder.reflectionToString(criteria), "+mediaType:MUSIC +genre:Classic Rock +year:[1900 TO 2000] +(folder:" + PATH1 + " folder:" + PATH2 @@ -236,7 +236,7 @@ public class QueryFactoryTestCase { "+mediaType:MUSIC +genre:Classic Rock +(folder:" + PATH1 + " folder:" + PATH2 + ")", query.toString()); - criteria = new RandomSearchCriteria(50, "Classic Rock", Integer.valueOf(1900), null, + criteria = new RandomSearchCriteria(50, "Classic Rock", 1900, null, MULTI_FOLDERS); query = queryFactory.getRandomSongs(criteria); assertEquals(ToStringBuilder.reflectionToString(criteria), @@ -244,7 +244,7 @@ public class QueryFactoryTestCase { + ")", query.toString()); - criteria = new RandomSearchCriteria(50, "Classic Rock", null, Integer.valueOf(2000), + criteria = new RandomSearchCriteria(50, "Classic Rock", null, 2000, MULTI_FOLDERS); query = queryFactory.getRandomSongs(criteria); assertEquals(ToStringBuilder.reflectionToString(criteria),