1
00:00:00,210 --> 00:00:02,700
Bien, continuamos con la clase validador para el largo.

2
00:00:02,760 --> 00:00:09,120
Para poder saber si un campo, el valor de un campo está entre tanto y tanto caracteres, entonces vamos

3
00:00:09,120 --> 00:00:10,410
a crear una clase.

4
00:00:11,700 --> 00:00:12,600
Largo validador.

5
00:00:14,880 --> 00:00:21,750
Bien, vamos a heredar stents de validar y como siempre, implementamos los métodos abstractos acá en

6
00:00:21,750 --> 00:00:25,110
implementar métodos sobre el error o también con click derecho.

7
00:00:25,770 --> 00:00:27,090
Ok, bien.

8
00:00:27,810 --> 00:00:30,260
Y el atributo mensaje protected

9
00:00:35,340 --> 00:00:35,490
Bien.

10
00:00:35,490 --> 00:00:40,650
Pero el mensaje va a ser distinto dependiendo del mínimo y el máximo, porque también vamos a tener

11
00:00:40,650 --> 00:00:43,290
atributos para el mínimo y para máximo caracteres.

12
00:00:43,500 --> 00:00:48,660
Entonces podremos ir qué campo debe tener como mínimo tantos caracteres y como máximo tantos caracteres.

13
00:00:53,730 --> 00:00:58,200
Acá colocamos un porcentaje de que después se reemplaza con el valor.

14
00:00:58,330 --> 00:01:02,110
Esto solamente su nombre, parámetro que después se reemplaza con el mínimo, con el mío.

15
00:01:02,220 --> 00:01:12,210
Entonces el campo de tener mínimo, por ejemplo 5 caracteres y máximo lo mismo porcentaje de de dígito

16
00:01:12,510 --> 00:01:13,140
caracteres.

17
00:01:15,480 --> 00:01:21,510
Entonces después utilizando el try, informad vamos a cambiar esto, que son como nombre, parámetro

18
00:01:21,690 --> 00:01:22,530
o un patrón.

19
00:01:22,620 --> 00:01:30,420
Lo cambiamos por el valor y acá vamos a tener los atributos private para el mínimo y el máximo del tipo

20
00:01:30,450 --> 00:01:30,960
Integer.

21
00:01:31,740 --> 00:01:34,650
Entonces como mínimo por defecto va a ser cero.

22
00:01:35,190 --> 00:01:40,920
Pero recuerden cuando Primitivo el cero se omite, porque por defecto el valor de un primitivo integer

23
00:01:40,920 --> 00:01:51,750
si no se define es cero private y el máximo podríamos colocar el máximo que soporta un integer integer.

24
00:01:51,810 --> 00:01:59,460
Punto Max valio la constante max valio que tenemos entonces por defecto cero y por defecto en máximo

25
00:01:59,610 --> 00:02:01,400
el máximo que soporta los.

26
00:02:01,440 --> 00:02:01,920
Entero.

27
00:02:02,130 --> 00:02:03,660
Bien, acá asignamos el mensaje

28
00:02:07,590 --> 00:02:08,730
y acá lo retornamos.

29
00:02:10,440 --> 00:02:14,000
Te faltaría asignar el mínimo y el máximo bi constructor.

30
00:02:15,010 --> 00:02:21,060
Generate constructor y pasamos el mínimo y el máximo, ok.

31
00:02:22,110 --> 00:02:26,910
Pero qué pasa si queremos validar solamente por el mínimo, es decir, que el valor del campo tenga

32
00:02:27,000 --> 00:02:28,180
al menos 5 caracteres.

33
00:02:28,230 --> 00:02:33,750
Pero el máximo da lo mismo, podría tener cualquier valor, cualquiera ante caracteres, pero como mínimo

34
00:02:33,750 --> 00:02:38,130
5 o bien al revés, que solamente sea con máximo 12 caracteres.

35
00:02:38,280 --> 00:02:41,190
Y el mínimo da lo mismo, puede ser cero, puede ser uno, dos.

36
00:02:41,310 --> 00:02:43,050
Da lo mismo, pero máximo 12.

37
00:02:43,170 --> 00:02:49,020
Entonces, bueno, ahí en vez de utilizar este constructor, podrían utilizar métodos ceto para el mínimo

38
00:02:49,110 --> 00:02:53,160
y para el máximo de Bingen y tener un constructor por defecto vacío.

39
00:02:53,280 --> 00:02:56,940
Es decir, que no asigne ni mínimo ni máximo mínimo el máximo.

40
00:02:57,060 --> 00:02:58,110
Los tenemos Z.

41
00:02:58,890 --> 00:03:02,280
Entonces por acá generate constructor.

42
00:03:03,380 --> 00:03:04,760
Nada vacío.

43
00:03:05,450 --> 00:03:11,360
Y acá abajo IEC Generate o los setter, solamente los setter.

44
00:03:11,930 --> 00:03:14,330
Entonces para los dos mínimo y máximo.

45
00:03:14,930 --> 00:03:22,940
Entonces de esa forma lo creamos con el new sin argumento y pasamos el mínimo o el máximo Biscet.

46
00:03:23,870 --> 00:03:25,760
Y para los dos usamos este constructor.

47
00:03:26,150 --> 00:03:29,510
Se fijan, claro, y cuando pasamos los dos es por rango.

48
00:03:29,600 --> 00:03:34,850
Es decir, que el largo del valor esté entre 5, por ejemplo, y 12 caracteres.

49
00:03:35,030 --> 00:03:35,600
Un ranco.

50
00:03:36,180 --> 00:03:40,940
Bien, ahora tenemos que variar, pero antes de validar el mensaje varía.

51
00:03:40,940 --> 00:03:43,190
Se fijan dependiendo del mínimo y el máximo.

52
00:03:43,820 --> 00:03:46,940
Entonces la idea ahora es pasar el mínimo y el máximo acá.

53
00:03:48,600 --> 00:03:54,530
Entonces, punto mensaje es igual string formato.

54
00:03:54,930 --> 00:03:57,450
Acá tenemos el método format de la clase String.

55
00:03:58,500 --> 00:04:04,320
Vamos a pasar el contenido del mensaje Koma y los valores.

56
00:04:04,890 --> 00:04:10,380
Recuerden, el primer valor lo tenemos como el mínimo mínimo y el segundo máximo.

57
00:04:11,190 --> 00:04:12,420
Entonces separa por coma.

58
00:04:13,470 --> 00:04:19,590
Punto mínimo de punto máximo el segundo.

59
00:04:21,090 --> 00:04:26,580
Entonces, de esa forma, aquel mensaje más personalizado dependiendo del valor mínimo y máximo, entonces

60
00:04:26,590 --> 00:04:33,630
bueno, acá tiene dos nombres de parámetros que se reemplazan o dos patrones que son del tipo digito.

61
00:04:33,690 --> 00:04:34,640
Por eso colocamos B.

62
00:04:34,920 --> 00:04:36,420
También podríamos utilizar s.

63
00:04:36,750 --> 00:04:41,010
S significa string o cualquier tipo de dato Henny.

64
00:04:41,130 --> 00:04:47,070
Significa como Henny da lo mismo si es enteros y string da lo mismo, pero mejor digito, ya que son

65
00:04:47,070 --> 00:04:47,460
enteros.

66
00:04:47,580 --> 00:04:50,130
Entonces, básicamente este string es una plantilla.

67
00:04:50,760 --> 00:04:53,850
No es cierta una plantilla y acá se van a reemplazar valores.

68
00:04:54,060 --> 00:04:56,320
Es como una extrapolación de String.

69
00:04:56,500 --> 00:05:00,360
Va extrapolar estos dos parámetros por los valores mínimo y máximo.

70
00:05:01,790 --> 00:05:02,730
Y eso lo hacemos con él.

71
00:05:03,020 --> 00:05:03,460
Informal.

72
00:05:03,750 --> 00:05:10,170
Acá pasamos el mensaje que contiene la plantilla con los parámetros y los valores separados por coma

73
00:05:10,320 --> 00:05:13,920
en orden, ya que primero va el mínimo acá y después va al máximo.

74
00:05:13,980 --> 00:05:16,080
Entonces tiene que ir en orden y eso es todo.

75
00:05:16,200 --> 00:05:17,190
Ahora tenemos que validar.

76
00:05:18,060 --> 00:05:20,970
Bueno, me interesa validar solamente el rango.

77
00:05:21,090 --> 00:05:27,570
Es cierto que el link del valor este entre tanto y tanto caracteri, pero no me interesa validar si

78
00:05:27,570 --> 00:05:29,020
el valor es NULL.

79
00:05:29,040 --> 00:05:32,370
Por ejemplo, entonces if valor.

80
00:05:33,780 --> 00:05:37,200
Si llega a ser null, vamos a retornar true.

81
00:05:38,160 --> 00:05:41,160
Es decir, que válido ya, porque en realidad no quiero validar por eso.

82
00:05:41,250 --> 00:05:45,120
Para eso tenemos el otro valor que es no nulo validar.

83
00:05:45,240 --> 00:05:52,020
Hay valíamos que si el nulo o no nulo, acá simplemente valíamos si el nulo retorna mostruo y así evitar

84
00:05:52,110 --> 00:05:53,220
en un puente deception.

85
00:05:53,350 --> 00:05:55,110
Porque vamos a invocar el método Lenka.

86
00:05:55,410 --> 00:06:00,870
Entonces por acá int largo el link igual valor.

87
00:06:01,860 --> 00:06:02,670
Punto Lenka.

88
00:06:03,990 --> 00:06:04,560
Se fijan?

89
00:06:04,680 --> 00:06:07,140
Entonces acá valíamos por el largo.

90
00:06:07,680 --> 00:06:09,750
Entonces es válido.

91
00:06:09,930 --> 00:06:16,410
Es decir, va a retornar true si se cumple la siguiente condición que el largo sea mayor o igual al

92
00:06:16,410 --> 00:06:25,620
mínimo, pero también si el largo es menor o igual al máximo, se fijan.

93
00:06:25,740 --> 00:06:31,030
Y esto en paréntesis, ya que es una expresión booleana.

94
00:06:31,350 --> 00:06:37,650
Entonces que largo sea mayor o igual al mínimo y largo, menor o igual al máximo.

95
00:06:38,370 --> 00:06:41,090
En ese rango, si se cumple, se true está perfecto.

96
00:06:41,760 --> 00:06:43,650
Iba a mostrar el mensaje personalizado.

97
00:06:43,860 --> 00:06:48,690
De esa forma se fijan un valor super simple que también se utiliza mucho en diferentes framework.

98
00:06:48,720 --> 00:06:56,490
Por ejemplo en Spring en internet para validar mediante anotaciones el API de Java validación o beans

99
00:06:56,580 --> 00:06:57,420
validación.

100
00:06:57,510 --> 00:07:03,450
También usando anotaciones todo más o menos implementan este algoritmo con un mínimo y un máximo.

101
00:07:03,600 --> 00:07:04,230
Muy simple.

102
00:07:05,110 --> 00:07:05,400
Bien.

103
00:07:05,550 --> 00:07:06,540
Después lo vamos a probar.

104
00:07:06,630 --> 00:07:08,400
Así que no se preocupen, ya estamos listo.

105
00:07:08,490 --> 00:07:12,870
En la siguiente clase vamos a continuar con Y Maybe Validador.

106
00:07:12,930 --> 00:07:13,620
Nos vemos.
