/* * Copyright 2008-2013, ETH Zürich, Samuel Welten, Michael Kuhn, Tobias Langner, * Sandro Affentranger, Lukas Bossard, Michael Grob, Rahul Jain, * Dominic Langenegger, Sonia Mayor Alonso, Roger Odermatt, Tobias Schlueter, * Yannick Stucki, Sebastian Wendland, Samuel Zehnder, Samuel Zihlmann, * Samuel Zweifel * * This file is part of Jukefox. * * Jukefox is free software: you can redistribute it and/or modify it under the * terms of the GNU General Public License as published by the Free Software * Foundation, either version 3 of the License, or any later version. Jukefox is * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along with * Jukefox. If not, see <http://www.gnu.org/licenses/>. */ package ch.ethz.dcg.jukefox.model.rating; import java.util.Date; public class RatingEntry { public static enum RatingSource { Playlog(0), Neighbor(1); //Manual(2); private final int value; RatingSource(int value) { this.value = value; } public final int value() { return value; } }; private int id; private int profileId; private Date timestamp; private int songId; private double rating; private double weight; private RatingSource ratingSource; /** * Constructor for a {@link RatingEntry}. * * @param id * The id of this {@link RatingEntry}. * @param profileId * The player model id * @param timestamp * The timestamp of the rating * @param songId * The id of the song * @param rating * The rating (in [-1, 1]) * @param weight * The weight of the rating. Should be 1 except for neighbor ratings. The further away the original song * is the more the weight gets to 0. * @param ratingSource * Where does this rating come from? */ public RatingEntry(int id, int profileId, Date timestamp, int songId, double rating, double weight, RatingSource ratingSource) { this.id = id; this.profileId = profileId; this.timestamp = timestamp; this.songId = songId; this.rating = rating; this.weight = weight; this.ratingSource = ratingSource; } // *** Getters *** // public int getId() { return id; } public int getProfileId() { return profileId; } public Date getTimestamp() { return timestamp; } public int getSongId() { return songId; } public double getRating() { return rating; } public double getWeight() { return weight; } public RatingSource getRatingSource() { return ratingSource; } }