1
00:00:00,150 --> 00:00:05,520
Bien continuábamos creando en nuestra clase concreta implementada con ArrayList para nuestro repositorio.

2
00:00:06,210 --> 00:00:08,130
Entonces acá creamos la clase.

3
00:00:09,170 --> 00:00:16,320
Ya va a clase, le vamos a llamar cliente repositorio, cliente list.

4
00:00:16,460 --> 00:00:19,500
Porque lo vamos a implementar con ArrayList o con list@.

5
00:00:19,650 --> 00:00:27,690
Pero por ejemplo, si fuera con base atto podría ser cliente JDBC repositorio o cliente JPA repositorio

6
00:00:27,810 --> 00:00:29,820
o Internet repositorio se fijan?

7
00:00:29,970 --> 00:00:34,960
Depende de la implementación en nombre de la clase concreta que le nombremos entonces.

8
00:00:35,010 --> 00:00:40,590
Cliente List Repositorio Perfecto.

9
00:00:40,740 --> 00:00:44,370
Entonces vamos a implementar la interfaz CRUD repositorio.

10
00:00:47,700 --> 00:00:48,360
Ahí la tenemos.

11
00:00:48,540 --> 00:00:49,140
Perfecto.

12
00:00:49,290 --> 00:00:51,930
Implementamos los métodos todos.

13
00:00:53,700 --> 00:00:56,370
Bueno, por defecto está todo null o vacío, ok.

14
00:00:56,430 --> 00:01:01,980
Pero ya tanto los métodos le tenga que dar forma, pero también como tenemos cruz repositorio podemos

15
00:01:01,980 --> 00:01:09,030
implementar la otras interface, por ejemplo Koma y acá tenemos la implementación múltiple de interfaces

16
00:01:09,180 --> 00:01:09,510
Quitadme.

17
00:01:09,520 --> 00:01:12,750
Se le conoce como herencia múltiple de interfaces.

18
00:01:12,840 --> 00:01:21,690
Entonces Cruz Repositorio Koma ordenado Repositorio Koma Páginas L Repositorio TONCE ordenado de repositorio

19
00:01:22,140 --> 00:01:28,650
obviamente marca el error porque tenemos que implementar el método de ese contrato vigen listar pero

20
00:01:28,710 --> 00:01:36,900
para ordenar ok y acá lo tenemos intensifiquen acá tenemos listar una sobrecarga de este método liter

21
00:01:36,900 --> 00:01:42,270
de acá este sin parámetro y este parámetro con el campo y la dirección para ordenar.

22
00:01:42,840 --> 00:01:44,940
Pero también vamos a tener otro más.

23
00:01:45,390 --> 00:01:48,000
Voy a bajar por ejemplo acá.

24
00:01:50,380 --> 00:01:58,870
Koma Página 12 páginas de repositorio y lo mismo implementamos el método Listar, pero compaginación

25
00:01:58,990 --> 00:02:05,800
desde hasta OK ya tenemos a todo momento no está implementado, pero como había explicado en el video

26
00:02:05,800 --> 00:02:12,280
anterior, acá lo podemos implementar con el repositorio que queramos o DataSource base de datos, ya

27
00:02:12,280 --> 00:02:15,340
sea con JS, con hibernan o cualquier tipo.

28
00:02:15,340 --> 00:02:18,490
Framework de persistencia, incluso con archivo plano.

29
00:02:18,580 --> 00:02:23,890
Podrían guardar los datos en un archivo plano, en un Excel, en un equí mele y podríamos implementar

30
00:02:23,890 --> 00:02:30,880
el CRUD en base a ese repositorio o incluso con API rest que los datos doten alojado en otro servicio,

31
00:02:31,000 --> 00:02:31,900
en otra aplicación.

32
00:02:32,020 --> 00:02:33,320
En fin, muchas formas.

33
00:02:33,460 --> 00:02:37,300
Pero bueno, lo vamos a hacer obviamente con listas con ArrayList.

34
00:02:37,510 --> 00:02:42,040
Después vamos a ver este mismo ejemplo, pero implementado con base авто con JS.

35
00:02:43,550 --> 00:02:52,310
Nuestro atributo DataSource, del tipo listo de qué de cliente va a manejar una lista cliente?

36
00:02:52,970 --> 00:03:00,950
Le vamos a llamar DataSource, que va a ser el contenedor de los datos donde se van a almacenar y también

37
00:03:01,040 --> 00:03:03,050
donde vamos a realizar las operaciones.

38
00:03:04,710 --> 00:03:05,500
Un constructor.

39
00:03:05,700 --> 00:03:08,340
Generar constructor vacío, sin nada.

40
00:03:09,510 --> 00:03:12,470
Vacío solamente para inicializar el array, listo.

41
00:03:13,860 --> 00:03:23,400
Punto DataSource New Array lista y comenzamos a implementar método bueno, listar es super simple,

42
00:03:23,610 --> 00:03:28,590
retornan a la lista tal cual, entonces retorna un DataSource buscar por Heidy.

43
00:03:28,680 --> 00:03:33,060
Bueno acá tenemos que iterar con un for y buscar cliente por cliente.

44
00:03:33,060 --> 00:03:42,510
Si coincide con Estadi cuando lo encontremos retornamos el siguiente cliente le voy a llamarse igual

45
00:03:43,470 --> 00:03:44,790
null por defecto nulo.

46
00:03:45,330 --> 00:03:58,350
Bien un for comenzamos cliente CLI de cliente 2 punto y el datasource que contiene la lista if si cli

47
00:03:58,860 --> 00:04:06,480
cli punto get Heidy es decir, si el cliente de cada iteración Telford y Saidi es igual a Leydi que

48
00:04:06,480 --> 00:04:11,520
se pasa por argumento 12 cli punto tendi comparamos con equals.

49
00:04:11,640 --> 00:04:19,260
Recuerden que el tipo integer es un objeto toce comparamos con y cual es y cual es Heidy si son iguales

50
00:04:19,260 --> 00:04:19,890
perfecto.

51
00:04:20,040 --> 00:04:22,530
Sé que sería este de acá.

52
00:04:24,100 --> 00:04:25,510
Igual a Clí.

53
00:04:25,930 --> 00:04:34,900
A este acá lo encontramos y hacemos un preach, nos salimos del for yaca, retornamos C.

54
00:04:36,300 --> 00:04:40,020
Incluso para que quede más claro, en vez de C. le voy a colocar resultado.

55
00:04:41,650 --> 00:04:43,650
Resultado a cacería.

56
00:04:43,740 --> 00:04:48,120
Resultado igual a clí yaca.

57
00:04:48,630 --> 00:04:51,480
Resultado que sería cliente de la búsqueda.

58
00:04:51,690 --> 00:04:58,950
Ahí tenemos buscar por Heidy la lista en base a esto sería un select asterisco from la tabla huer el

59
00:04:58,950 --> 00:05:02,520
campo eddi igual a este parámetro fican.

60
00:05:02,730 --> 00:05:04,960
Eso sería que se cuele otra implementación.

61
00:05:05,010 --> 00:05:06,300
Pero bueno, eso después lo vemos.

62
00:05:06,870 --> 00:05:13,710
Crear Ruthless punto DataSource punto agregar agregar un cliente.

63
00:05:14,730 --> 00:05:18,720
Entonces add y pasamos al cliente.

64
00:05:18,930 --> 00:05:19,470
Se fijan?

65
00:05:19,560 --> 00:05:20,940
Más simple imposible.

66
00:05:21,720 --> 00:05:22,800
Luego tenemos el editar.

67
00:05:22,890 --> 00:05:27,750
Bueno, para editar primero tenemos que obtener el cliente que está en la lista en el DataSource.

68
00:05:30,350 --> 00:05:33,770
Cliente le voy a llamar CE o Clí.

69
00:05:34,640 --> 00:05:35,990
Por qué se llama distinto?

70
00:05:36,050 --> 00:05:37,730
Hasta acá no se puede llamar igual.

71
00:05:37,790 --> 00:05:40,640
Entonces se lo vamos a buscar por el Heidy.

72
00:05:40,820 --> 00:05:43,040
Entonces sería podemos utilizar este método?

73
00:05:43,100 --> 00:05:43,730
Se fijan?

74
00:05:44,720 --> 00:05:46,310
Punto por Heidy.

75
00:05:46,670 --> 00:05:49,030
Acá lo tenemos y tengo que pasar el Heidy.

76
00:05:49,280 --> 00:05:51,410
Pero el Heidy bien acá en ese objeto.

77
00:05:52,370 --> 00:05:56,420
Entonces acá pasamos cliente punto get Heidy.

78
00:05:56,540 --> 00:05:56,960
Claro.

79
00:05:57,050 --> 00:05:59,870
Quiero modificar este cliente con estos datos.

80
00:05:59,990 --> 00:06:01,670
Entonces este cliente viene con el Heidy.

81
00:06:01,970 --> 00:06:06,560
Entonces lo voy a buscar o tengo el cliente original de la fuente de dato?

82
00:06:07,660 --> 00:06:13,660
Perfecto del DataSource un cliente y modifico los datos con el cliente que recibo por argumento.

83
00:06:14,380 --> 00:06:20,650
Entonces, por ejemplo Zep puntos, set nombre, apellido e Leydi no se cambia, no se modifica porque

84
00:06:20,650 --> 00:06:24,980
la llave es único en la llave y propio el objeto es identificador.

85
00:06:25,030 --> 00:06:30,280
Pero si puedo cambiar el nombre apellido igual que en base a esto, entonces por ejemplo nombre lo cambio

86
00:06:30,280 --> 00:06:37,120
con el nombre que viene el cliente por argumento cliente punto get nombre.

87
00:06:38,390 --> 00:06:44,060
Entonces, por un lado, Zeth para modificar y le paso el nombre cliente que se recibe.

88
00:06:44,390 --> 00:06:47,780
Y lo mismo apellido sepulto, set, apellido.

89
00:06:49,690 --> 00:06:58,840
Con el cliente del argumento punto guet, apellido perfecto y faltaría eliminar lo mismo.

90
00:06:59,020 --> 00:07:02,680
Recibo Leidy de cliente, lo recibo por argumento de método.

91
00:07:02,770 --> 00:07:05,740
Entonces, bueno, a través de Leydi lo tengo que lucar a la hace rato.

92
00:07:05,950 --> 00:07:11,440
Es decir, al DataSource o ArrayList en otro caso, y lo tenemos que eliminar del ArrayList.

93
00:07:12,070 --> 00:07:22,660
Entonces primero lo tengo cliente sé igual dis punto por Heidy y le paso Leydi que se recibe por argumento.

94
00:07:22,720 --> 00:07:23,630
Acá hay.

95
00:07:23,860 --> 00:07:27,430
Si se fijan acá tengo un cliente que quiero eliminar.

96
00:07:27,790 --> 00:07:29,740
Ya lo tengo capturado.

97
00:07:30,160 --> 00:07:35,890
Entonces ahora disputo nuestro DataSource o ArrayList.

98
00:07:35,980 --> 00:07:41,650
Punto Remove porque tiene el método eliminar remover el objeto.

99
00:07:43,110 --> 00:07:44,580
Le pasamos el cliente.

100
00:07:46,890 --> 00:07:48,180
Se fijan y listo.

101
00:07:48,420 --> 00:07:49,560
Ahí lo tenemos implementado.

102
00:07:50,070 --> 00:07:52,020
Ahora, si se fijan, es todo acá.

103
00:07:52,290 --> 00:07:53,280
Retorno al cliente.

104
00:07:53,700 --> 00:07:54,160
El C..

105
00:07:54,440 --> 00:07:58,140
Entonces una forma es quitar esta línea y esto.

106
00:07:58,140 --> 00:08:00,600
Todo acá se pasa por argumento, porque sería lo mismo.

107
00:08:00,840 --> 00:08:02,700
Se fijan estos retando al cliente.

108
00:08:02,850 --> 00:08:06,660
Pero también puedo hacer esto y lo coloco acá.

109
00:08:07,260 --> 00:08:07,980
Y esto lo quito.

110
00:08:08,760 --> 00:08:10,320
Me queda en una sola línea.

111
00:08:10,470 --> 00:08:12,180
Al final el cliente es.

112
00:08:12,180 --> 00:08:15,690
Esto es lo que íbamos a ir a buscar al método por Heidy.

113
00:08:16,500 --> 00:08:18,900
Acá lo pueden dejar como quieran.

114
00:08:19,020 --> 00:08:27,510
Si les queda más claro o más fácil de leer lo anterior lo dejan así se fijan, pero si no lo dejan así

115
00:08:27,840 --> 00:08:29,310
como lo quieran, como prefieran.

116
00:08:29,400 --> 00:08:29,940
Da lo mismo.

117
00:08:30,480 --> 00:08:31,260
Ahí tenemos eliminar.

118
00:08:31,320 --> 00:08:38,160
Pero esta forma de eliminar, ya que recibe el objeto por debajo, el ArrayList va a comparar, va a

119
00:08:38,160 --> 00:08:44,250
utilizar los Heidy o algún atributo del objeto para identificar que realmente excita su objeto en la

120
00:08:44,250 --> 00:08:45,470
lista y lo elimine.

121
00:08:45,510 --> 00:08:49,080
Por ejemplo, a través del campo y vi eso lo hace a través del método.

122
00:08:49,140 --> 00:08:55,140
Y cuál es entonces si el objeto que estamos pasando por argumento lo tienen que comparar con todos los

123
00:08:55,140 --> 00:08:58,890
elementos de la lista por algún atributo para que se pue eliminar?

124
00:08:59,040 --> 00:09:02,340
Entonces tendremos que implementar el equals en la clase cliente.

125
00:09:02,580 --> 00:09:03,540
Es un detalle importante.

126
00:09:03,630 --> 00:09:08,280
El licua es para que se pue eliminar, aunque después lo vamos a ver más en detalle, pero por ahora

127
00:09:08,340 --> 00:09:11,190
podríamos dejar implementado el método equals acá.

128
00:09:12,390 --> 00:09:13,320
A través de Leidy.

129
00:09:14,310 --> 00:09:17,070
Es decir, que compare los objetos por el Heidy si son iguales.

130
00:09:17,160 --> 00:09:18,000
Bueno, perfecto.

131
00:09:18,120 --> 00:09:19,650
Lo elimina de la lista.

132
00:09:20,920 --> 00:09:26,110
Ya habíamos visto cómo implementar el método equals de forma manual, pero también lo podemos hacer

133
00:09:26,110 --> 00:09:31,820
de forma automática utilizando el IDE intelige, por ejemplo con Trí derecho generate.

134
00:09:32,110 --> 00:09:36,400
Y acá dice implementar el equals y el asco.

135
00:09:36,640 --> 00:09:37,390
Hacemos un clic.

136
00:09:37,600 --> 00:09:38,800
Lo hace de forma automática.

137
00:09:39,820 --> 00:09:40,480
Perfecto.

138
00:09:40,490 --> 00:09:41,230
Siguiente.

139
00:09:41,410 --> 00:09:43,060
Lo dejamos tal cual por defecto.

140
00:09:44,920 --> 00:09:48,550
Y solamente el equals lo vamos a comparar con el Heidy namas.

141
00:09:48,970 --> 00:09:53,740
Nombre y apellido lo quitamos solamente por la llave, el identificador único.

142
00:09:53,860 --> 00:09:55,300
Cada objeto tiene su propio Heidy.

143
00:09:56,470 --> 00:09:58,360
Siguiente perfecto.

144
00:09:58,450 --> 00:09:59,890
Siguiente y finalizar.

145
00:10:01,640 --> 00:10:08,270
Decade crea dos métodos el equals y el asco, el asco da lo mismo, no lo vamos a ocupar, pero el equals,

146
00:10:08,870 --> 00:10:14,320
el que se utiliza para eliminar en el método muf tal como lo vimos acá.

147
00:10:14,990 --> 00:10:22,520
Este metodo remu utiliza el recuas para eliminar por Heidy sin cliente lo dejamos con esta implementación

148
00:10:22,640 --> 00:10:28,670
pero se acuerda incluímos con incluso con instance off creo constans off lo vimos pero es lo mismo.

149
00:10:29,000 --> 00:10:34,910
Al final va comparando los objetos si son iguales, si la misma referencia retorna true y se sale.

150
00:10:35,540 --> 00:10:40,850
Luego si el objeto nulo se sale o se la instancia son diferentes.

151
00:10:41,120 --> 00:10:44,750
Es decir, no es del tipo cliente sino del tipo de otra clase.

152
00:10:44,960 --> 00:10:46,590
También retorna Fors y se sale.

153
00:10:46,610 --> 00:10:48,050
Por lo tanto no son iguales.

154
00:10:48,560 --> 00:10:49,550
Y si todo se cumple?

155
00:10:49,580 --> 00:10:51,410
Bueno, compara los clientes.

156
00:10:51,680 --> 00:10:57,890
Acá tenemos el cliente que se pasa por argumentos, hace un cast y se compara con la instancia propia

157
00:10:58,370 --> 00:10:59,330
que queremos eliminar.

158
00:10:59,360 --> 00:11:03,470
Por ejemplo, utilizando la clase objects, el método equals.

159
00:11:03,710 --> 00:11:07,880
Esta es una clase Halpert iba a comparar estos dos y todos son iguales.

160
00:11:07,970 --> 00:11:14,750
Lo elimina esta forma de acá, lo mismo que decir por ejemplo esto de comentar ya, pero no es necesario

161
00:11:14,750 --> 00:11:15,290
que lo hagan.

162
00:11:15,620 --> 00:11:26,360
Voy a comentar, pero esto sería igual a decir que this saidi disputo Heidy punto equals cliente punto

163
00:11:26,630 --> 00:11:28,190
queda Hitty o punto Didí.

164
00:11:30,550 --> 00:11:35,860
Es lo mismo ya, pero siempre conviene validar que la sea distinto, nulo, porque está invocando el

165
00:11:35,860 --> 00:11:39,880
método equals y si el nulo Leidy lanzarían null po intercepten.

166
00:11:40,450 --> 00:11:49,240
Entonces acá podrían colocar un espacio si el Heidy es distinto de null ant.

167
00:11:49,840 --> 00:11:56,530
Si se cumple que es distinto, nulo y además si son iguales ratán natural, entonces lo que hace esto

168
00:11:56,620 --> 00:12:00,370
es algo muy parecido por debajo, prácticamente lo mismo.

169
00:12:00,470 --> 00:12:04,680
Entonces esto acá lo podría manejar de cualquiera de las dos formas, da lo mismo.

170
00:12:05,430 --> 00:12:06,730
Entonces digan lo jamo hace.

171
00:12:08,310 --> 00:12:09,040
Estamos listos.

172
00:12:09,270 --> 00:12:15,480
Ahí tenemos implementado el eliminar bien y listar para ordenar y listar para páginas.

173
00:12:15,570 --> 00:12:16,970
Lo dejamos para la siguiente clase.

174
00:12:17,130 --> 00:12:17,850
Nos vemos.
