correcciones de excepciones y validacion, Documentacion

parent 11319278
...@@ -3,6 +3,7 @@ package com.mx.dla.util; ...@@ -3,6 +3,7 @@ package com.mx.dla.util;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
...@@ -10,50 +11,99 @@ import org.owasp.encoder.Encode; ...@@ -10,50 +11,99 @@ import org.owasp.encoder.Encode;
public class Validaciones { public class Validaciones {
private static final List<String> FORBIDDEN_WORDS = Collections.unmodifiableList(Arrays.asList("<script>","<a>","onclick")); private static final List<String> FORBIDDEN_WORDS = Collections
.unmodifiableList(Arrays.asList("<script>", "<a>", "onclick"));
/**
*
* Este método devuelve la entrada ingresada como una cadena codificada mediante
* la librería OWASP Java Encoder.
*
* @param dato cadena a encriptar
* @return String cadena encriptada
*/
public static String encodeString(String dato) { public static String encodeString(String dato) {
return Encode.forHtml(dato); return Encode.forHtml(dato);
} }
public static String[] validaListaNegra (String dato) { /**
*
* Este método es el encargado de revisar si en el dato ingresado (String) se
* encuentra alguna de las palabras catalogadas como prohibidas en la constante
* FORBIDDEN_WORDS.
*
* @param dato cadena validar
* @return respuesta de validacion arreglo de dos posiciones posicion [1] 0
* false o 1 true posicion [2] mensaje de error o vacio si es valido.
*/
public static String[] validaListaNegra(String dato) {
String[] respuesta = new String[2]; String[] respuesta = new String[2];
respuesta[0] = "1"; respuesta[0] = "1";
respuesta[1] = ""; respuesta[1] = "";
if(FORBIDDEN_WORDS.stream().anyMatch(word -> dato.contains(word.toLowerCase()))) { if (Objects.nonNull(dato)) {
if (FORBIDDEN_WORDS.stream().anyMatch(word -> dato.contains(word.toLowerCase()))) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "No es posible registrar el valor ingresado"; respuesta[1] = "No es posible registrar el valor ingresado";
} }
} else {
respuesta[0] = "0";
respuesta[1] = "El valor ingresado es null";
}
return respuesta; return respuesta;
} }
public static String[] validaShort (String dato, short min, short max, int minLength, int maxLength) { /**
*
* Valida datos de tipo Short, en caso de no cumplir las validaciones regresa un
* error.
*
* @param dato
* @param hasLimits
* @param min
* @param max
* @param minLength
* @param maxLength
* @return respuesta de validacion arreglo de dos posiciones posicion [1] 0
* false o 1 true posicion [2] mensaje de error o vacio si es valido.
*/
public static String[] validaShort(String dato, boolean hasLimits, short min, short max, int minLength,
int maxLength) {
String[] respuesta = new String[2]; String[] respuesta = new String[2];
Pattern pat = Pattern.compile("^-?\\d+$"); Pattern pat = Pattern.compile("^-?\\d+$");
Matcher mat = pat.matcher(dato);
Short datoShort = null; Short datoShort = null;
if (Objects.nonNull(dato)) {
Matcher mat = pat.matcher(dato);
respuesta[1] = ""; respuesta[1] = "";
if (mat.matches()) { if (mat.matches()) {
respuesta[0] = "1"; respuesta[0] = "1";
try {
datoShort = Short.parseShort(dato); datoShort = Short.parseShort(dato);
} catch (NumberFormatException e) {
respuesta[0] = "0";
respuesta[1] = "El valor ingresado no puede ser convertido a short.";
}
} else { } else {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado no es de tipo short"; respuesta[1] = "El valor ingresado no es de tipo short";
} }
if(datoShort != null) { } else {
if(min != -1 && datoShort < min) { respuesta[0] = "0";
respuesta[1] = "El valor ingresado es null";
}
if (datoShort != null) {
if (hasLimits && datoShort < min) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado es menor que el valor mínimo permitido"; respuesta[1] = "El valor ingresado es menor que el valor mínimo permitido";
} }
if(max != -1 && datoShort > max) { if (hasLimits && datoShort > max) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado es mayor que el valor máximo permitido"; respuesta[1] = "El valor ingresado es mayor que el valor máximo permitido";
} }
if(maxLength != -1 && dato.length() > maxLength) { if (maxLength != -1 && dato.length() > maxLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida"; respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida";
} }
if(minLength != -1 && dato.length() < minLength) { if (minLength != -1 && dato.length() < minLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida"; respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida";
} }
...@@ -61,33 +111,57 @@ public class Validaciones { ...@@ -61,33 +111,57 @@ public class Validaciones {
return respuesta; return respuesta;
} }
public static String[] validaInt (String dato, int min, int max, int minLength, int maxLength) { /**
*
* Valida datos de tipo Integer, en caso de no cumplir las validaciones regresa
* un error.
*
* @param dato
* @param hasLimits
* @param min
* @param max
* @param minLength
* @param maxLength
* @return respuesta de validacion arreglo de dos posiciones posicion [1] 0
* false o 1 true posicion [2] mensaje de error o vacio si es valido.
*/
public static String[] validaInt(String dato, boolean hasLimits, int min, int max, int minLength, int maxLength) {
String[] respuesta = new String[2]; String[] respuesta = new String[2];
Pattern pat = Pattern.compile("^-?\\d+$"); Pattern pat = Pattern.compile("^-?\\d+$");
Matcher mat = pat.matcher(dato); Matcher mat = pat.matcher(dato);
Integer datoInt = null; Integer datoInt = null;
if (Objects.nonNull(dato)) {
respuesta[1] = ""; respuesta[1] = "";
if (mat.matches()) { if (mat.matches()) {
respuesta[0] = "1"; respuesta[0] = "1";
try {
datoInt = Integer.parseInt(dato); datoInt = Integer.parseInt(dato);
} catch (NumberFormatException e) {
respuesta[0] = "0";
respuesta[1] = "El valor ingresado no puede ser convertido a int.";
}
} else { } else {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado no es de tipo int"; respuesta[1] = "El valor ingresado no es de tipo int";
} }
if(datoInt != null) { } else {
if(min != -1 && datoInt < min) { respuesta[0] = "0";
respuesta[1] = "El valor ingresado es null";
}
if (datoInt != null) {
if (hasLimits && datoInt < min) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado es menor que el valor mínimo permitido"; respuesta[1] = "El valor ingresado es menor que el valor mínimo permitido";
} }
if(max != -1 && datoInt > max) { if (hasLimits && datoInt > max) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado es mayor que el valor máximo permitido"; respuesta[1] = "El valor ingresado es mayor que el valor máximo permitido";
} }
if(maxLength != -1 && dato.length() > maxLength) { if (maxLength != -1 && dato.length() > maxLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida"; respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida";
} }
if(minLength != -1 && dato.length() < minLength) { if (minLength != -1 && dato.length() < minLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida"; respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida";
} }
...@@ -95,33 +169,58 @@ public class Validaciones { ...@@ -95,33 +169,58 @@ public class Validaciones {
return respuesta; return respuesta;
} }
public static String[] validaLong (String dato, long min, long max, int minLength, int maxLength) { /**
*
* Valida datos de tipo Long, en caso de no cumplir las validaciones regresa un
* error.
*
* @param dato
* @param hasLimits
* @param min
* @param max
* @param minLength
* @param maxLength
* @return respuesta de validacion arreglo de dos posiciones posicion [1] 0
* false o 1 true posicion [2] mensaje de error o vacio si es valido.
*/
public static String[] validaLong(String dato, boolean hasLimits, long min, long max, int minLength,
int maxLength) {
String[] respuesta = new String[2]; String[] respuesta = new String[2];
Pattern pat = Pattern.compile("^-?\\d+$"); Pattern pat = Pattern.compile("^-?\\d+$");
Matcher mat = pat.matcher(dato); Matcher mat = pat.matcher(dato);
Long datoLong = null; Long datoLong = null;
if (Objects.nonNull(dato)) {
respuesta[1] = ""; respuesta[1] = "";
if (mat.matches()) { if (mat.matches()) {
respuesta[0] = "1"; respuesta[0] = "1";
try {
datoLong = Long.parseLong(dato); datoLong = Long.parseLong(dato);
} catch (NumberFormatException e) {
respuesta[0] = "0";
respuesta[1] = "El valor ingresado no puede ser convertido a long.";
}
} else { } else {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado no es de tipo long"; respuesta[1] = "El valor ingresado no es de tipo long";
} }
if(datoLong != null) { } else {
if(min != -1 && datoLong < min) { respuesta[0] = "0";
respuesta[1] = "El valor ingresado es null";
}
if (datoLong != null) {
if (hasLimits && datoLong < min) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado es menor que el valor mínimo permitido"; respuesta[1] = "El valor ingresado es menor que el valor mínimo permitido";
} }
if(max != -1 && datoLong > max) { if (hasLimits && datoLong > max) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado es mayor que el valor máximo permitido"; respuesta[1] = "El valor ingresado es mayor que el valor máximo permitido";
} }
if(maxLength != -1 && dato.length() > maxLength) { if (maxLength != -1 && dato.length() > maxLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida"; respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida";
} }
if(minLength != -1 && dato.length() < minLength) { if (minLength != -1 && dato.length() < minLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida"; respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida";
} }
...@@ -129,33 +228,59 @@ public class Validaciones { ...@@ -129,33 +228,59 @@ public class Validaciones {
return respuesta; return respuesta;
} }
public static String[] validaDouble (String dato, double min, double max, int minLength, int maxLength) { /**
*
* Valida datos de tipo Double, en caso de no cumplir las validaciones regresa
* un error.
*
* @param dato
* @param hasLimits
* @param min
* @param max
* @param minLength
* @param maxLength
* @return respuesta de validacion arreglo de dos posiciones posicion [1] 0
* false o 1 true posicion [2] mensaje de error o vacio si es valido.
*/
public static String[] validaDouble(String dato, boolean hasLimits, double min, double max, int minLength,
int maxLength) {
String[] respuesta = new String[2]; String[] respuesta = new String[2];
Pattern pat = Pattern.compile("^-?\\d+(\\.\\d+)?$"); Pattern pat = Pattern.compile("^-?\\d+(\\.\\d+)?$");
Matcher mat = pat.matcher(dato); Matcher mat = pat.matcher(dato);
Double datoDouble = null; Double datoDouble = null;
if (Objects.nonNull(dato)) {
respuesta[1] = ""; respuesta[1] = "";
if (mat.matches()) { if (mat.matches()) {
respuesta[0] = "1"; respuesta[0] = "1";
datoDouble = Double.parseDouble(dato); datoDouble = Double.parseDouble(dato);
try {
datoDouble = Double.parseDouble(dato);
} catch (NumberFormatException e) {
respuesta[0] = "0";
respuesta[1] = "El valor ingresado no puede ser convertido a double.";
}
} else { } else {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado no es de tipo double"; respuesta[1] = "El valor ingresado no es de tipo double";
} }
if(datoDouble != null) { } else {
if(min != -1 && datoDouble < min) { respuesta[0] = "0";
respuesta[1] = "El valor ingresado es null";
}
if (datoDouble != null) {
if (hasLimits && datoDouble < min) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado es menor que el valor mínimo permitido"; respuesta[1] = "El valor ingresado es menor que el valor mínimo permitido";
} }
if(max != -1 && datoDouble > max) { if (hasLimits && datoDouble > max) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado es mayor que el valor máximo permitido"; respuesta[1] = "El valor ingresado es mayor que el valor máximo permitido";
} }
if(maxLength != -1 && dato.length() > maxLength) { if (maxLength != -1 && dato.length() > maxLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida"; respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida";
} }
if(minLength != -1 && dato.length() < minLength) { if (minLength != -1 && dato.length() < minLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida"; respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida";
} }
...@@ -163,33 +288,58 @@ public class Validaciones { ...@@ -163,33 +288,58 @@ public class Validaciones {
return respuesta; return respuesta;
} }
public static String[] validaFloat (String dato, float min, float max, int minLength, int maxLength) { /**
*
* Valida datos de tipo Float, en caso de no cumplir las validaciones regresa un
* error.
*
* @param dato
* @param hasLimits
* @param min
* @param max
* @param minLength
* @param maxLength
* @return respuesta de validacion arreglo de dos posiciones posicion [1] 0
* false o 1 true posicion [2] mensaje de error o vacio si es valido.
*/
public static String[] validaFloat(String dato, boolean hasLimits, float min, float max, int minLength,
int maxLength) {
String[] respuesta = new String[2]; String[] respuesta = new String[2];
Pattern pat = Pattern.compile("^-?\\d+(\\.\\d+)?$"); Pattern pat = Pattern.compile("^-?\\d+(\\.\\d+)?$");
Matcher mat = pat.matcher(dato); Matcher mat = pat.matcher(dato);
Float datoFloat = null; Float datoFloat = null;
if (Objects.nonNull(dato)) {
respuesta[1] = ""; respuesta[1] = "";
if (mat.matches()) { if (mat.matches()) {
respuesta[0] = "1"; respuesta[0] = "1";
try {
datoFloat = Float.parseFloat(dato); datoFloat = Float.parseFloat(dato);
} catch (NumberFormatException e) {
respuesta[0] = "0";
respuesta[1] = "El valor ingresado no puede ser convertido a float.";
}
} else { } else {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado no es de tipo float"; respuesta[1] = "El valor ingresado no es de tipo float";
} }
if(datoFloat != null) { } else {
if(min != -1 && datoFloat < min) { respuesta[0] = "0";
respuesta[1] = "El valor ingresado es null";
}
if (datoFloat != null) {
if (hasLimits && datoFloat < min) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado es menor que el valor mínimo permitido"; respuesta[1] = "El valor ingresado es menor que el valor mínimo permitido";
} }
if(max != -1 && datoFloat > max) { if (hasLimits && datoFloat > max) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "El valor ingresado es mayor que el valor máximo permitido"; respuesta[1] = "El valor ingresado es mayor que el valor máximo permitido";
} }
if(maxLength != -1 && dato.length() > maxLength) { if (maxLength != -1 && dato.length() > maxLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida"; respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida";
} }
if(minLength != -1 && dato.length() < minLength) { if (minLength != -1 && dato.length() < minLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida"; respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida";
} }
...@@ -197,15 +347,26 @@ public class Validaciones { ...@@ -197,15 +347,26 @@ public class Validaciones {
return respuesta; return respuesta;
} }
public static String[] validaString (String dato, int minLength, int maxLength) { /**
*
* Valida datos de tipo String, en caso de no cumplir las validaciones regresa
* un error.
*
* @param dato
* @param minLength
* @param maxLength
* @return respuesta de validacion arreglo de dos posiciones posicion [1] 0
* false o 1 true posicion [2] mensaje de error o vacio si es valido.
*/
public static String[] validaString(String dato, int minLength, int maxLength) {
String[] respuesta = new String[2]; String[] respuesta = new String[2];
respuesta = validaListaNegra(dato); respuesta = validaListaNegra(dato);
if(dato != null) { if (dato != null) {
if(maxLength != -1 && dato.length() > maxLength) { if (maxLength != -1 && dato.length() > maxLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida"; respuesta[1] = "La longitud del valor ingresado es mayor que la longitud máximo permitida";
} }
if(minLength != -1 && dato.length() < minLength) { if (minLength != -1 && dato.length() < minLength) {
respuesta[0] = "0"; respuesta[0] = "0";
respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida"; respuesta[1] = "La longitud del valor ingresado es menor que la longitud mínimo permitida";
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment