package com.rzg.zombieland.comunes.misc;
import java.util.List;
/**
* Excepci�n con un mensaje amigable para el usuario referida a la no validez de par�metros.
* Deber�a ser lanzada desde cualquier constructor que reciba par�metros dados por el usuario.
* @author nicolas
*
*/
public class ParametrosNoValidosException extends ZombielandException {
private static final long serialVersionUID = 2748734264163995657L;
// Listado de par�metros no v�lidos.
private List<String> parametros;
// Nombre amigable para el usuario del objeto que se valida.
private String nombreObjeto;
/**
* Construye una excepci�n de par�metros no v�lidos.
* @param nombreObjeto - nombre amigable para el usuario del objeto cuyos par�metros no son
* v�lidos.
* @param parametros - listado de errores de par�metros no v�lidos del objeto. Por ejemplo,
* "El nombre no puede ser vac�o."
*/
public ParametrosNoValidosException(String nombreObjeto, List<String> parametros) {
super("Par�metros no v�lidos para " + nombreObjeto);
this.nombreObjeto = nombreObjeto;
this.parametros = parametros;
Log.info(getMensaje());
}
/**
* @return un mensaje amigable para el usuario del error.
*/
public String getMensaje() {
StringBuilder mensaje = new StringBuilder("Par�metros no v�lidos para ");
mensaje.append(nombreObjeto);
mensaje.append("\n");
for (String parametro : parametros) {
mensaje.append(parametro);
mensaje.append("\n");
}
return mensaje.toString();
}
/**
* @return la cantidad de par�metros no v�lidos.
*/
public int getCantidadParametros() {
return parametros.size();
}
}