1 /*** 2 * Ambient - A music player for the Android platform 3 Copyright (C) 2007 Martin Vysny 4 5 This program is free software: you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation, either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 package sk.baka.ambient.playlist; 19 20 import java.io.Serializable; 21 22 import sk.baka.ambient.collection.TrackMetadataBean; 23 24 /*** 25 * Describes a playlist item at particular index. All properties except the 26 * {@link #track} are mutable. An instance of playlist item is equal only to 27 * itself. 28 * 29 * @author Martin Vysny 30 */ 31 public final class PlaylistItem implements Serializable { 32 33 private static final long serialVersionUID = 2078282720983760799L; 34 35 /*** 36 * The track meta. 37 */ 38 TrackMetadataBean track; 39 40 /*** 41 * how many times this track was played. 42 */ 43 int playCount; 44 45 /*** 46 * the order in which the track is queued, or <code>0</code> if the track 47 * is not queued. 48 */ 49 int queueOrder; 50 51 /*** 52 * Creates new playlist item. 53 * 54 * @param track 55 * the track meta 56 * @param queueOrder 57 * the order in which the track is queued, or <code>0</code> if 58 * the track is not queued. 59 * @param playCount 60 * how many times this track was played. 61 */ 62 PlaylistItem(final TrackMetadataBean track, final int queueOrder, 63 final int playCount) { 64 super(); 65 this.track = track; 66 this.queueOrder = queueOrder; 67 this.playCount = playCount; 68 } 69 70 /*** 71 * how many times this track was played. 72 * 73 * @return the playCount 74 */ 75 public int getPlayCount() { 76 return playCount; 77 } 78 79 /*** 80 * the order in which the track is queued, or <code>0</code> if the track 81 * is not queued. 82 * 83 * @return the queueOrder 84 */ 85 public int getQueueOrder() { 86 return queueOrder; 87 } 88 89 /*** 90 * The track meta. 91 * 92 * @return the track 93 */ 94 public TrackMetadataBean getTrack() { 95 return track; 96 } 97 98 @Override 99 public String toString() { 100 final StringBuilder builder = new StringBuilder(); 101 builder.append("Track: "); 102 builder.append(track); 103 builder.append("; played "); 104 builder.append(playCount); 105 builder.append(" times"); 106 if (queueOrder != 0) { 107 builder.append("; queued "); 108 builder.append(queueOrder); 109 } 110 return builder.toString(); 111 } 112 113 }