1 /*
2  * aTunes
3  * Copyright (C) Alex Aranda, Sylvain Gaudard and contributors
4  *
5  * See http://www.atunes.org/wiki/index.php?title=Contributing for information about contributors
6  *
7  * http://www.atunes.org
8  * http://sourceforge.net/projects/atunes
9  *
10  * This program is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU General Public License
12  * as published by the Free Software Foundation; either version 2
13  * of the License, or (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  */
20 
21 package net.sourceforge.atunes.model;
22 
23 import java.io.Serializable;
24 
25 /**
26  * Represents an album, with it's name, artist, and songs.
27  * @author alex
28  *
29  */
30 public interface IAlbum extends Serializable, ITreeObject<ILocalAudioObject>, Comparable<IAlbum> {
31 
32 	/**
33 	 * Adds a song to this album.
34 	 *
35 	 * @param file
36 	 *            the file
37 	 */
addAudioFile(ILocalAudioObject file)38 	void addAudioFile(ILocalAudioObject file);
39 
40 	/**
41 	 * Returns the name of the artist of this album.
42 	 *
43 	 * @return the artist
44 	 */
getArtist()45 	IArtist getArtist();
46 
47 	/**
48 	 * Returns name of the album.
49 	 *
50 	 * @return the name
51 	 */
getName()52 	String getName();
53 
54 	/**
55 	 * Removes a song from this album.
56 	 *
57 	 * @param file
58 	 *            the file
59 	 */
removeAudioFile(ILocalAudioObject file)60 	void removeAudioFile(ILocalAudioObject file);
61 
62 	/**
63 	 * Returns true if album has no audio files
64 	 * @return
65 	 */
isEmpty()66 	boolean isEmpty();
67 
68 }