Bienvenidos.
Continuamos con esta segunda parte del ejemplo de clases abstracta con los valedores.
La idea implementar una clase validador abstracta y también su implementación en clases cija y cada
una debe implementar de forma distinta.
El método es válido para que se puedan validar diferentes reglas, diferentes implementaciones.
Bien, vamos a comenzar primero cerrando algunas clases archivos.
Por ejemplo, por ejemplo for lo dejamos.
Vamos a cerrar opción también clic derecho cerrar select form text area input y elemento form.
Lo podemos dejar.
Dejamos elementos for ejemplo for y comenzamos.
Lo primero es crear un package.
Entonces nos vamos acá.
New package.
Entonces.
Dentro de form.
En paralelo a elementos validador.
Bien.
Acá están nuestros componentes de validación.
Vamos a partir primero con la clase abstracta.
Entonces.
Clic derecho new yaba class validador.
Bien, en el package for validador, entonces lo primero es un public o abstract public con un método
público.
Pero el método más importante para validar es válido, es un método abstracto, entonces abstracto va
a retornar un bullían.
Es válido y el valor del tipo string valor, es decir, el valor de campo de cada campo, cada campo
tiene un valor.
Es lo que vamos a validar y listo.
Ahí está nuestro método abstracto, pero también vamos a tener un atributo con el mensaje error.
Para ese valor, por ejemplo, el campo no puede ser vacío, no puede ser nulo el formato, el correo
incorrecto, en fin.
Protected Estric mensaje la idea de que cada clase válida ahora cada validador implemente este mensaje.
Los ortiva con su propio texto, entonces cada clase hija va a tener este atributo idéntico al padre,
igual con su valor y también cología transceptor.
Pero en la clase padre elige transceptor va a ser abstracto en la clase hija.
Se van a implementar para poder obtener y modificar este valor.
El mensaje error.
Entonces voy Zeth mensaje.
Y qué mensaje se fijan?
Una clase súper abstracta con el atributo mensaje protegido y tres métodos abstracto, gué transceptor
y para validar me comenzemos.
Vamos a crear esta clase concreta también en el package validador.
Yaba Klauss no nulo, defecan super simple extend
de validador, listo.
Cómo está?
Enemigo opaca.
No hay que importar.
Solamente tenemos que implementar los métodos.
Se fijan, ok.
Bien, vamos a tener el atributo protector Strength mensajea igual que el padre, pero la diferencia
que va a tener un valor.
El campo no puede ser nulo.
Te fijan acá en el set?
Como siempre.
Punto.
Mensaje igual mensaje lo asigna y acá lo retorna.
Mensaje hay implementado.
Ahora tengo que implementar.
Es válido, pero en realidad es súper fácil, súper simple.
Una expresión plena.
Entonces, paréntesis, si el valor que se pasa por argumento este de acá valor se distinto, nulo y
listo.
Entonces es válido.
Si es distinto null se distinto, null barato, una true.
Por lo tanto es válido si no Barretto en Rafols y va a ser inválido.
Hoy tenemos la primera clase, vamos con la segunda que es requerido validador.
Entonces neuvo.
Yeva class
requerido validador okei.
Validador perfecto, implementemos la clase, el método, los métodos, implementar métodos o.
Lo mismo
mensaje, igual el campo requerido
a casa asigna.
Y acá lo devuelven.
Y acabaríamos bien cuando requerido, al menos tiene que validar también que sea distinto, nulo.
Por lo tanto, va a ser parecido a esto.
Si valor es distinto, nulo.
Por lo tanto es prácticamente lo mismo.
Pero además que tenga un largo.
Entonces con el operador and valor punto link dice que será bueno, primero que es distinto, nulo porque
sea nulo.
Al invocar el link va a lanzar un pulpo interceptor.
Entonces lo primero que sea distinto, nulo y lo segundo, que este estric tenga contenido.
Es decir, hago un texto con un largo mayor que cero.
Se fijan superfácil, ahora, otra alternativa.
Quizá un poco más automática también, simplemente podríamos utilizar el método Is empty o is blank
del string, pero con esto no asegura mortero.
De esta forma, si colocamos valor, punto, esto no es necesario que lo hagan solamente para explicarlo,
mostrarlo, aunque ya lo hemos visto.
Se fijan tenemo is empty y también is blank.
La diferencia que is blank, aparte de validar que no sea vacío, también válida, que no sea un espacio
en blanco, es decir, que no tenga espacio, porque podremos colocar como carácter un espacio simplemente,
pero es un carácter.
Ese carácter espacio, por lo tanto sería sería distinto, vacío, pero un espacio en blanco o espacio
simplemente y el is empty solamente que tenga caracteres, nada más.
Ese es plac un poco más completo porque incluye el iciente, pero tendríamos que preguntarse distinto
se distinto.
Blank o is mt la negación.
Pero bien, voy a dejar este último número valedor.
Es decir, validar que sea un número.
Entonces new lleba class número validador.
Extends Validador bien implementamos.
Mensaje El campo de ser número.
Bien importante que siempre el atributo mensaje sea idéntico a como está definido en el Padre.
ÂQuÃ mensaje tal cual mensaje de tipo string protected ÂQuÃ tan bien protected mensaje?
Y acá también con su valor.
Mismo nombre.
Cómo valíamos acá?
Bueno, contrae y Ketch, como pasa por argumento, un valor string, pero tiene que validar que este
valor del tipo string sea un dígito o sea un número.
Para eso utilizamos integer punto parse int.
Por lo tanto, tratamos de convertir a un entero este string.
Y si es un número, lo va a convertir sin ningún problema.
Pero si es otro carácter, va a lanzar una excepción.
Entonces, con un trait catch podríamos validar y saber si es un número o no?
Entonces con un Troi.
Y si todo sale bien, retornamos un true.
Si falla con el catch retornamos un falso.
Se fijan entonces por acá un try
integer punto parse int.
Pasamos valor.
Solamente tratamos de convertir este valor a un entero.
Si todo sale bien.
Perdón.
Acá Rotondo.
Catch.
Number format es hecha la excepción, si sale mal, retornamos forzo.
Entonces voy a cortar este ratón.
Lo dejamos acá.
Y listo.
Ahí lo tenemos también bastante simple, con un troi catch integer par Saint.
Si todo sale bien, lo convierte a un entero solamente para validar Ratona Mostruo.
Si no es un entero, va a lanzar un rambert format deception y retornemos forzo.
Por lo tanto, no sería válido y eso sería ahora faltaría implementar y Maile validador.
Ya lo dejamos para la siguiente clase y también podría implementar largo validador.
Es decir, que el valor de un campo tenga cierta cantidad de caracteres dentro de un rango, un mínimo
y un máximo.
Bien, continuamos en la siguiente clase.