Bien continuábamos creando en nuestra clase concreta implementada con ArrayList para nuestro repositorio.
Entonces acá creamos la clase.
Ya va a clase, le vamos a llamar cliente repositorio, cliente list.
Porque lo vamos a implementar con ArrayList o con list@.
Pero por ejemplo, si fuera con base atto podría ser cliente JDBC repositorio o cliente JPA repositorio
o Internet repositorio se fijan?
Depende de la implementación en nombre de la clase concreta que le nombremos entonces.
Cliente List Repositorio Perfecto.
Entonces vamos a implementar la interfaz CRUD repositorio.
Ahí la tenemos.
Perfecto.
Implementamos los métodos todos.
Bueno, por defecto está todo null o vacío, ok.
Pero ya tanto los métodos le tenga que dar forma, pero también como tenemos cruz repositorio podemos
implementar la otras interface, por ejemplo Koma y acá tenemos la implementación múltiple de interfaces
Quitadme.
Se le conoce como herencia múltiple de interfaces.
Entonces Cruz Repositorio Koma ordenado Repositorio Koma Páginas L Repositorio TONCE ordenado de repositorio
obviamente marca el error porque tenemos que implementar el método de ese contrato vigen listar pero
para ordenar ok y acá lo tenemos intensifiquen acá tenemos listar una sobrecarga de este método liter
de acá este sin parámetro y este parámetro con el campo y la dirección para ordenar.
Pero también vamos a tener otro más.
Voy a bajar por ejemplo acá.
Koma Página 12 páginas de repositorio y lo mismo implementamos el método Listar, pero compaginación
desde hasta OK ya tenemos a todo momento no está implementado, pero como había explicado en el video
anterior, acá lo podemos implementar con el repositorio que queramos o DataSource base de datos, ya
sea con JS, con hibernan o cualquier tipo.
Framework de persistencia, incluso con archivo plano.
Podrían guardar los datos en un archivo plano, en un Excel, en un equí mele y podríamos implementar
el CRUD en base a ese repositorio o incluso con API rest que los datos doten alojado en otro servicio,
en otra aplicación.
En fin, muchas formas.
Pero bueno, lo vamos a hacer obviamente con listas con ArrayList.
Después vamos a ver este mismo ejemplo, pero implementado con base авто con JS.
Nuestro atributo DataSource, del tipo listo de qué de cliente va a manejar una lista cliente?
Le vamos a llamar DataSource, que va a ser el contenedor de los datos donde se van a almacenar y también
donde vamos a realizar las operaciones.
Un constructor.
Generar constructor vacío, sin nada.
Vacío solamente para inicializar el array, listo.
Punto DataSource New Array lista y comenzamos a implementar método bueno, listar es super simple,
retornan a la lista tal cual, entonces retorna un DataSource buscar por Heidy.
Bueno acá tenemos que iterar con un for y buscar cliente por cliente.
Si coincide con Estadi cuando lo encontremos retornamos el siguiente cliente le voy a llamarse igual
null por defecto nulo.
Bien un for comenzamos cliente CLI de cliente 2 punto y el datasource que contiene la lista if si cli
cli punto get Heidy es decir, si el cliente de cada iteración Telford y Saidi es igual a Leydi que
se pasa por argumento 12 cli punto tendi comparamos con equals.
Recuerden que el tipo integer es un objeto toce comparamos con y cual es y cual es Heidy si son iguales
perfecto.
Sé que sería este de acá.
Igual a Clí.
A este acá lo encontramos y hacemos un preach, nos salimos del for yaca, retornamos C.
Incluso para que quede más claro, en vez de C. le voy a colocar resultado.
Resultado a cacería.
Resultado igual a clí yaca.
Resultado que sería cliente de la búsqueda.
Ahí tenemos buscar por Heidy la lista en base a esto sería un select asterisco from la tabla huer el
campo eddi igual a este parámetro fican.
Eso sería que se cuele otra implementación.
Pero bueno, eso después lo vemos.
Crear Ruthless punto DataSource punto agregar agregar un cliente.
Entonces add y pasamos al cliente.
Se fijan?
Más simple imposible.
Luego tenemos el editar.
Bueno, para editar primero tenemos que obtener el cliente que está en la lista en el DataSource.
Cliente le voy a llamar CE o Clí.
Por qué se llama distinto?
Hasta acá no se puede llamar igual.
Entonces se lo vamos a buscar por el Heidy.
Entonces sería podemos utilizar este método?
Se fijan?
Punto por Heidy.
Acá lo tenemos y tengo que pasar el Heidy.
Pero el Heidy bien acá en ese objeto.
Entonces acá pasamos cliente punto get Heidy.
Claro.
Quiero modificar este cliente con estos datos.
Entonces este cliente viene con el Heidy.
Entonces lo voy a buscar o tengo el cliente original de la fuente de dato?
Perfecto del DataSource un cliente y modifico los datos con el cliente que recibo por argumento.
Entonces, por ejemplo Zep puntos, set nombre, apellido e Leydi no se cambia, no se modifica porque
la llave es único en la llave y propio el objeto es identificador.
Pero si puedo cambiar el nombre apellido igual que en base a esto, entonces por ejemplo nombre lo cambio
con el nombre que viene el cliente por argumento cliente punto get nombre.
Entonces, por un lado, Zeth para modificar y le paso el nombre cliente que se recibe.
Y lo mismo apellido sepulto, set, apellido.
Con el cliente del argumento punto guet, apellido perfecto y faltaría eliminar lo mismo.
Recibo Leidy de cliente, lo recibo por argumento de método.
Entonces, bueno, a través de Leydi lo tengo que lucar a la hace rato.
Es decir, al DataSource o ArrayList en otro caso, y lo tenemos que eliminar del ArrayList.
Entonces primero lo tengo cliente sé igual dis punto por Heidy y le paso Leydi que se recibe por argumento.
Acá hay.
Si se fijan acá tengo un cliente que quiero eliminar.
Ya lo tengo capturado.
Entonces ahora disputo nuestro DataSource o ArrayList.
Punto Remove porque tiene el método eliminar remover el objeto.
Le pasamos el cliente.
Se fijan y listo.
Ahí lo tenemos implementado.
Ahora, si se fijan, es todo acá.
Retorno al cliente.
El C..
Entonces una forma es quitar esta línea y esto.
Todo acá se pasa por argumento, porque sería lo mismo.
Se fijan estos retando al cliente.
Pero también puedo hacer esto y lo coloco acá.
Y esto lo quito.
Me queda en una sola línea.
Al final el cliente es.
Esto es lo que íbamos a ir a buscar al método por Heidy.
Acá lo pueden dejar como quieran.
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í
como lo quieran, como prefieran.
Da lo mismo.
Ahí tenemos eliminar.
Pero esta forma de eliminar, ya que recibe el objeto por debajo, el ArrayList va a comparar, va a
utilizar los Heidy o algún atributo del objeto para identificar que realmente excita su objeto en la
lista y lo elimine.
Por ejemplo, a través del campo y vi eso lo hace a través del método.
Y cuál es entonces si el objeto que estamos pasando por argumento lo tienen que comparar con todos los
elementos de la lista por algún atributo para que se pue eliminar?
Entonces tendremos que implementar el equals en la clase cliente.
Es un detalle importante.
El licua es para que se pue eliminar, aunque después lo vamos a ver más en detalle, pero por ahora
podríamos dejar implementado el método equals acá.
A través de Leidy.
Es decir, que compare los objetos por el Heidy si son iguales.
Bueno, perfecto.
Lo elimina de la lista.
Ya habíamos visto cómo implementar el método equals de forma manual, pero también lo podemos hacer
de forma automática utilizando el IDE intelige, por ejemplo con Trí derecho generate.
Y acá dice implementar el equals y el asco.
Hacemos un clic.
Lo hace de forma automática.
Perfecto.
Siguiente.
Lo dejamos tal cual por defecto.
Y solamente el equals lo vamos a comparar con el Heidy namas.
Nombre y apellido lo quitamos solamente por la llave, el identificador único.
Cada objeto tiene su propio Heidy.
Siguiente perfecto.
Siguiente y finalizar.
Decade crea dos métodos el equals y el asco, el asco da lo mismo, no lo vamos a ocupar, pero el equals,
el que se utiliza para eliminar en el método muf tal como lo vimos acá.
Este metodo remu utiliza el recuas para eliminar por Heidy sin cliente lo dejamos con esta implementación
pero se acuerda incluímos con incluso con instance off creo constans off lo vimos pero es lo mismo.
Al final va comparando los objetos si son iguales, si la misma referencia retorna true y se sale.
Luego si el objeto nulo se sale o se la instancia son diferentes.
Es decir, no es del tipo cliente sino del tipo de otra clase.
También retorna Fors y se sale.
Por lo tanto no son iguales.
Y si todo se cumple?
Bueno, compara los clientes.
Acá tenemos el cliente que se pasa por argumentos, hace un cast y se compara con la instancia propia
que queremos eliminar.
Por ejemplo, utilizando la clase objects, el método equals.
Esta es una clase Halpert iba a comparar estos dos y todos son iguales.
Lo elimina esta forma de acá, lo mismo que decir por ejemplo esto de comentar ya, pero no es necesario
que lo hagan.
Voy a comentar, pero esto sería igual a decir que this saidi disputo Heidy punto equals cliente punto
queda Hitty o punto Didí.
Es lo mismo ya, pero siempre conviene validar que la sea distinto, nulo, porque está invocando el
método equals y si el nulo Leidy lanzarían null po intercepten.
Entonces acá podrían colocar un espacio si el Heidy es distinto de null ant.
Si se cumple que es distinto, nulo y además si son iguales ratán natural, entonces lo que hace esto
es algo muy parecido por debajo, prácticamente lo mismo.
Entonces esto acá lo podría manejar de cualquiera de las dos formas, da lo mismo.
Entonces digan lo jamo hace.
Estamos listos.
Ahí tenemos implementado el eliminar bien y listar para ordenar y listar para páginas.
Lo dejamos para la siguiente clase.
Nos vemos.