Bien, continuamos, ahora la idea es enviar el país completo, no solamente Leidy o el código del país,
enviar todo el objeto para eso.
Bueno, había explicado que tenemos que implementar una clase property editors personalizada.
Bueno, en realidad se envía el Heidy, pero a través de Estadi o código obtenemos el objeto completo.
Acá tenemos que iterar, buscar por este arreglo por cada país y cuando encontramos este país que coincida
con ese Heidy bueno retornamos y modificamos con el valor del país y no de Leidy.
En el property editor lo podemos modificar con set valio pero bien vamos por partes.
Primero tenemos que implementar una clase que se encargue de operar con los datos, puede ser una clase
servis de lógica negocio y vamos a llevar esta lista completa a esta clase cérvix, de tal forma que
podamos utilizar tanto en el controlador como también en nuestra clase que vamos a crear después Property
Editors para no tener que estar copiando y pegando esto acá en el controlador y después en el Property
Editors, si no centralizar como un repositorio de los países en una sola clase.
Y qué mejor que utilizar un service ahora?
Bueno, si trabajamos con base auto, por supuesto que el repositorio de los países sería una tabla
que tendremos que implementar un dado o un repository con consultas a la base, datos para obtener esta
lista país o para buscar el país por el Heidy o por el código.
Se fijan?
Bueno, acá es lo mismo, pero una clase que opere con este arreglo y vamos a buscar en este arreglo.
Bien, entonces nos vamos al package.
Vamos a crear en el paquete base un nuevo package servicies.
Finalizar, vamos a crear primero una interfaz.
Recuerden que siempre es bueno tener un contrato de implementación, es decir, cuáles son los métodos
que vamos a implementar en nuestra clase concreta.
Por qué?
Bueno, por ahora nuestra clase concreta puede ser una lista de países implementado con ArrayList,
pero el día mañana esta clase concreta la podremos implementar con JDC y manejar los países en la hace
rato o con Internet.
JPA Entonces la implementación concreta puede variar, pero el comportamiento, el contrato, los nombre
de método se mantienen exactamente igual, no cambian y además inyectamos mediante el tipo genérico
de la interfaz y no una implementación concreta.
Y así después en el día mañana.
Si queremos cambiar a otra implementación concreta en vez de modificar nuestro controladores, bueno,
simplemente cambiamos o seleccionamos la instancia con el calificador Equal y falle.
O también podemos anotar con con Primary, tal como lo vimos en la sección de inyección de dependencia.
Bien, entonces vamos a crear esta interfaz Peus Service finalizar con dos métodos.
1 Para evitar países le vamos a llamar litar o obtener todos como queramos.
Voy a importar.
De yeva útil y páis.
Y el segundo, que retorna un país vocar, obtener predi y recibe el Integer Hailie.
Entonces esto sería nuestro contrato completamente genérico.
Se puede implementar, listar y obtener por Heidy, ya sea con un ArrayList tal como lo vamos a hacer
ahora.
Cómo lo vamos a implementar?
O también se podría emigrar a una consulta JDBC o con Internet, el o cualquier tipo de implementación
de DataSource o incluso un archivo de texto.
En fin, vamos a crear la clase concreta.
País Servis implemento de implementación en interfases.
Vamos a agregar por acá.
País, país servis.
Los seleccionamos.
Ok.
Finaliza bien.
Y acá tenemos.
Entonces ahora tengo que implementar estos dos métodos.
Pero primero un constructor por acá source y genera constructor de la superclase.
Ok, quitamos esto.
Entonces, la idea de acá inicializar nuestra lista, vamos a tener un atributo.
Una lista de países.
Y acá la inicializamos.
Bueno.
De dónde?
De acá.
Justamente esto acá lo copio, lo seleccionamos, se copia y lo pegamos acá.
En el constructor.
Bien, bien, simple.
El distar retorna lista.
La lista completa y el obtener por allí.
Bueno, acá tenemos que usar un for iterar con un foreach por cada país y preguntar si Leydi corresponde
a Leydi del país.
Si es así, retornamos el país encontrado entonces país.
Resultado igual null.
Usando un for país 2 punto bueno país del tipo país 2 punto la fuente aka país la fuente sería lista.
Entonces un foreach llega preguntamos if si Leydi que pasamos por argumento es igual a Leydi de cada
país país.
Punto get Heidy perfecto no encontró resultado igual país y hacemos un break para salir del foro, entonces
con un break simplemente nos salimos del foro y acá retornamos.
Resultado qué faltaría.
Bueno, tenemos que indicar que esta clase Service Point Service es un componente Brink.
Para eso podemos anotar con Servis.
Entonces de esa forma lo anotamos, lo registramos en el contenedor de Spring y lo podemos inyectar
ahora mediante la interfaz.
Guardamos.
Nos vamos al controlador.
Vamos a tener un atributo,
la interfaz País Service, país País Servis perfecto, importamos y cambiamos esto por esto.
Quitamos esto completamente.
Punto listar.
Bien, por ahora quedamos hasta acá y continuamos la siguiente clase con nuestro property editors,
nuestro país Editors para poder cambiar el Heidy que empezamos en la lista Select reemplazar este valor
Estadi por el objeto país completo.
Nos vemos en la siguiente clase.