
net.kemitix.itunes.medialibrary.examples.ListContentsExample Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of itunes-medialibrary Show documentation
Show all versions of itunes-medialibrary Show documentation
Java library for reading/writing to the iTunes MediaLibrary SQLite database
The newest version!
package net.kemitix.itunes.medialibrary.examples;
import java.sql.SQLException;
import java.util.List;
import static java.util.stream.Collectors.groupingBy;
import net.kemitix.itunes.medialibrary.AlbumTrack;
import net.kemitix.itunes.medialibrary.ITunesMediaLibrary;
import net.kemitix.itunes.medialibrary.MediaLibrary;
/**
* Displays all the tracks in the test media library, grouped by artist and
* album.
*
* Where an individual track has a different artist the album, that is listed
* beside the song title.
*
* @author [email protected]
*/
public class ListContentsExample {
private static final String FILE = "src/test/resources/MediaLibrary.sqlitedb";
public static void main(String[] args) throws SQLException {
MediaLibrary library = ITunesMediaLibrary.createLibrary(FILE);
List allTracks = library.getAlbumTracks();
System.out.format("Found %d album tracks\n", allTracks.size());
allTracks.stream()
.collect(groupingBy(AlbumTrack::getAlbumArtist))
.forEach((String albumArtist, List artistsTracks) -> {
System.out.println(albumArtist);
artistsTracks.stream()
.collect(groupingBy(AlbumTrack::getAlbumTitle))
.forEach((String albumTitle, List albumTracks) -> {
System.out.println("\t" + albumTitle);
albumTracks.stream()
.forEach((AlbumTrack albumTrack) -> {
if (albumArtist.equals(albumTrack.getTrackArtist())) {
System.out.format("\t\t- %s\n", albumTrack.getTrackTitle());
} else {
System.out.format("\t\t- %s [[%s]]\n", albumTrack.getTrackTitle(), albumTrack.getTrackArtist());
}
});
});
});
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy