1
00:00:00,150 --> 00:00:02,190
Bien, qué pasa si creamos un cliente que está duplicado?

2
00:00:02,400 --> 00:00:03,660
Si lo registramos dos veces?

3
00:00:03,730 --> 00:00:05,610
Bueno, tenemos que manejar también ese tema.

4
00:00:06,030 --> 00:00:09,720
Por poner un ejemplo, voy a copiar el cliente, Andre Guzmán.

5
00:00:10,020 --> 00:00:11,010
Lo voy a cortar acá.

6
00:00:11,190 --> 00:00:12,090
Lo dejamos acá

7
00:00:15,060 --> 00:00:15,810
y lo pegamos.

8
00:00:15,930 --> 00:00:16,380
Perfecto.

9
00:00:16,440 --> 00:00:17,460
Ahí tenemos el objeto.

10
00:00:17,820 --> 00:00:19,980
Registramos o creamos Andrés.

11
00:00:21,010 --> 00:00:24,630
Y bueno, lo replicamos, está acá.

12
00:00:25,210 --> 00:00:27,910
Lo voy a comentar ya para que no herror perfecto.

13
00:00:28,000 --> 00:00:28,900
Levantamos.

14
00:00:30,740 --> 00:00:37,730
Se fijan, está duplicado Andrés con el Heidy 4, es decir, lo permite el ArrayList una lista.

15
00:00:37,850 --> 00:00:38,260
Ojo!

16
00:00:38,330 --> 00:00:43,190
Después vamos a ver que los Shet no con atrajimos con estructura de datos con el lápiz de colección

17
00:00:43,190 --> 00:00:43,730
brillaba.

18
00:00:43,820 --> 00:00:47,960
Hay otras clases como los Shet que no permite duplicados, pero la lista sí.

19
00:00:48,050 --> 00:00:48,830
Bueno y nueva sea.

20
00:00:48,950 --> 00:00:54,380
También podríamos crear un objeto duplicado y lanzarlo un error porque Leydi es único y acá tengo que

21
00:00:54,380 --> 00:00:59,570
manejar lo mismo el Heidy 4 en este caso está duplicado el nombre y apellido, pero lo importante Leydi,

22
00:00:59,660 --> 00:01:00,530
que no se repita.

23
00:01:00,620 --> 00:01:03,500
Se fijan de que la llave un identificador único.

24
00:01:03,620 --> 00:01:06,560
Entonces esto podría provocar ambigüedad en nuestros datos.

25
00:01:07,740 --> 00:01:11,240
Entonces se manejaba el error, pero en realidad es sumamente sencillo.

26
00:01:11,480 --> 00:01:18,020
Es bastante porque ya tenemos implementado en la clase cliente bueno, cliente hereda de base Entity

27
00:01:18,680 --> 00:01:19,370
y va sentite.

28
00:01:19,400 --> 00:01:19,970
Tienen método.

29
00:01:20,060 --> 00:01:21,470
Y cuál es y cuál es?

30
00:01:21,590 --> 00:01:26,810
Recuerden compara los objetos por el Heidy, es decir, si los Heidy son iguales el objeto va a ser

31
00:01:26,810 --> 00:01:28,880
igual true entonces siempre atrás de la llave.

32
00:01:29,330 --> 00:01:34,280
Entonces utilizando alicates por debajo, el API de colección brillaba con el método content.

33
00:01:34,400 --> 00:01:37,850
Podemos saber si un objeto existe o no existe en la lista.

34
00:01:37,940 --> 00:01:40,730
Vamos a ver, vámonos a la clase abstracta.

35
00:01:41,710 --> 00:01:43,330
En el método crear, como por acá.

36
00:01:43,520 --> 00:01:47,380
Entonces if el ArrayList o DataSource.

37
00:01:49,680 --> 00:01:54,240
Y cada tinen método content si contiene a un objeto, entonces por acá.

38
00:01:55,240 --> 00:01:59,770
Lo invocamos y le pasamos el obieto entity que vamos a registrar el té.

39
00:02:02,580 --> 00:02:07,560
Entonces, si lo contiene es porque ya existe y recuerden el contains lo que hace comparar.

40
00:02:07,650 --> 00:02:11,010
Es decir, busca el objeto por el Heidy utilizando el dicas incluso acá dice.

41
00:02:11,100 --> 00:02:13,140
Entonces busca por cada objeto la lista.

42
00:02:13,170 --> 00:02:20,610
Si existe este objeto mediante SAIDI lo va comparando con el Lycos por el Heidy lanzamos la acepción

43
00:02:20,790 --> 00:02:22,770
en la escritura se fijan.

44
00:02:29,340 --> 00:02:31,340
T Punto quieta y di.

45
00:02:32,610 --> 00:02:34,680
Voy a bajar por acá.

46
00:02:41,390 --> 00:02:48,500
Ya existen en repositorio tipifican una simple validación 100 DataSource en nuestro ArrayList contiene

47
00:02:48,620 --> 00:02:50,960
PFP y exita y lo compara por el Heidy.

48
00:02:51,260 --> 00:02:55,340
Entonces ahora volvemos ejemplo repositorio ejecutamos.

49
00:02:55,700 --> 00:02:56,840
Recuerden que de escritura.

50
00:02:57,980 --> 00:02:58,320
Error.

51
00:02:59,340 --> 00:02:59,840
Escritura.

52
00:02:59,930 --> 00:03:00,210
Error.

53
00:03:00,260 --> 00:03:03,290
El objeto con el DECUATRO existe en el repositorio perfecto.

54
00:03:03,440 --> 00:03:04,100
Esa es la idea.

55
00:03:04,250 --> 00:03:06,530
Entonces queda pendiente manejar ese error.

56
00:03:06,800 --> 00:03:09,290
También otro detalle que quería revisar.

57
00:03:09,380 --> 00:03:12,590
Un detalle nada importante en la clase abstracta.

58
00:03:12,770 --> 00:03:14,360
Más arriba el mensaje error.

59
00:03:14,510 --> 00:03:15,310
Acá me equivoqué.

60
00:03:15,440 --> 00:03:16,250
Es al revés.

61
00:03:16,520 --> 00:03:17,360
Debe ser mayor.

62
00:03:17,450 --> 00:03:19,010
Es decir, es para el otro lado.

63
00:03:19,190 --> 00:03:21,920
Eso de invalidó debe ser mayor que cero.

64
00:03:22,080 --> 00:03:22,480
El Heidy.

65
00:03:22,860 --> 00:03:23,810
Bien, un detalle.

66
00:03:24,780 --> 00:03:28,410
Ahora también podríamos diferenciar las excepciones, por ejemplo.

67
00:03:28,710 --> 00:03:30,720
Este podría ser escritura, acceso, dato.

68
00:03:31,050 --> 00:03:31,740
Y esto también.

69
00:03:31,800 --> 00:03:34,470
O bien crear clases fijas más específicas.

70
00:03:34,500 --> 00:03:40,200
Por ejemplo, en vez de lanzar escritura exceso de auto, lanzar una clase hija que herede de critura,

71
00:03:40,200 --> 00:03:45,030
acceso a datos, por ejemplo, registro duplicado, acceso dato exception.

72
00:03:45,180 --> 00:03:46,830
Y lo manejamos de forma más específica.

73
00:03:46,950 --> 00:03:48,090
Se fijan también.

74
00:03:48,810 --> 00:03:49,320
Veamos.

75
00:03:50,320 --> 00:03:53,500
Entonces en exepciones vamos a crear una clase

76
00:03:56,980 --> 00:04:02,980
registro duplicado, acceso, dato ecepto.

77
00:04:04,030 --> 00:04:04,510
Listo.

78
00:04:04,840 --> 00:04:08,560
heredÃ de escritura.

79
00:04:10,570 --> 00:04:15,280
Implementemos constructor generated constructor perfecto.

80
00:04:15,760 --> 00:04:17,590
Ahora vamos a ejemplo repositorio.

81
00:04:17,740 --> 00:04:18,080
Perdón.

82
00:04:18,190 --> 00:04:19,390
Vamos a la clase abstracta.

83
00:04:20,560 --> 00:04:23,320
Perfecto, y acá lanzamos esta otra.

84
00:04:24,300 --> 00:04:26,460
Entonces acá quitamos escritura.

85
00:04:31,060 --> 00:04:32,860
Registros duplicados de estos datos.

86
00:04:33,000 --> 00:04:33,610
Perfecto.

87
00:04:35,390 --> 00:04:38,330
Importamos o bien vamos a los import.

88
00:04:39,600 --> 00:04:40,740
Acá asterisco.

89
00:04:43,430 --> 00:04:47,160
Bajamos Yetta entonces así ejemplo repositorio.

90
00:04:47,300 --> 00:04:50,900
Bueno, como es hijo de escritura, va a seguir cayendo acá.

91
00:04:51,230 --> 00:04:51,710
Veamos.

92
00:04:53,470 --> 00:04:55,230
Se fijan escritura, claro.

93
00:04:55,450 --> 00:05:01,070
Sigue cayendo en escritura porque es una clásica, pero podríamos ser más específico.

94
00:05:01,340 --> 00:05:07,120
Recuerden, es de lo más específico o concreto hacia lo más abstracto o genérico.

95
00:05:07,150 --> 00:05:07,990
Entonces, por acá.

96
00:05:10,110 --> 00:05:14,570
CATT Registro duplicado Acceso a datos sefton e.

97
00:05:17,000 --> 00:05:17,780
Vamos a copiar.

98
00:05:19,680 --> 00:05:22,870
Lo pegamos y acá registro duplicado.

99
00:05:23,130 --> 00:05:26,640
Lo de copiar esto y lo dejamos acá, se fijan.

100
00:05:27,070 --> 00:05:28,410
Veamos, ya anotamos.

101
00:05:30,350 --> 00:05:32,840
Registro duplicado, que es de ese tipo.

102
00:05:33,250 --> 00:05:35,660
Y esto lo manejamos de forma mucho más específica.

103
00:05:35,800 --> 00:05:41,100
Bien, ahora sé que si finalizamos esta sección y creo que hemos cubierto todos los aspectos de manejo

104
00:05:41,100 --> 00:05:45,560
de excepción con un ejemplo bien completo, continuamos en las siguientes clases.
