package com.quiltplayer.model.jotify;
import org.apache.commons.lang.NotImplementedException;
import com.quiltplayer.model.Album;
import com.quiltplayer.model.Song;
import com.quiltplayer.model.StringId;
import de.felixbruns.jotify.media.Track;
public class JotifySong implements Song {
private Track spotifyTrack;
public JotifySong(Track spotifyTrack) {
this.spotifyTrack = spotifyTrack;
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#getAlbum()
*/
@Override
public Album getAlbum() {
return new JotifyAlbum(spotifyTrack.getAlbum());
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#getFileName()
*/
@Override
public String getFileName() {
// TODO
// return spotifyTrack.getFiles().get(0).getId();
return "";
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#getId()
*/
@Override
public StringId getId() {
return new StringId(spotifyTrack.getId());
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#getPath()
*/
@Override
public String getPath() {
return null;
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#getTitle()
*/
@Override
public String getTitle() {
return spotifyTrack.getTitle();
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#getTrackNumber()
*/
@Override
public Number getTrackNumber() {
return spotifyTrack.getTrackNumber();
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#setAlbum(com.quiltplayer.model.Album)
*/
@Override
public void setAlbum(Album album) {
throw new NotImplementedException();
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#setFileName(java.lang.String)
*/
@Override
public void setFileName(String fileName) {
throw new NotImplementedException();
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#setId(com.quiltplayer.model.StringId)
*/
@Override
public void setId(StringId songId) {
throw new NotImplementedException();
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#setPath(java.lang.String)
*/
@Override
public void setPath(String path) {
throw new NotImplementedException();
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#setTitle(java.lang.String)
*/
@Override
public void setTitle(String title) {
throw new NotImplementedException();
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#setTrackNumber(java.lang.Number)
*/
@Override
public void setTrackNumber(Number trackNumber) {
throw new NotImplementedException();
}
/**
* @return the spotifyTrack
*/
public final Track getSpotifyTrack() {
return spotifyTrack;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return getTitle();
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#getSpotifyId()
*/
@Override
public String getSpotifyId() {
return spotifyTrack.getId();
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#setSpotifyId(java.lang.String)
*/
@Override
public void setSpotifyId(String spotifyId) {
throw new NotImplementedException("");
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#getType()
*/
@Override
public String getType() {
return Song.TYPE_SPOTIFY;
}
/*
* (non-Javadoc)
*
* @see com.quiltplayer.model.Song#setType(java.lang.String)
*/
@Override
public void setType(String type) {
throw new NotImplementedException();
}
@Override
public boolean equals(final Object o) {
if (o instanceof JotifySong) {
return this.spotifyTrack.getId().equals(((JotifySong) o).getSpotifyTrack().getId());
}
return false;
}
@Override
public int getDuration() {
return spotifyTrack.getLength();
}
@Override
public void setDuration(int length) {
// Not needed
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#hashCode()
*/
@Override
public int hashCode() {
return super.hashCode();
}
}