* Actualización de script para crear tablas (Todo a minusculas, no case sensitive) * Script de datos de pruebas de especialides médicas. * Nuevo bean para registro de usuarios (Quidato de filtro de seguridad de login, acceso sin login). * Actualización de entidades JPA con campos Identity. * Enumerado para gestionar tipos de usuarios (Paciente, Medico Familia, Especialista y Administrador) * Clase común para realizar validaciones (función para validar nif).
51 lines
1.1 KiB
Java
51 lines
1.1 KiB
Java
package managedbean.common;
|
|
|
|
/***
|
|
*
|
|
* @author Marcos García Núñez (mgarcianun@uoc.edu)
|
|
*
|
|
*/
|
|
public class ValidationUtils {
|
|
static final String NIF_LETTERS = "TRWAGMYFPDXBNJZSQVHLCKE";
|
|
static final String NIE_LETTERS = "XYZ";
|
|
|
|
/**
|
|
*
|
|
* @param nif NIF a validar
|
|
* @return true si es válido, false en otro caso
|
|
*/
|
|
public static boolean isValid(String nif) {
|
|
if (nif == null)
|
|
return false;
|
|
|
|
nif = nif.toUpperCase().replace("-", "").replace(".", "");
|
|
|
|
if (nif.length() < 2 || nif.length() > 9)
|
|
return false;
|
|
|
|
if (nif.startsWith("X")) {
|
|
nif = nif.replace('X', '0');
|
|
} else if (nif.startsWith("Y")) {
|
|
nif = nif.replace('Y', '1');
|
|
} else if (nif.startsWith("Z")) {
|
|
nif = nif.replace('Z', '2');
|
|
}
|
|
|
|
char letra = nif.charAt(nif.length() - 1);
|
|
if (NIF_LETTERS.indexOf(letra) < 0)
|
|
return false;
|
|
|
|
String numbers = nif.substring(0, nif.length() - 1);
|
|
|
|
try {
|
|
if (NIF_LETTERS.charAt(Integer.parseInt(numbers) % 23) == letra)
|
|
return true;
|
|
} catch (Exception ex) {
|
|
return false;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
}
|