package com.rzg.zombieland.server.meta; import java.security.InvalidParameterException; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.ManyToOne; import com.rzg.zombieland.server.sesion.Jugador; /** * Almacena el resultado de una partida para un solo jugador con fin de registrar estad�sticas. * @author nicolas * */ @Entity public class ResultadoJugador { // Identificaci�n del resultado. @Id @GeneratedValue(strategy = GenerationType.AUTO) private int id; // Puntos totales ganados en la partida. @Column private int puntos; // Indica el lugar en el que sali� el jugador (1ro, 2do, etc). @Column private int ranking; // El jugador para el que se registra la estad�stica. @ManyToOne private Jugador jugador; /** * Constructor vac�o para Hibernate. */ public ResultadoJugador() { } /** * Crea un nuevo resultado de partida. * @param puntos * @param ranking * @param jugador */ public ResultadoJugador(int puntos, int ranking, Jugador jugador) { if (puntos < 0) throw new InvalidParameterException("El puntaje no puede ser menor a cero"); this.puntos = puntos; if (ranking < 1) throw new InvalidParameterException("El ranking no puede ser menor a uno"); this.ranking = ranking; if (jugador == null) throw new NullPointerException("El jugador no puede ser null"); this.jugador = jugador; } /** * @return los puntos del resultado de la partida. */ public int getPuntos() { return puntos; } /** * Actualiza los puntos del resultado de partida con el nuevo valor. * @param puntos */ public void setPuntos(int puntos) { this.puntos = puntos; } /** * @return la posici�n en el que el jugador qued� dentro de la partida. */ public int getRanking() { return ranking; } @Override public String toString() { return "ResultadoPartida [id=" + id + ", puntos=" + puntos + ", ranking=" + ranking + ", jugador=" + jugador + "]"; } /** * @return el ID �nico de resultado de partida. */ public int getId() { return id; } @Override public boolean equals(Object obj) { if (obj == null) return false; if (!(obj instanceof ResultadoJugador)) return false; ResultadoJugador otro = (ResultadoJugador)obj; return id == otro.id && puntos == otro.puntos && ranking == otro.ranking && jugador.equals(otro.jugador); } }