content: package com.kure.musicplayer.model;
  
  
  /**
   * Represents a single audio file on the Android system.
   *
   * It's a simple data container, filled with setters/getters.
   *
   * Only mandatory fields are:
   * - id (which is a unique Android identified for a media file
   *       anywhere on the system)
   * - filePath (full path for the file on the filesystem).
   */
  public class Song {
  
  	private long id;
  	private String filePath;
  
  	/**
  	 * Creates a new Song, with specified `songID` and `filePath`.
  	 *
  	 * @note It's a unique Android identifier for a media file
  	 *       anywhere on the system.
  	 */
  	public Song(long id, String filePath) {
  		this.id        = id;
  		this.filePath  = filePath;
  	}
  
  	/**
  	 * Identifier for the song on the Android system.
  	 * (so we can locate the file anywhere)
  	 */
  	public long getId() {
  		return id;
  	}
  
  	/**
  	 * Full path for the music file within the filesystem.
  	 */
  	public String getFilePath() {
  		return filePath;
  	}
  
  	// optional metadata
  
  	private String title       = "";
  	private String artist      = "";
  	private String album       = "";
  	private int    year        = -1;
  	private String genre       = "";
  	private int    track_no    = -1;
  	private long   duration_ms = -1;
  
  
  	public String getTitle() {
  		return title;
  	}
  	public void setTitle(String title) {
  		this.title = title;
  	}
  
  
  	public String getArtist() {
  		return artist;
  	}
  	public void setArtist(String artist) {
  		this.artist = artist;
  	}
  
  
  	public String getAlbum() {
  		return album;
  	}
  	public void setAlbum(String album) {
  		this.album = album;
  	}
  
  
  	public int getYear() {
  		return year;
  	}
  	public void setYear(int year) {
  		this.year = year;
  	}
  
  
  	public String getGenre() {
  		return genre;
  	}
  	public void setGenre(String genre) {
  		this.genre = genre;
  	}
  
  
  	public int getTrackNumber() {
  		return track_no;
  	}
  	public void setTrackNumber(int track_no) {
  		this.track_no = track_no;
  	}
  
  	/**
  	 * Sets the duration of the song, in miliseconds.
  	 */
  	public void setDuration(long duration_ms) {
  		this.duration_ms = duration_ms;
  	}
  	/**
  	 * Returns the duration of the song, in miliseconds.
  	 */
  	public long getDuration() {
  		return duration_ms;
  	}
  	public long getDurationSeconds() {
  		return getDuration() / 1000;
  	}
  	public long getDurationMinutes() {
  		return getDurationSeconds() / 60;
  	}
  }
  