package com.quiltplayer.model; import java.util.List; import com.quiltplayer.external.covers.model.LocalImage; /** * Model class representing an album. * * @author Vlado Palczynski */ public interface Album extends Comparable<Album> { String TYPE_FILE = "file"; String TYPE_SPOTIFY = "spotify"; /** * @return when last modified. */ long getLastModified(); /** * @param timestamp * the timestamp to set. */ void setLastModified(long timestamp); /** * @return the title in lower case */ String getTitle(); /** * @param title * the title to set */ void setTitle(String title); /** * @return the title to publish (cased). */ String getTitleToPublish(); /** * @param titleToPublish * the titleToPublish to set */ void setTitleToPublish(String titleToPublish); /** * @return the id */ StringId getId(); /** * @param albumId * the albumId to set */ void setId(StringId albumId); /** * @return the spotifyId */ String getSpotifyId(); /** * @param spotifyId * the spotifyId to set */ void setSpotifyId(String spotifyId); /** * @return the releaseId */ String getReleaseId(); /** * @param id * the id to set. */ void setReleaseId(String releaseId); /** * @return the Artist */ Artist getArtist(); /** * @param artist * the artist to set */ void setArtist(final Artist artist); /** * @return the songs */ SongCollection getSongCollection(); /** * @param songs * the songs to add */ void setSongCollection(SongCollection songCollection); /** * Add song to this album. * * @param song * the song to add. */ void addSong(Song song); /** * Get all images for this album. * * @return List of Image objects */ List<LocalImage> getImages(); /** * Delete all images for this album. */ void deleteImages(); /** * Get the front image. * * @return Front image */ LocalImage getFrontImage(); /** * @param images * the images to set. */ void setImages(List<LocalImage> images); /** * Add a image to this album. * * @param image * the image to add. */ void addLocalImage(LocalImage image); /** * @param year * the year to add */ void setYear(String year); /** * @return the year */ String getYear(); /** * @param toFrontImage * the localImage to set as front. */ void changeFrontImage(Album album, LocalImage toFrontImage); String getLabel(); void setLabel(String label); String getType(); void setType(String type); }