package com.rzg.zombieland.comunes.comunicacion.pojo;
import java.util.ArrayList;
import java.util.List;
import com.rzg.zombieland.comunes.comunicacion.Enviable;
import com.rzg.zombieland.comunes.misc.Avatar;
import com.rzg.zombieland.comunes.misc.ParametrosNoValidosException;
/**
* Contiene los datos que se env�an para identificar a un jugador a trav�s de la red.
* @author nicolas
*
*/
public class POJORegistro extends Enviable {
// El nombre del jugador (el_groso_de_vl_99).
private String nombre;
// La clave del jugador.
private String clave;
// Pregunta y respuesta secretas de seguridad.
private String preguntaSecreta;
private String respuestaSecreta;
// Avatar del jugador
private Avatar avatarJugador;
/**
* Constructor por atributos.
* @param nombre - el nombre del jugador que se registra.
* @param clave - la clave del jugador que se registra.
* @param preguntaSecreta - pregunta de seguridad.
* @param respuestaSecreta - respuesta de seguridad
* @param avatar - el avatar del jugador
* @throws ParametrosNoValidosException si alguno de los datos falta.
*/
public POJORegistro(String nombre,
String clave,
String preguntaSecreta,
String respuestaSecreta,
Avatar avatarJugador) throws ParametrosNoValidosException {
List<String> errores = new ArrayList<String>();
if (nombre == null || nombre.isEmpty())
errores.add("El nombre no puede ser vac�o");
this.nombre = nombre;
if (clave == null || clave.isEmpty())
errores.add("La clave no puede ser vac�a");
this.clave = clave;
if (preguntaSecreta == null || preguntaSecreta.isEmpty())
errores.add("La pregunta secreta no puede ser vac�a");
this.preguntaSecreta = preguntaSecreta;
if (respuestaSecreta == null || respuestaSecreta.isEmpty())
errores.add("La respuesta secreta no puede ser vac�a");
this.respuestaSecreta = respuestaSecreta;
if(avatarJugador != null && !avatarJugador.esPersonaje())
errores.add("El avatar del jugador no es un personaje");
this.avatarJugador = avatarJugador;
if (errores.size() != 0)
throw new ParametrosNoValidosException("registro de jugador", errores);
}
/**
* @return el nombre del jugador.
*/
public String getNombre() {
return nombre;
}
/**
* @return la clave del jugador, �no el hash!
*/
public String getClave() {
return clave;
}
/**
* @return la pregunta secreta elegida.
*/
public String getPreguntaSecreta() {
return preguntaSecreta;
}
/**
* @return la respuesta secreta elegida.
*/
public String getRespuestaSecreta() {
return respuestaSecreta;
}
/**
*
* @return el sprite del avatar del jugador.
*/
public Avatar getAvatarJugador(){
return avatarJugador;
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (!(obj instanceof POJORegistro)) return false;
POJORegistro otro = (POJORegistro)obj;
return nombre.equals(otro.nombre) &&
clave.equals(otro.clave) &&
preguntaSecreta.equals(otro.preguntaSecreta) &&
respuestaSecreta.equals(otro.respuestaSecreta);
}
}