package com.quiltplayer.model.jotify; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.concurrent.TimeoutException; import org.apache.commons.lang.NotImplementedException; import com.quiltplayer.core.comparators.YearComparator; import com.quiltplayer.core.repo.spotify.JotifyRepository; import com.quiltplayer.model.Album; import com.quiltplayer.model.Artist; import com.quiltplayer.model.ArtistName; import com.quiltplayer.model.StringId; public class JotifyArtist implements Artist { private de.felixbruns.jotify.media.Artist spotifyArtist; private List<Album> albums; private StringId id; private ArtistName name; public JotifyArtist(de.felixbruns.jotify.media.Artist spotifyArtist) { this.spotifyArtist = spotifyArtist; name = new ArtistName(spotifyArtist.getName()); id = new StringId(spotifyArtist.getId()); } @Override public void addAlbum(Album album) { } @Override public ArtistName getArtistName() { return name; } @Override public StringId getStringId() { return id; } @Override public boolean hasAlbum(Album album) { // TODO Auto-generated method stub return false; } @Override public boolean hasAlbums() { // TODO Auto-generated method stub return false; } @Override public boolean isThe() { // TODO Auto-generated method stub return false; } @Override public void removeAlbum(Album album) { } @Override public void setArtistName(ArtistName artistName) { // TODO Auto-generated method stub } @Override public void setId(StringId id) { } @Override public void setThe(boolean the) { // TODO Auto-generated method stub } /** * @return the spotifyArtist */ public final de.felixbruns.jotify.media.Artist getSpotifyArtist() { return spotifyArtist; } /** * @return the albums */ public final List<Album> getAlbums() { if (albums == null) { albums = new ArrayList<Album>(); spotifyArtist = JotifyRepository.browseArtist(spotifyArtist); for (de.felixbruns.jotify.media.Album album : spotifyArtist.getAlbums()) { String artistName = ""; if (name.isThe()) artistName = "The " + name.getNameForSearches(); else artistName = name.getName(); if (album.getArtist().getName().equalsIgnoreCase(artistName)) albums.add(new JotifyAlbum(album)); } Collections.sort(albums, new YearComparator()); } return albums; } /* * (non-Javadoc) * * @see com.quiltplayer.model.Artist#getSpotifyId() */ @Override public String getSpotifyId() { return spotifyArtist.getId(); } /* * (non-Javadoc) * * @see com.quiltplayer.model.Artist#setSpotifyId(java.lang.String) */ @Override public void setSpotifyId(String spotifyId) { throw new NotImplementedException(""); } }