1 00:00:00,000 --> 00:00:07,000 Yo voy a usar para corregir una plantilla de ejecución. 2 00:00:07,500 --> 00:00:09,580 Entonces, lo voy a dejar claro en el examen. 3 00:00:10,240 --> 00:00:12,460 Pero las firmas de las cosas que tenéis que hacer, 4 00:00:12,560 --> 00:00:13,859 tenéis que respetarlas tal cual. 5 00:00:14,960 --> 00:00:17,980 Para que yo pueda directamente ejecutar vuestro código 6 00:00:17,980 --> 00:00:20,480 sin tener que adaptar a cada examen, 7 00:00:20,579 --> 00:00:22,000 ver porque si no, me vuelvo loca. 8 00:00:22,420 --> 00:00:22,940 Eso para empezar. 9 00:00:23,280 --> 00:00:24,500 Pero voy a dejar claro el examen. 10 00:00:24,500 --> 00:00:27,280 Todas las firmas que yo os diga de métodos y de cosas, 11 00:00:27,440 --> 00:00:28,460 respetarlas tal cual. 12 00:00:29,320 --> 00:00:29,820 Eso por un lado. 13 00:00:30,000 --> 00:00:32,259 vale, si las cosas no funcionan 14 00:00:32,259 --> 00:00:33,600 yo lo ejecuto y no funciona 15 00:00:33,600 --> 00:00:36,060 a ver, ahí ya 16 00:00:36,060 --> 00:00:38,079 la cosa apunta fea, pero eso significa 17 00:00:38,079 --> 00:00:40,179 apunta fea 18 00:00:40,179 --> 00:00:41,960 sí, o sea 19 00:00:41,960 --> 00:00:44,119 apunta fea, pero significa que no miro 20 00:00:44,119 --> 00:00:45,479 nada más, no 21 00:00:45,479 --> 00:00:48,020 miro algo más, ¿por qué? porque podría 22 00:00:48,020 --> 00:00:49,640 darse el caso de que no funcionara 23 00:00:49,640 --> 00:00:52,100 por algo que se ha escapado de vuestro 24 00:00:52,100 --> 00:00:53,799 control, pues porque efectivamente 25 00:00:53,799 --> 00:00:55,039 yo lo estoy ejecutando mal 26 00:00:55,039 --> 00:00:57,840 no, puede 27 00:00:57,840 --> 00:00:59,939 estarlo yo ejecutando mal, o puedo yo 28 00:00:59,939 --> 00:01:02,000 darme cuenta de que en mi portátil hay algo 29 00:01:02,000 --> 00:01:03,820 que está colisionando con los ordenadores del aula. 30 00:01:04,219 --> 00:01:05,620 Puedo darme cuenta ahí de mil cosas 31 00:01:05,620 --> 00:01:07,840 que significan que no es un problema vuestro. 32 00:01:07,879 --> 00:01:08,560 ¿Y si no te das cuenta? 33 00:01:10,760 --> 00:01:12,019 Hombre, normalmente 34 00:01:12,019 --> 00:01:13,819 llego a saber 35 00:01:13,819 --> 00:01:14,560 por qué no funciona. 36 00:01:15,620 --> 00:01:17,920 Normalmente. A ver, es un trabajo gordo 37 00:01:17,920 --> 00:01:19,900 porque ahí empiezo a ver un montón de letras rojas 38 00:01:19,900 --> 00:01:21,700 y tengo que averiguar por qué no me funciona 39 00:01:21,700 --> 00:01:23,939 para ver si es algo que dependía de vosotros o no. 40 00:01:24,480 --> 00:01:25,900 Entonces, muchas veces concluyo 41 00:01:25,900 --> 00:01:28,239 que es algo que no dependía de vosotros. 42 00:01:28,239 --> 00:01:30,599 entonces si concluyo que es algo que no dependía de vosotros 43 00:01:30,599 --> 00:01:32,099 si el código está bien, vale 44 00:01:32,099 --> 00:01:34,959 pero, si yo entro en el código 45 00:01:34,959 --> 00:01:36,879 y al margen 46 00:01:36,879 --> 00:01:38,560 de que no funcione 47 00:01:38,560 --> 00:01:39,819 porque algo, no 48 00:01:39,819 --> 00:01:43,060 veo ahí cosas raras de programación 49 00:01:43,060 --> 00:01:44,640 burradas de programación, veo cosas 50 00:01:44,640 --> 00:01:46,780 eso también es suspenso 51 00:01:46,780 --> 00:01:48,700 como yo vea 52 00:01:48,700 --> 00:01:50,159 que programáis mal 53 00:01:50,159 --> 00:02:03,560 Que no vas a hacer el ridículo 54 00:02:03,560 --> 00:02:09,460 Venga, primer método que vamos a hacer 55 00:02:09,460 --> 00:02:12,060 Dado un ID de un libro 56 00:02:12,060 --> 00:02:14,159 Modificar su género 57 00:02:14,159 --> 00:02:15,740 Y esto, vamos a hacerlo con DOM 58 00:02:15,740 --> 00:02:17,439 Vale, pues entonces 59 00:02:17,439 --> 00:02:18,740 Nos hacemos nuestra clase 60 00:02:18,740 --> 00:02:21,340 de utilidades 61 00:02:21,340 --> 00:02:22,379 antes que nada 62 00:02:22,379 --> 00:02:25,699 por esto puntas algo 63 00:02:25,699 --> 00:02:27,419 ¿por qué? 64 00:02:28,180 --> 00:02:29,400 que no puntúa con nada 65 00:02:29,400 --> 00:02:30,680 ya, ya, ya 66 00:02:30,680 --> 00:02:38,879 venga, pues ala, esta es nuestra clase 67 00:02:38,879 --> 00:02:51,000 ala, pues nuestro método 68 00:02:51,000 --> 00:02:56,680 el que luego invocará el controlador 69 00:02:56,680 --> 00:02:58,900 con el fichero que ya ha recibido, lo que sea 70 00:02:58,900 --> 00:03:00,419 nuestro método 71 00:03:00,419 --> 00:03:01,639 que lo que hace es 72 00:03:01,639 --> 00:03:04,780 dado una idea de un libro, modificar su género 73 00:03:04,780 --> 00:03:06,319 de esto realmente es de lo que yo tengo 74 00:03:06,319 --> 00:03:08,960 que evaluar según los contenidos de mi módulo 75 00:03:08,960 --> 00:03:10,199 pues de hacer estas operativas 76 00:03:10,199 --> 00:03:12,080 de modificación de cosas en ficheros 77 00:03:12,080 --> 00:03:18,319 No, que estamos haciendo 78 00:03:18,319 --> 00:03:19,780 estas utilidades en un método 79 00:03:19,780 --> 00:03:22,099 y luego estas utilidades ya las llamará 80 00:03:22,099 --> 00:03:24,159 quien sea en función de cómo es la aplicación 81 00:03:24,159 --> 00:03:25,800 si la haces con un main de escritorio 82 00:03:25,800 --> 00:03:27,860 pues el main, si lo haces en una 83 00:03:27,860 --> 00:03:29,500 web, el controlador, ya quien sea 84 00:03:29,500 --> 00:03:30,800 llamar a quien sea 85 00:03:30,800 --> 00:03:33,840 vale, pues entonces 86 00:03:33,840 --> 00:03:38,240 vamos a necesitar 87 00:03:38,240 --> 00:03:39,800 modificar género 88 00:03:40,719 --> 00:03:42,580 y aquí 89 00:03:42,580 --> 00:03:45,280 jo, que sale todo siempre no binario 90 00:03:45,280 --> 00:03:47,759 a ver, pero si 91 00:03:47,759 --> 00:03:50,020 la o y la e están muy lejos, ¿por qué me sale siempre la e? 92 00:03:50,080 --> 00:03:50,539 no lo sé 93 00:03:50,539 --> 00:03:52,479 ¿qué clases inclusivas? 94 00:03:52,919 --> 00:03:54,340 pues yo que sé, va a ser eso 95 00:03:54,340 --> 00:03:55,439 Pero hay manera de ponerla hoy 96 00:03:55,439 --> 00:03:58,360 Vale, vamos a pasar el 97 00:03:58,360 --> 00:03:59,460 Fichero 98 00:03:59,460 --> 00:04:04,939 Lo de paz es por perderle un poco de respeto 99 00:04:04,939 --> 00:04:07,599 El fichero 100 00:04:07,599 --> 00:04:09,240 El nuevo género 101 00:04:09,240 --> 00:04:10,680 El ID del género 102 00:04:10,680 --> 00:04:11,340 A ver 103 00:04:11,340 --> 00:04:13,319 El ID 104 00:04:13,319 --> 00:04:20,209 Y el nuevo género 105 00:04:20,209 --> 00:04:32,389 Y sin valor de retorno vamos mal 106 00:04:32,389 --> 00:04:35,750 Venga, ¿qué queremos? 107 00:04:35,850 --> 00:04:36,750 ¿Un boy o un boolean? 108 00:04:37,490 --> 00:04:39,949 Un boolean, he dicho por ahí 109 00:04:39,949 --> 00:04:41,389 Se ha adelantado ella 110 00:04:41,389 --> 00:04:43,490 Ya he dicho un boolean 111 00:04:43,490 --> 00:04:46,490 Retún 112 00:04:46,490 --> 00:04:48,449 Esto, ¿vale? 113 00:04:48,610 --> 00:04:49,290 Retún 114 00:04:49,290 --> 00:04:55,069 Ya lo cambiaremos al final 115 00:04:55,069 --> 00:04:57,490 Vale, paz 116 00:04:57,490 --> 00:04:59,290 Importar 117 00:04:59,290 --> 00:05:02,980 ¡Hala! Pues venga 118 00:05:02,980 --> 00:05:04,879 ¿Qué haríais aquí? 119 00:05:06,600 --> 00:05:08,120 Nuestro fichero es este 120 00:05:08,120 --> 00:05:09,399 ¡No! 121 00:05:11,139 --> 00:05:17,339 usas unos términos muy profesionales 122 00:05:17,339 --> 00:05:19,259 no, desde luego 123 00:05:19,259 --> 00:05:21,279 es que yo no sé 124 00:05:21,279 --> 00:05:22,639 qué haces aquí 125 00:05:22,639 --> 00:05:27,160 no, pero 126 00:05:27,160 --> 00:05:28,079 te lo digo 127 00:05:28,079 --> 00:05:30,379 con toda la buena voluntad del mundo 128 00:05:30,379 --> 00:05:33,079 porque yo tengo una especial fobia 129 00:05:33,079 --> 00:05:34,959 a la sensación de perder el tiempo 130 00:05:34,959 --> 00:05:36,560 una cosa personal 131 00:05:36,560 --> 00:05:39,120 y a lo mejor estás perdiendo mucho el tiempo 132 00:05:39,120 --> 00:05:39,899 aumentar el link 133 00:05:40,680 --> 00:05:41,720 Ah, bueno, vale, eso sí. 134 00:05:42,300 --> 00:05:44,620 Tienes un título nuevo, eso sí. 135 00:05:48,040 --> 00:05:49,879 Vale, pues ¿qué es lo primero que haríais 136 00:05:49,879 --> 00:05:51,720 para modificar el género? 137 00:05:52,560 --> 00:05:54,899 El objetivo de modificar el género es 138 00:05:54,899 --> 00:05:57,079 llegar a este nodo 139 00:05:57,079 --> 00:05:59,360 y este nodo cambiarlo. 140 00:06:00,000 --> 00:06:03,339 Entonces, eso sería ser tan fácil 141 00:06:03,339 --> 00:06:04,300 como crear otro nodo, 142 00:06:04,360 --> 00:06:05,980 si digo por esto, ver los métodos que hay, 143 00:06:06,040 --> 00:06:07,420 en el peor de los casos siempre puedo. 144 00:06:08,060 --> 00:06:09,339 Si he llegado a este libro, 145 00:06:09,899 --> 00:06:11,920 hacer un remove de este y hacerle un append 146 00:06:11,920 --> 00:06:13,680 de este, que sería lo más fácil también, 147 00:06:14,160 --> 00:06:15,079 pero tengo que llegar a este. 148 00:06:16,459 --> 00:06:17,839 Entonces, para llegar a este, 149 00:06:19,379 --> 00:06:20,060 pues como tengo 150 00:06:20,060 --> 00:06:22,220 la suerte de que 151 00:06:22,220 --> 00:06:24,220 no hay nodos libro que se llamen 152 00:06:24,220 --> 00:06:26,779 también y dados aquí, me hago un getElementsByTagName 153 00:06:26,779 --> 00:06:28,160 libro y ya 154 00:06:28,160 --> 00:06:29,300 tengo todos los nodos libro. 155 00:06:30,139 --> 00:06:32,079 Los recorro, me quedo con aquel 156 00:06:32,079 --> 00:06:34,459 cuyo id, cuyo atributo 157 00:06:34,459 --> 00:06:36,139 sea el que me han 158 00:06:36,139 --> 00:06:38,399 dado y ya a ese nodo 159 00:06:38,399 --> 00:06:41,040 le remuevo este hijo y le pego otro 160 00:06:41,040 --> 00:06:43,060 o si hay algún método que me ofrezca 161 00:06:43,060 --> 00:06:44,860 document, que me ofrezca la clase no 162 00:06:44,860 --> 00:06:46,939 de element, para sustituir uno 163 00:06:46,939 --> 00:06:48,860 por otro, pues sustituyo o para cambiar 164 00:06:48,860 --> 00:06:50,779 el valor y ya está, ya hemos terminado 165 00:06:50,779 --> 00:06:52,399 ese código, vale 166 00:06:52,399 --> 00:06:55,000 bueno, tendré que leer lógicamente 167 00:06:55,000 --> 00:06:55,459 primero 168 00:06:55,459 --> 00:06:58,879 este fichero, lo vuelco 169 00:06:58,879 --> 00:07:00,540 a document, me hago el 170 00:07:00,540 --> 00:07:02,899 getElementsByTagName para sacarme 171 00:07:02,899 --> 00:07:04,899 todos los nodos, lo recorro 172 00:07:04,899 --> 00:07:06,879 hasta quedarme con el nodo cuyo atributo 173 00:07:06,879 --> 00:07:09,220 es este y cuando ya me he quedado 174 00:07:09,220 --> 00:07:10,860 remove child, append child 175 00:07:10,860 --> 00:07:12,959 o si hay algún método que me lo facilite 176 00:07:12,959 --> 00:07:14,579 cambiando el valor de este 177 00:07:14,579 --> 00:07:17,000 pues lo hago y se acabó esa funcionalidad 178 00:07:17,000 --> 00:07:17,339 ¿vale? 179 00:07:18,399 --> 00:07:19,139 pues venga 180 00:07:19,139 --> 00:07:22,019 como lo que os falta 181 00:07:22,019 --> 00:07:24,759 y nos falta a todos en general es 182 00:07:24,759 --> 00:07:26,519 sobre todo a ti, es el que más te falta 183 00:07:26,519 --> 00:07:28,939 puesto en orden de a quien le falta más 184 00:07:28,939 --> 00:07:31,079 la facilidad para vencer la pereza 185 00:07:31,079 --> 00:07:32,699 es a ti, el segundo 186 00:07:32,699 --> 00:07:33,540 todavía no lo hemos puesto 187 00:07:33,540 --> 00:07:37,079 Yo, o sea, de Juanjo diré 188 00:07:37,079 --> 00:07:38,860 Que no es tan vago 189 00:07:38,860 --> 00:07:40,660 Soy yo el vago 190 00:07:40,660 --> 00:07:43,779 Bueno, él le da pereza 191 00:07:43,779 --> 00:07:44,500 Hacer las cosas 192 00:07:44,500 --> 00:07:48,019 A todos nos da pereza 193 00:07:48,019 --> 00:07:50,120 Pero es que tenemos que examinarnos 194 00:07:50,120 --> 00:07:51,680 Y para eso pues tenemos que ponernos a hacer algo 195 00:07:51,680 --> 00:07:53,079 Para ponernos una nota, es que no hay tutía 196 00:07:53,079 --> 00:07:54,939 De ahí mi conflicto interno 197 00:07:54,939 --> 00:07:56,240 ¿Hace falta todo esto para que aprendáis? 198 00:07:56,319 --> 00:07:58,339 No, podéis aprender por vuestra cuenta perfectamente 199 00:07:58,339 --> 00:08:01,240 Pero mientras no cambie el esquema 200 00:08:01,240 --> 00:08:02,779 De funcionamiento de esta sociedad 201 00:08:02,779 --> 00:08:04,980 Pues tendremos que seguir haciendo esto 202 00:08:04,980 --> 00:08:07,600 Vale, pues venga 203 00:08:07,600 --> 00:08:09,759 Vamos a intentarlo, 5 o 10 minutos 204 00:08:09,759 --> 00:08:10,579 Para intentar hacerlo 205 00:08:10,579 --> 00:08:12,480 Y así vencéis esa pereza 206 00:08:12,480 --> 00:08:14,439 Que nos invade a todos 207 00:08:14,439 --> 00:08:16,040 Daniel, yo creo que ya lo tienes hecho 208 00:08:16,040 --> 00:08:17,399 ¿Ya lo tienes hecho? 209 00:08:21,360 --> 00:08:23,660 Ay, Daniel, estás de un serio 210 00:08:23,660 --> 00:08:24,779 Últimamente que me estás 211 00:08:24,779 --> 00:08:26,300 Preocupando 212 00:08:26,300 --> 00:08:29,360 ¿Qué habréis hecho aquí? 213 00:08:30,660 --> 00:08:31,180 Bueno, pues 214 00:08:31,180 --> 00:08:34,080 ¿eh? ah, perdón 215 00:08:34,080 --> 00:08:36,039 esto de aquí, vale, pues ¿qué habréis 216 00:08:36,039 --> 00:08:38,100 hecho aquí? bueno, pues primero 217 00:08:38,100 --> 00:08:39,940 llevar el fichero al document 218 00:08:39,940 --> 00:08:41,980 esto habréis 219 00:08:41,980 --> 00:08:43,940 copiado y pegado el método que tenemos ya en otro 220 00:08:43,940 --> 00:08:46,059 proyecto, copiar y pegar el que 221 00:08:46,059 --> 00:08:47,279 te carga de un fichero 222 00:08:47,279 --> 00:08:50,159 a un document, pues nada, yo lo he copiado 223 00:08:50,159 --> 00:08:52,139 y pegado del proyecto que teníamos ejemplo de clase 224 00:08:52,139 --> 00:08:54,019 y ya está, ya tengo aquí 225 00:08:54,019 --> 00:08:55,879 el document, ahora 226 00:08:55,879 --> 00:08:57,379 me cojo todos los libros 227 00:08:57,379 --> 00:09:00,200 mediante este método 228 00:09:00,200 --> 00:09:02,360 Y ahora ya recorro libro por libro 229 00:09:02,360 --> 00:09:04,960 Vale, aquí tengo cada libro 230 00:09:04,960 --> 00:09:06,159 Para cada libro 231 00:09:06,159 --> 00:09:08,980 Si su atributo id 232 00:09:08,980 --> 00:09:10,039 Que se llama id 233 00:09:10,039 --> 00:09:12,259 Es igual al que me han pasado como parámetro 234 00:09:12,259 --> 00:09:13,399 Estoy en el libro 235 00:09:13,399 --> 00:09:16,100 Al que quiero cambiar el género 236 00:09:16,100 --> 00:09:18,539 ¿Cómo saco el nodo género del libro? 237 00:09:18,759 --> 00:09:19,840 Pues de nuevo con esto 238 00:09:19,840 --> 00:09:22,320 Este me daría 239 00:09:22,320 --> 00:09:24,600 Todos los hijos del libro que se llaman género 240 00:09:24,600 --> 00:09:26,259 Solo tiene uno 241 00:09:26,259 --> 00:09:27,320 Que se llama género 242 00:09:27,320 --> 00:09:29,480 Por eso me quedo directamente con el ítem 0 243 00:09:29,480 --> 00:09:31,799 me quedo con el ítem 0 y ahora 244 00:09:31,799 --> 00:09:33,860 de este género, aquí 245 00:09:33,860 --> 00:09:35,860 tendría que hacerle, pues 246 00:09:35,860 --> 00:09:37,659 tengo que ver, ¿hay algún método que me permita 247 00:09:37,659 --> 00:09:39,440 cambiar su contenido de texto? 248 00:09:40,019 --> 00:09:42,419 Sí, igual que tenía el getTextContext 249 00:09:42,419 --> 00:09:43,779 para darme 250 00:09:43,779 --> 00:09:45,080 el texto que tenía, pues 251 00:09:45,080 --> 00:09:47,580 rápidamente me he cogido un setTextContext 252 00:09:47,580 --> 00:09:48,500 y así me ahorro 253 00:09:48,500 --> 00:09:50,659 al género 254 00:09:50,659 --> 00:09:53,799 borrarle el ítem o texto 255 00:09:53,799 --> 00:09:55,320 y querrálo otra vez, pues ya está 256 00:09:55,320 --> 00:09:57,500 ya lo tendríamos hecho con esto 257 00:09:57,500 --> 00:09:58,720 a ver, me falta 258 00:09:58,720 --> 00:10:00,759 volver a escribirlo 259 00:10:00,759 --> 00:10:02,539 con lo cual tengo que hacer el 260 00:10:02,539 --> 00:10:04,279 copiar aquí 261 00:10:04,279 --> 00:10:05,840 copiar de aquí el 262 00:10:05,840 --> 00:10:09,240 el de escribir, volver a guardar en el fichero 263 00:10:09,240 --> 00:10:12,750 actualizar fichero 264 00:10:12,750 --> 00:10:13,250 vale 265 00:10:13,250 --> 00:10:15,669 pues copio y pego este 266 00:10:15,669 --> 00:10:16,929 y ya está 267 00:10:16,929 --> 00:10:20,649 y se acabó esa funcionalidad 268 00:10:20,649 --> 00:10:27,340 copio y pego este, actualizar fichero 269 00:10:27,340 --> 00:10:29,480 le voy a pasar 270 00:10:29,480 --> 00:10:31,259 el, como no lo tengo 271 00:10:31,259 --> 00:10:32,919 como variables estáticas 272 00:10:32,919 --> 00:10:34,799 Se lo voy a pasar por aquí 273 00:10:34,799 --> 00:10:38,779 Y aquí esto 274 00:10:38,779 --> 00:10:43,919 Ah bueno, al fichero resultante 275 00:10:43,919 --> 00:10:46,480 Se lo paso también como parámetro 276 00:10:46,480 --> 00:10:49,940 Guárdame ese doc 277 00:10:49,940 --> 00:10:51,179 En este 278 00:10:51,179 --> 00:10:55,500 Entonces stream result 279 00:10:55,500 --> 00:10:57,059 Fichero.toFile 280 00:10:57,059 --> 00:10:59,440 Porque esta librería trabaja con file 281 00:10:59,440 --> 00:11:00,139 No con par 282 00:11:00,139 --> 00:11:02,220 Y 283 00:11:02,220 --> 00:11:04,500 El doc este 284 00:11:04,500 --> 00:11:05,500 Es este doc 285 00:11:05,500 --> 00:11:09,190 Ya está 286 00:11:09,190 --> 00:11:11,529 Y ahora ya a este método 287 00:11:11,529 --> 00:11:12,649 Actualizar fichero 288 00:11:12,649 --> 00:11:15,090 Que tendrá que ser estático 289 00:11:15,090 --> 00:11:16,750 Para poder llamarle desde el otro lado 290 00:11:16,750 --> 00:11:21,889 A este método actualizar fichero 291 00:11:21,889 --> 00:11:23,009 Lo llamo desde aquí 292 00:11:23,009 --> 00:11:27,059 Pasándole doc 293 00:11:27,059 --> 00:11:29,539 Y fichero 294 00:11:29,539 --> 00:11:33,299 Y aquí return true 295 00:11:33,299 --> 00:11:40,009 Entonces 296 00:11:40,009 --> 00:11:43,710 Pues ya está 297 00:11:43,710 --> 00:11:44,929 Siguiente 298 00:11:44,929 --> 00:11:46,929 funcionalidad 299 00:11:46,929 --> 00:11:47,909 que tenemos que hacer? 300 00:11:51,649 --> 00:11:52,470 ¿Cómo que por qué 301 00:11:52,470 --> 00:11:53,509 no métodos de biblioteca? 302 00:11:58,789 --> 00:12:00,409 A ver, ¿a mí qué me interesan? 303 00:12:00,429 --> 00:12:01,970 Me interesan los nodos libro. 304 00:12:02,870 --> 00:12:04,529 Pues hombre, este es el método clave 305 00:12:04,529 --> 00:12:06,009 porque es el más cómodo. Este método 306 00:12:06,009 --> 00:12:07,370 del XML 307 00:12:07,370 --> 00:12:09,889 te saca una colección, 308 00:12:10,610 --> 00:12:12,610 una lista de nodos, una colección 309 00:12:12,610 --> 00:12:14,190 con todos los nodos 310 00:12:14,190 --> 00:12:15,889 que se llamen así. 311 00:12:16,429 --> 00:12:18,610 Y eso es lo que a mí me interesa 312 00:12:18,610 --> 00:12:19,909 Los libros que se llaman así 313 00:12:19,909 --> 00:12:21,690 El nodo biblioteca que los envuelve 314 00:12:21,690 --> 00:12:23,570 Bueno, me interesa 315 00:12:23,570 --> 00:12:26,779 ¿Eh? 316 00:12:31,100 --> 00:12:32,820 Pero es que no sé de qué idea es 317 00:12:32,820 --> 00:12:34,460 Porque a lo mejor no están por orden 318 00:12:34,460 --> 00:12:37,299 Claro, hay una idea de parámetro 319 00:12:37,299 --> 00:12:39,940 Vale, pues ya está 320 00:12:39,940 --> 00:12:41,000 Siguiente cosa 321 00:12:41,000 --> 00:12:46,100 Ah, sí, no, lo he cambiado ya 322 00:12:46,100 --> 00:12:46,639 Este, dices 323 00:12:46,639 --> 00:12:51,259 Es que voy a dar true 324 00:12:51,259 --> 00:12:52,279 Porque no tengo 325 00:12:52,279 --> 00:12:55,039 aquí no hay ningún exception, ni hay ningún 326 00:12:55,039 --> 00:12:55,360 nada 327 00:12:55,360 --> 00:12:58,899 ¿en qué punto podría salir como 328 00:12:58,899 --> 00:13:00,299 falso? podría salir como falso 329 00:13:00,299 --> 00:13:03,039 si no llega a encontrar estos, si no los encuentra 330 00:13:03,039 --> 00:13:05,080 por ejemplo, entonces sí, podría incorporar aquí 331 00:13:05,080 --> 00:13:07,080 un boolean 332 00:13:07,080 --> 00:13:08,840 de encontrado 333 00:13:08,840 --> 00:13:17,860 y ya está, y así 334 00:13:17,860 --> 00:13:19,820 efectivamente si tengo muchos libros 335 00:13:19,820 --> 00:13:21,120 añado en mi for 336 00:13:21,120 --> 00:13:23,279 y mientras no he encontrado 337 00:13:23,279 --> 00:13:25,340 y bueno, es verdad que queda un poco mejor 338 00:13:25,340 --> 00:13:29,360 y así en cuanto, como los ideas se supone que son 339 00:13:29,360 --> 00:13:31,440 únicos, en cuanto llegue al libro 340 00:13:31,440 --> 00:13:33,200 con ese id, ya no sigue mirando más 341 00:13:33,200 --> 00:13:34,759 porque sería una pérdida de tiempo 342 00:13:34,759 --> 00:13:37,340 y ahora ya sí que 343 00:13:37,340 --> 00:13:38,360 podría hacer aquí 344 00:13:38,360 --> 00:13:40,779 si no he encontrado 345 00:13:40,779 --> 00:13:47,100 retun false 346 00:13:47,100 --> 00:13:52,289 efectivamente 347 00:13:52,289 --> 00:13:54,250 me falta aquí 348 00:13:54,250 --> 00:13:56,769 que he encontrado 349 00:13:56,769 --> 00:13:57,830 a true 350 00:13:57,830 --> 00:14:00,990 vale, entonces este método yo ahora aquí 351 00:14:00,990 --> 00:14:03,009 claro, aquí lo ideal es que yo hiciera 352 00:14:03,009 --> 00:14:04,830 una buena documentación 353 00:14:04,830 --> 00:14:06,730 ahora, que especificara 354 00:14:06,730 --> 00:14:08,590 lo que es fichero, lo que es id, lo que es 355 00:14:08,590 --> 00:14:10,490 nuevo género, devuelve true 356 00:14:10,490 --> 00:14:12,529 si ha pasado esto, false si no ha 357 00:14:12,529 --> 00:14:14,610 encontrado el nombre, ahora ya aquí 358 00:14:14,610 --> 00:14:16,309 pues bueno, lo tendría que documentar bien 359 00:14:16,309 --> 00:14:18,649 para generar un javado, pero bueno 360 00:14:18,649 --> 00:14:19,610 vale 361 00:14:19,610 --> 00:14:22,590 vale, lo que hemos hecho está 362 00:14:22,590 --> 00:14:26,200 claro, entonces al final 363 00:14:26,200 --> 00:14:27,779 tirando de los métodos básicos 364 00:14:27,779 --> 00:14:30,299 este para sacar los nodos 365 00:14:30,299 --> 00:14:32,639 que a mi me interesan, recorrer 366 00:14:32,639 --> 00:14:34,340 y luego ya pues ir 367 00:14:34,340 --> 00:14:36,580 sacando el contenido 368 00:14:36,580 --> 00:14:38,320 que tiene con GetTechContext 369 00:14:38,320 --> 00:14:42,269 pues lo puedo hacer 370 00:14:42,269 --> 00:14:43,450 todo de forma sencilla 371 00:14:43,450 --> 00:14:46,429 con esta librería y no necesitamos nada más 372 00:14:46,429 --> 00:14:48,850 lo siguiente 373 00:14:48,850 --> 00:14:58,519 vale 374 00:14:58,519 --> 00:15:01,460 insertar libros garantizando su unicidad 375 00:15:01,460 --> 00:15:03,200 de ides y hacerlo con 376 00:15:03,200 --> 00:15:04,379 Jaxby, vale 377 00:15:04,379 --> 00:15:07,559 pues entonces vamos a hacer las clases rápidamente 378 00:15:07,559 --> 00:15:15,990 y estas clases 379 00:15:15,990 --> 00:15:16,509 son 380 00:15:16,509 --> 00:15:21,659 Son 381 00:15:21,659 --> 00:15:24,259 Libro y biblioteca 382 00:15:24,259 --> 00:15:25,820 Ya está, dos clases 383 00:15:25,820 --> 00:15:27,700 Tiene este modelo 384 00:15:27,700 --> 00:15:30,000 Uy, ¿qué he hecho yo aquí? 385 00:15:30,059 --> 00:15:31,779 Yo quería el paquete y he hecho una clase 386 00:15:31,779 --> 00:15:34,259 Me he equivocado 387 00:15:34,259 --> 00:15:38,179 Yo quería un paquete 388 00:15:38,179 --> 00:15:43,399 Entonces 389 00:15:43,399 --> 00:15:44,700 Hacemos libro primero 390 00:15:44,700 --> 00:15:53,320 Si este modelo 391 00:15:53,320 --> 00:15:56,059 Si este modelo 392 00:15:56,059 --> 00:15:57,159 Me sirviera solo 393 00:15:57,159 --> 00:15:59,620 Para recoger los 394 00:15:59,620 --> 00:16:01,220 objetos del fichero 395 00:16:01,220 --> 00:16:02,980 y consultarlos 396 00:16:02,980 --> 00:16:05,000 solo para hacer consultas 397 00:16:05,000 --> 00:16:07,580 pues podría hacerlo en lugar de con una clase 398 00:16:07,580 --> 00:16:10,299 y la verdad es que sería mucho más cómodo 399 00:16:10,299 --> 00:16:11,759 podríamos hacerlo así, ¿verdad? 400 00:16:15,419 --> 00:16:15,620 ¿eh? 401 00:16:17,460 --> 00:16:19,139 esto es lo que mencionamos el otro día 402 00:16:19,139 --> 00:16:20,899 entonces yo aquí pondría 403 00:16:20,899 --> 00:16:22,460 las propiedades 404 00:16:22,460 --> 00:16:24,720 y de lo que fuera 405 00:16:24,720 --> 00:16:26,220 y ya está 406 00:16:26,220 --> 00:16:29,059 y aquí ya directamente tengo como si tuviera 407 00:16:29,059 --> 00:16:31,100 de la clase con propiedades 408 00:16:31,100 --> 00:16:32,679 privadas y posibilidad de acceder. 409 00:16:33,220 --> 00:16:35,000 Pero claro, de hecho, se llama récord, 410 00:16:35,120 --> 00:16:36,559 bueno, digo yo que se llama récord, 411 00:16:37,519 --> 00:16:38,960 intuido que se llama récord, porque esto 412 00:16:38,960 --> 00:16:41,139 te vale solo para registrar 413 00:16:41,139 --> 00:16:41,960 lo que hay fuera, 414 00:16:42,960 --> 00:16:44,960 para quedarte con un registro, pero luego no vas 415 00:16:44,960 --> 00:16:46,500 a modificarlo, ni vas a hacer nada. 416 00:16:47,179 --> 00:16:49,000 Entonces tú luego consultas aquí para ver lo que 417 00:16:49,000 --> 00:16:50,919 hay. Es como una especie de grabación 418 00:16:50,919 --> 00:16:52,440 de lo que hay fuera, es una grabación. 419 00:16:53,879 --> 00:16:54,980 Pero no es 420 00:16:54,980 --> 00:16:56,860 el caso. Nosotros aquí tenemos que hacer 421 00:16:56,860 --> 00:16:59,039 las clases enteritas, porque 422 00:16:59,039 --> 00:17:01,899 bueno, aparte me estoy pasando de lista 423 00:17:01,899 --> 00:17:03,779 aquí yo no puedo poner anotaciones 424 00:17:03,779 --> 00:17:05,140 de XB, claro 425 00:17:05,140 --> 00:17:07,660 yo quiero esto para poner anotaciones 426 00:17:07,660 --> 00:17:09,619 de XB en las propiedades y cambiar de nombre 427 00:17:09,619 --> 00:17:11,759 aquí no sé si podría integrar 428 00:17:11,759 --> 00:17:12,720 anotaciones de XB 429 00:17:12,720 --> 00:17:15,940 no lo sé, es que no he probado 430 00:17:15,940 --> 00:17:16,940 a hacerlo en la vida 431 00:17:16,940 --> 00:17:18,319 vale, no lo sé 432 00:17:18,319 --> 00:17:21,460 si dejaría anotar con XM 433 00:17:21,460 --> 00:17:23,759 y el problema es aquí 434 00:17:23,759 --> 00:17:25,380 ponerlas aquí 435 00:17:25,380 --> 00:17:27,420 no lo sé, se podría probar pero bueno 436 00:17:27,420 --> 00:17:29,480 probadlo por curiosidad si queréis 437 00:17:29,480 --> 00:17:34,970 pues igual las de JaxB también, no lo sé 438 00:17:34,970 --> 00:17:36,509 pero como en nuestro caso 439 00:17:36,509 --> 00:17:38,789 ni siquiera podemos usar récord porque queremos 440 00:17:38,789 --> 00:17:40,190 hacer modificaciones 441 00:17:40,190 --> 00:17:42,849 insertar libros nuevos y todo eso 442 00:17:42,849 --> 00:17:44,289 pues no vamos a hacer 443 00:17:44,289 --> 00:17:45,970 un récord 444 00:17:45,970 --> 00:17:48,609 sino que vamos a hacer una clase 445 00:17:48,609 --> 00:17:55,759 una clase libro 446 00:17:55,759 --> 00:17:57,660 y la clase libro 447 00:17:57,660 --> 00:17:59,059 ahora ya sí que tiene 448 00:17:59,059 --> 00:18:02,059 tiene cinco cosas 449 00:18:02,059 --> 00:18:03,900 y de título 450 00:18:03,900 --> 00:18:05,359 autor, año y género 451 00:18:05,359 --> 00:18:31,700 Cinco cositas tiene, el ID como string, claro, ID, título, autor, género, el año, 452 00:18:31,700 --> 00:18:46,089 y ahora aquí sí que sí, los getter y los setters, de todo, vale. 453 00:18:46,869 --> 00:18:52,970 Ahora, las anotaciones, las anotaciones para indicar qué es cada cosa, 454 00:18:52,970 --> 00:18:55,150 Bueno, vamos a hacer primero biblioteca, que es el raíz. 455 00:18:55,950 --> 00:19:01,109 Las anotaciones, las puedo poner tanto en la propiedad como en 456 00:19:01,109 --> 00:19:01,549 el get. 457 00:19:02,150 --> 00:19:04,089 Lo que pasa es que si las ponemos en la propiedad, 458 00:19:04,650 --> 00:19:09,089 había que poner aquí lo de accessor type fill para que 459 00:19:09,089 --> 00:19:11,190 JacksBee sepa qué tiene que hacer a través de la propiedad. 460 00:19:12,250 --> 00:19:14,170 Yo lo pongo en el get y ya está. 461 00:19:15,329 --> 00:19:19,089 Entonces, bueno, vamos a poner las que afecten aquí al libro. 462 00:19:19,430 --> 00:19:22,730 El libro, por lo menos una de orden nos afecta. 463 00:19:22,970 --> 00:19:26,069 si queremos cambiar el nombre de alguna la cambiamos 464 00:19:26,069 --> 00:19:28,009 pero no, id hay que ponerlo 465 00:19:28,009 --> 00:19:30,349 atributo, veis como estáis más 466 00:19:30,349 --> 00:19:31,910 espabilados de lo que parece 467 00:19:31,910 --> 00:19:34,309 pero claro, antes de poner yo una propiedad 468 00:19:34,309 --> 00:19:36,109 ¿qué me falta? pues la dependencia 469 00:19:36,109 --> 00:19:36,690 de JaxB 470 00:19:36,690 --> 00:19:40,089 la dependencia la copio y pego 471 00:19:40,089 --> 00:19:42,390 de un proyecto que ya nos haya funcionado 472 00:19:42,390 --> 00:19:43,690 y que 473 00:19:43,690 --> 00:19:45,069 esté estable 474 00:19:45,069 --> 00:19:51,170 pues JaxB 475 00:19:51,170 --> 00:19:53,809 Aquí 476 00:19:53,809 --> 00:20:01,940 Ala, esa será 477 00:20:01,940 --> 00:20:04,740 Diego se arrepiente de haberse quedado 478 00:20:04,740 --> 00:20:05,740 Porque está muy aburrido 479 00:20:05,740 --> 00:20:06,980 Vale 480 00:20:06,980 --> 00:20:11,579 Ah 481 00:20:11,579 --> 00:20:14,559 Pues mira, no te puedo ayudar de eso 482 00:20:14,559 --> 00:20:18,240 Ejercicio, repaso 483 00:20:18,240 --> 00:20:19,619 Estamos aquí 484 00:20:19,619 --> 00:20:21,480 Ala 485 00:20:21,480 --> 00:20:24,279 Ponemos aquí esta cosa 486 00:20:24,279 --> 00:20:27,859 Ahora ya si que puedo poner anotaciones 487 00:20:27,859 --> 00:20:30,839 Sin que se queje 488 00:20:30,839 --> 00:20:33,339 Id es un atributo 489 00:20:33,339 --> 00:20:35,799 xml 490 00:20:35,799 --> 00:20:38,500 Atribute 491 00:20:38,500 --> 00:20:41,559 La he escrito bien 492 00:20:41,559 --> 00:20:45,359 O entonces porque no me deja importarla 493 00:20:48,599 --> 00:20:49,599 Así funciona 494 00:20:49,599 --> 00:21:00,509 A ver que he escrito mal aquí 495 00:21:00,509 --> 00:21:02,089 Pero no pasa nada 496 00:21:02,089 --> 00:21:03,910 Porque como tenemos nuestros proyectos 497 00:21:03,910 --> 00:21:08,009 La doble T es que 498 00:21:08,009 --> 00:21:08,890 No, no, no es así 499 00:21:08,890 --> 00:21:11,650 No, es que a mí con una doble 500 00:21:11,650 --> 00:21:14,630 A ver, pero como tenemos nuestros proyectos 501 00:21:14,630 --> 00:21:16,269 Para mirarlo, pues no pasa nada 502 00:21:16,269 --> 00:21:17,630 No hay ningún tipo de pavor 503 00:21:17,630 --> 00:21:19,509 Lo miramos 504 00:21:19,509 --> 00:21:21,890 Mira, tenemos hasta uno que era un libro y todo 505 00:21:21,890 --> 00:21:26,859 Pero espérate 506 00:21:26,859 --> 00:21:31,420 Espérate que no sé lo que estoy abriendo 507 00:21:31,420 --> 00:21:37,309 Vale, a ver 508 00:21:37,309 --> 00:21:43,819 ¿Pero qué hago yo aquí? 509 00:21:45,960 --> 00:21:47,599 Ah, es que estoy donde no es 510 00:21:47,599 --> 00:21:50,660 He hecho el paquete donde no es 511 00:21:50,660 --> 00:21:52,019 Pero bueno, lo podría... vale 512 00:21:52,019 --> 00:21:56,960 Lo has hecho en otro proyecto 513 00:21:56,960 --> 00:22:00,240 Vale, pero da igual 514 00:22:00,240 --> 00:22:10,599 Entonces, ahora, esta que estaba aquí, que sobra, la copiamos aquí. 515 00:22:12,559 --> 00:22:14,440 Y esto se quita. 516 00:22:15,279 --> 00:22:18,819 Este paquete entero se quita porque esto aquí no pintaba nada. 517 00:22:20,299 --> 00:22:22,160 Este paquete entero se quita. 518 00:22:28,880 --> 00:22:29,839 Y esto afuera. 519 00:22:31,599 --> 00:22:32,220 Ahora. 520 00:22:39,440 --> 00:22:40,440 Vale, libro. 521 00:22:42,400 --> 00:22:44,019 Ahora. Vale. 522 00:22:44,140 --> 00:22:45,339 Estaba en la clase que no era. 523 00:22:46,240 --> 00:22:46,900 Estaba en DOM. 524 00:22:48,759 --> 00:22:49,779 Ahí. Ya está. 525 00:22:50,839 --> 00:22:52,440 Si alguna cambiara de nombre 526 00:22:52,440 --> 00:22:54,059 lo pondríamos, pero no es el caso. 527 00:22:54,839 --> 00:22:56,359 El orden lo voy a tener que poner 528 00:22:56,359 --> 00:22:57,599 porque no está por orden alfabético. 529 00:22:58,000 --> 00:22:59,339 Entonces hay que poner un XML 530 00:22:59,339 --> 00:23:02,019 type. Ahí. 531 00:23:13,069 --> 00:23:13,509 Igual. 532 00:23:13,509 --> 00:23:15,650 Y esto era entre paréntesis y así. 533 00:23:16,230 --> 00:23:17,410 Primero queremos el ID. 534 00:23:18,190 --> 00:23:19,109 Luego queremos 535 00:23:19,109 --> 00:23:21,089 el título. 536 00:23:21,089 --> 00:23:26,779 Bueno, el id no lo queremos porque es un atributo 537 00:23:26,779 --> 00:23:27,440 Perdón 538 00:23:27,440 --> 00:23:29,319 Queremos primero el título 539 00:23:29,319 --> 00:23:31,440 Luego queremos el autor 540 00:23:31,440 --> 00:23:37,109 Luego queremos el año 541 00:23:37,109 --> 00:23:40,849 Y luego queremos el género 542 00:23:40,849 --> 00:23:42,430 Para que no ordene de manera alfabética 543 00:23:42,430 --> 00:23:43,849 Exacto 544 00:23:43,849 --> 00:23:46,569 Para que no ordene de manera alfabética 545 00:23:46,569 --> 00:23:49,230 Y el libro no hay más cosas que poner 546 00:23:49,230 --> 00:23:54,529 Y ahora nos falta la clase 547 00:23:54,529 --> 00:23:57,490 Biblioteca 548 00:23:57,490 --> 00:23:58,829 Un dopelota 549 00:23:58,829 --> 00:24:02,650 Lleva una lista de libros 550 00:24:02,650 --> 00:24:10,160 Depende de cómo esté el XML 551 00:24:10,160 --> 00:24:13,480 Perdón, biblioteca 552 00:24:13,480 --> 00:24:18,400 Vale, depende 553 00:24:18,400 --> 00:24:19,599 ¿Este tiene un envolvente? 554 00:24:19,779 --> 00:24:21,319 No, no tiene un envolvente 555 00:24:21,319 --> 00:24:22,359 Entonces no le hago un grupper 556 00:24:22,359 --> 00:24:24,299 ¿Veis? Esto no está metido dentro de libros 557 00:24:24,299 --> 00:24:25,799 Están ahí sueltos 558 00:24:25,799 --> 00:24:27,880 Entonces no hay un grupper aquí 559 00:24:27,880 --> 00:24:28,880 Entonces 560 00:24:28,880 --> 00:24:32,420 Un grupper habría 561 00:24:32,420 --> 00:24:33,960 Si esto 562 00:24:33,960 --> 00:24:36,700 Tú tienes aquí un nodo libros 563 00:24:36,700 --> 00:24:37,400 Ah, vale 564 00:24:37,400 --> 00:24:40,460 Que se cierra abajo 565 00:24:40,460 --> 00:24:44,819 Entonces sí, pondríamos un grupper 566 00:24:44,819 --> 00:24:46,400 Pero 567 00:24:46,400 --> 00:24:47,980 Lo hemos puesto sin grupper 568 00:24:47,980 --> 00:24:50,619 A propósito para 569 00:24:50,619 --> 00:24:54,920 Están todos ahí seguidos a mogollón 570 00:24:54,920 --> 00:24:57,140 Vale, pues entonces 571 00:24:57,140 --> 00:24:59,220 La propiedad está claro 572 00:24:59,220 --> 00:25:00,220 Es igualmente 573 00:25:00,220 --> 00:25:04,500 Es que eso es un nodo raíz 574 00:25:04,500 --> 00:25:05,380 No es un envolvente 575 00:25:05,380 --> 00:25:07,000 Es el XML root element 576 00:25:07,000 --> 00:25:09,660 Se lo podemos dejar puesto ya 577 00:25:09,660 --> 00:25:10,680 Y lo quitamos de encima 578 00:25:10,680 --> 00:25:16,309 Este es que ya es el raíz 579 00:25:16,309 --> 00:25:17,509 Luego tiene ya su función 580 00:25:17,509 --> 00:25:22,099 Y ahora 581 00:25:22,099 --> 00:25:24,039 Private 582 00:25:24,039 --> 00:25:25,140 Este 583 00:25:25,140 --> 00:25:28,460 Una lista de libros 584 00:25:28,460 --> 00:25:30,980 Ahora 585 00:25:30,980 --> 00:25:35,250 Venga 586 00:25:35,250 --> 00:25:48,930 ¿A este cómo lo llamo? 587 00:25:49,809 --> 00:25:50,750 Lo llamo libro 588 00:25:50,750 --> 00:25:54,029 Porque el nombre que aparezca aquí 589 00:25:54,029 --> 00:25:56,470 Es el nombre que aparece ahí 590 00:25:56,470 --> 00:25:59,730 Entonces lo llamo libro 591 00:25:59,730 --> 00:26:00,829 Para que aparezca libro 592 00:26:00,829 --> 00:26:01,690 Es que no me gusta 593 00:26:01,690 --> 00:26:03,069 Y lo quiero llamar libro 594 00:26:03,069 --> 00:26:05,069 Es porque me apaño mejor en la parte de Java 595 00:26:05,069 --> 00:26:07,650 Pues me tendría que hacer un xml element 596 00:26:07,650 --> 00:26:09,130 ¿Vale? 597 00:26:09,269 --> 00:26:12,029 Poner aquí arriba xml element name libro 598 00:26:12,029 --> 00:26:14,869 Para asegurarme de que este nodo 599 00:26:14,869 --> 00:26:18,509 Cuando aparezca se va a llamar libro, no se va a llamar libros como aparezca aquí. 600 00:26:19,730 --> 00:26:24,589 Pero si yo lo llamo así tal cual, este nodo cada vez que aparezca se llamará libro, 601 00:26:24,710 --> 00:26:27,009 que es justo como aparece aquí, cada vez que aparece se llama libro. 602 00:26:28,849 --> 00:26:31,769 Y este ya no tiene nada más que su get y su set. 603 00:26:41,009 --> 00:26:42,369 Pues esto ya se ha acabado. 604 00:26:43,329 --> 00:26:44,750 Ahora ya todo lo que falta es java. 605 00:26:45,609 --> 00:26:48,529 Es irnos aquí, hacer el método correspondiente. 606 00:26:48,529 --> 00:26:51,170 Y el método correspondiente es 607 00:26:51,170 --> 00:26:54,539 Insertar libro 608 00:26:54,539 --> 00:26:56,839 ¿Vale? 609 00:26:58,460 --> 00:26:59,539 Insertar libro 610 00:26:59,539 --> 00:27:03,539 Y aquí ya podemos hacernos 611 00:27:03,539 --> 00:27:16,240 Y aquí 612 00:27:16,240 --> 00:27:23,089 Vamos a aprovechar el modelo 613 00:27:23,089 --> 00:27:27,490 ¿Vale? Vamos a aprovechar el modelo 614 00:27:27,490 --> 00:27:29,789 Y en lugar de pasarle los datos 615 00:27:29,789 --> 00:27:35,859 ¿Vale? 616 00:27:35,900 --> 00:27:37,759 Podemos reutilizar este modelo JaxB 617 00:27:37,759 --> 00:27:39,660 Podemos reutilizar el modelo 618 00:27:39,660 --> 00:27:40,680 Para Java 619 00:27:40,680 --> 00:27:47,880 Entonces 620 00:27:47,880 --> 00:27:49,660 ¿qué tenemos que hacer aquí? 621 00:27:50,920 --> 00:27:52,240 leer los libros 622 00:27:52,240 --> 00:27:54,920 leer el fichero 623 00:27:54,920 --> 00:27:56,859 y añadir a la colección este 624 00:27:56,859 --> 00:27:58,259 pero cuidado con el id 625 00:27:58,259 --> 00:28:00,759 porque el id lo genera automáticamente 626 00:28:00,759 --> 00:28:03,319 luego aquí en este libro 627 00:28:03,319 --> 00:28:06,099 no me vendrá id 628 00:28:06,099 --> 00:28:08,059 porque es el dato que me dio el usuario 629 00:28:08,059 --> 00:28:09,160 que el usuario mete solamente 630 00:28:09,160 --> 00:28:10,819 título, autor, género y año 631 00:28:10,819 --> 00:28:13,500 entonces el id lo generaré yo automáticamente 632 00:28:13,500 --> 00:28:14,900 se lo pondré aquí a mano 633 00:28:14,900 --> 00:28:16,259 antes de añadirlo al fichero 634 00:28:16,259 --> 00:28:26,289 cuando lo leas, sí, pero es que ahora 635 00:28:26,289 --> 00:28:28,549 esto es uno nuevo, pues el nuevo 636 00:28:28,549 --> 00:28:30,529 los datos que vienen de fuera son 637 00:28:30,529 --> 00:28:32,589 solo autor, título, no, el usuario 638 00:28:32,589 --> 00:28:34,430 no me da ID, con lo cual este libro 639 00:28:34,430 --> 00:28:36,269 su ID está sin setear 640 00:28:36,269 --> 00:28:38,509 lo tengo que fijar yo 641 00:28:38,509 --> 00:28:40,250 leyendo los que hay de antes 642 00:28:40,250 --> 00:28:41,549 y generando uno único 643 00:28:41,549 --> 00:28:43,690 ¿vale? pues entonces 644 00:28:43,690 --> 00:28:45,869 esto 645 00:28:45,869 --> 00:28:48,549 Aquí, copiar el método 646 00:28:48,549 --> 00:28:50,109 De leer de JaxB 647 00:28:50,109 --> 00:28:52,529 Bueno, vamos a un proyecto de JaxB 648 00:28:52,529 --> 00:28:58,180 Y aquí lo tendremos 649 00:28:58,180 --> 00:29:02,940 En JaxB 650 00:29:02,940 --> 00:29:04,440 Tendremos un método para 651 00:29:04,440 --> 00:29:05,819 Escribir el XML 652 00:29:05,819 --> 00:29:13,109 ¿Eh? 653 00:29:15,190 --> 00:29:16,250 Sí, pero no tengo 654 00:29:16,250 --> 00:29:17,690 Uno que sea escribir porque lo tenía 655 00:29:17,690 --> 00:29:20,109 Lo tengo aquí pegado, entonces lo tengo que extraer 656 00:29:20,109 --> 00:29:22,069 Este es el de escribir, hacer el 657 00:29:22,069 --> 00:29:24,049 Marshall, entonces este no lo tenía 658 00:29:24,049 --> 00:29:26,150 Sacado a un método aparte, lo tenía directamente 659 00:29:26,150 --> 00:29:27,910 aquí metido, entonces 660 00:29:27,910 --> 00:29:30,210 este voy a hacer ahora ya así que un método 661 00:29:30,210 --> 00:29:31,009 que sea escribir 662 00:29:31,009 --> 00:29:33,450 en mi nuevo código aquí 663 00:29:33,450 --> 00:29:35,670 vamos a hacernos aquí 664 00:29:35,670 --> 00:29:41,049 public static 665 00:29:41,049 --> 00:29:41,950 void 666 00:29:41,950 --> 00:29:45,390 escribir xml 667 00:29:45,390 --> 00:29:46,549 yaxb 668 00:29:46,549 --> 00:29:48,650 y 669 00:29:48,650 --> 00:29:50,829 ¿qué le voy a pasar? le voy a pasar 670 00:29:50,829 --> 00:29:52,650 el objeto biblioteca 671 00:29:52,650 --> 00:29:55,980 este es el que le voy a pasar 672 00:29:55,980 --> 00:30:00,039 y ¿dónde? pues al fichero 673 00:30:00,039 --> 00:30:08,500 lo que sea. Y aquí ya sí que voy a pegar el código del Marshall, que era este. Lo 674 00:30:08,500 --> 00:30:15,700 que pasa es que aquí lo cambio por biblioteca, lógicamente. Biblioteca. Importo biblioteca. 675 00:30:19,289 --> 00:30:26,690 Y ¿dónde? Pues donde esté trabajando. Vamos a estar trabajando en el proyecto directamente. 676 00:30:26,690 --> 00:30:28,670 me dio a olvidar de carpetas en el raíz 677 00:30:28,670 --> 00:30:30,309 o sea 678 00:30:30,309 --> 00:30:32,809 aquí es el fichero tal cual 679 00:30:32,809 --> 00:30:36,420 pues paz 680 00:30:36,420 --> 00:30:37,420 punto 681 00:30:37,420 --> 00:30:40,990 perdón 682 00:30:40,990 --> 00:30:43,970 el que hay subido 683 00:30:43,970 --> 00:30:46,309 lo que pasa es que está dentro del método 684 00:30:46,309 --> 00:30:47,890 sí, sí, sí 685 00:30:47,890 --> 00:31:04,599 y ahora aquí me calca 686 00:31:04,599 --> 00:31:06,359 es que no lo separé 687 00:31:06,359 --> 00:31:10,720 Y ahora 688 00:31:10,720 --> 00:31:12,160 Aquí se le daba 689 00:31:12,160 --> 00:31:13,359 File 690 00:31:13,359 --> 00:31:16,440 Uy, qué tontería, si ya lo tengo el file 691 00:31:16,440 --> 00:31:17,000 ¿Qué es este? 692 00:31:19,079 --> 00:31:19,519 Ahora 693 00:31:19,519 --> 00:31:24,819 Vale, pues ya tengo el de escribir xml 694 00:31:24,819 --> 00:31:27,180 Que era hacer el contexto, crear el marshaler 695 00:31:27,180 --> 00:31:29,759 Y mandar mi objeto biblioteca 696 00:31:29,759 --> 00:31:31,480 Al fichero file que le estoy pasando 697 00:31:31,480 --> 00:31:32,859 Y ya está 698 00:31:32,859 --> 00:31:36,380 Ya tengo escribir xml 699 00:31:36,380 --> 00:31:39,579 Y, pero perdonad, estaba buscando leer 700 00:31:39,579 --> 00:31:41,400 Claro, cuando me he dicho leer es que estaba buscando leer 701 00:31:41,400 --> 00:31:43,759 Claro, ya lo tenía 702 00:31:43,759 --> 00:31:46,000 Voy a copiar leer, Polines 703 00:31:46,000 --> 00:31:48,059 Era el que estaba buscando, parezco tonta 704 00:31:48,059 --> 00:31:48,900 Vale, leer 705 00:31:48,900 --> 00:31:51,920 Está aquí, que era efectivamente 706 00:31:51,920 --> 00:31:53,039 El que estaba buscando 707 00:31:53,039 --> 00:31:55,839 Sí, que sí, que me he liado 708 00:31:55,839 --> 00:31:57,519 Por eso cuando me ha dicho, él tienes ahí leer 709 00:31:57,519 --> 00:31:59,519 He dicho, pero quiero escribir, pues no, no quería escribir 710 00:31:59,519 --> 00:32:00,039 Quería leer 711 00:32:00,039 --> 00:32:01,619 Vale, es que me he liado 712 00:32:01,619 --> 00:32:04,339 Vale, entonces 713 00:32:04,339 --> 00:32:11,380 Ahora, leer xml 714 00:32:11,380 --> 00:32:12,519 De JaxB 715 00:32:12,519 --> 00:32:17,339 Mi fichero y ahora que lo que me va a dar 716 00:32:17,339 --> 00:32:18,339 Es una biblioteca 717 00:32:18,339 --> 00:32:20,140 Biblioteca 718 00:32:20,140 --> 00:32:21,880 Vale 719 00:32:21,880 --> 00:32:25,259 Dime 720 00:32:25,259 --> 00:32:29,880 Pero a ver, se supone 721 00:32:29,880 --> 00:32:32,240 Que no me estáis copiando 722 00:32:32,240 --> 00:32:34,019 Que lo estáis haciendo en paralelo 723 00:32:34,019 --> 00:32:35,599 Como ya pero 724 00:32:35,599 --> 00:32:38,740 Vale, vale 725 00:32:38,740 --> 00:32:40,059 Bueno, pues ahora revisamos 726 00:32:40,059 --> 00:32:40,380 Pero 727 00:32:40,380 --> 00:32:52,619 Vale, pues he copiado 728 00:32:52,619 --> 00:32:54,339 el leer xml del proyecto 729 00:32:54,339 --> 00:32:56,279 cambiando recetario 730 00:32:56,279 --> 00:32:58,140 que era el ejemplo que teníamos por biblioteca 731 00:32:58,140 --> 00:33:00,380 y pasándole el fichero 732 00:33:00,380 --> 00:33:02,119 que le hemos dado como parámetro, ya está 733 00:33:02,119 --> 00:33:04,640 he cambiado solamente eso, recetario por biblioteca 734 00:33:04,640 --> 00:33:06,359 y el fichero 735 00:33:06,359 --> 00:33:08,460 como se lo estoy pasando en path, pues lo convierto aquí a 736 00:33:08,460 --> 00:33:10,059 file y ya está 737 00:33:10,059 --> 00:33:11,579 este es el de leer xml 738 00:33:11,579 --> 00:33:15,880 y ahora el de... vale 739 00:33:15,880 --> 00:33:18,559 ¿qué? ¿qué pasa? 740 00:33:20,359 --> 00:33:21,240 ¿qué no me pasa? 741 00:33:24,319 --> 00:33:51,029 Bueno, pues ya está 742 00:33:51,029 --> 00:33:54,009 Ahora ya nos vamos aquí a insertar libro 743 00:33:54,009 --> 00:33:55,950 Leemos el fichero 744 00:33:55,950 --> 00:34:02,859 Leer 745 00:34:02,859 --> 00:34:04,380 xml 746 00:34:04,380 --> 00:34:07,759 Sí, perdón 747 00:34:07,759 --> 00:34:13,760 He visto libro arriba y me he liado 748 00:34:13,760 --> 00:34:15,280 Biblioteca 749 00:34:15,280 --> 00:34:16,500 Ler xml 750 00:34:16,500 --> 00:34:22,469 El fichero 751 00:34:22,469 --> 00:34:24,170 Insertar libro 752 00:34:24,170 --> 00:34:25,949 Y no le he pasado el fichero 753 00:34:25,949 --> 00:34:28,769 No le he pasado el fichero 754 00:34:28,769 --> 00:34:29,789 Con el que estamos trabajando 755 00:34:29,789 --> 00:34:32,349 Habría sido más cómodo ponerlo en un properties 756 00:34:32,349 --> 00:34:34,230 O algo así para no arrastrarlo todo el rato 757 00:34:34,230 --> 00:34:34,750 Pero bueno 758 00:34:34,750 --> 00:34:49,400 Venga, leer XML, JAXB, fichero. 759 00:34:49,900 --> 00:34:50,260 Ya está. 760 00:34:53,440 --> 00:34:57,139 Ahora, mi único problema es... 761 00:35:01,139 --> 00:35:03,280 Mi único problema sería... 762 00:35:03,280 --> 00:35:07,880 Mi único problema sería... 763 00:35:07,880 --> 00:35:17,900 A esta colección de libros, en realidad, añadirle el libro nuevo y luego ya escribir el XML. 764 00:35:18,900 --> 00:35:19,619 ¿Vale? 765 00:35:28,659 --> 00:35:36,940 Vale, y aquí yo ya, librería y fichero. 766 00:35:36,940 --> 00:35:44,159 vale, pero que ocurre 767 00:35:44,159 --> 00:35:45,619 que no puedo hacerlo así sin más 768 00:35:45,619 --> 00:35:48,260 porque antes de añadir el libro 769 00:35:48,260 --> 00:35:49,519 tengo que fijarle un ID 770 00:35:49,519 --> 00:35:51,699 que sea único, que no esté ya 771 00:35:51,699 --> 00:35:53,800 entonces antes de hacer esto 772 00:35:53,800 --> 00:35:56,619 tenemos que sacar los IDs de la colección 773 00:35:56,619 --> 00:35:58,500 para generar uno único 774 00:35:58,500 --> 00:36:00,199 entonces, ¿cuál sería 775 00:36:00,199 --> 00:36:01,860 el argumento más fácil? vamos a sacar 776 00:36:01,860 --> 00:36:04,320 el máximo de todos los IDs 777 00:36:04,320 --> 00:36:06,400 que están en esta colección 778 00:36:06,400 --> 00:36:09,219 y le sumo uno más para setearlo 779 00:36:09,219 --> 00:36:10,960 y ya está, entonces, pues eso 780 00:36:10,960 --> 00:36:16,300 ¿Perdón? 781 00:36:18,340 --> 00:36:19,340 ¿Bajar a dónde? ¿A cuál? 782 00:36:28,039 --> 00:36:28,519 ¿Vale? 783 00:36:30,179 --> 00:36:30,659 Vale 784 00:36:30,659 --> 00:36:36,190 Bueno, pues ala 785 00:36:36,190 --> 00:36:38,170 entonces, ahora, antes de hacer esto 786 00:36:38,170 --> 00:36:41,630 tenemos que hacerle un set al libro del ID 787 00:36:41,630 --> 00:36:43,449 y el ID que sea 788 00:36:43,449 --> 00:36:45,409 una unidad más del máximo 789 00:36:45,409 --> 00:36:46,389 de los que ya están 790 00:36:46,389 --> 00:36:48,730 pues venga, ¿cómo me hacéis eso? 791 00:36:50,570 --> 00:36:51,449 el máximo 792 00:36:51,449 --> 00:36:53,389 de los IDs, pues eso con streams 793 00:36:53,389 --> 00:36:55,309 lo hacéis a toda velocidad, ¿verdad que sí? 794 00:36:57,480 --> 00:36:58,559 estos son los libros 795 00:36:58,559 --> 00:37:00,639 de los libros quiero sacar 796 00:37:00,639 --> 00:37:02,400 el máximo de los IDs que tienen 797 00:37:02,400 --> 00:37:05,099 nos ponemos todos en fila 798 00:37:05,099 --> 00:37:07,019 hasta ahí hemos llegado 799 00:37:07,019 --> 00:37:07,940 todos en fila 800 00:37:07,940 --> 00:37:10,519 De cada libro me quedo con su ID 801 00:37:10,519 --> 00:37:12,699 Ahí que funciona habrá que hacer 802 00:37:12,699 --> 00:37:15,219 No, un filter no 803 00:37:15,219 --> 00:37:17,460 No hace falta 804 00:37:17,460 --> 00:37:19,340 Un map 805 00:37:19,340 --> 00:37:21,559 De cada fila de libros 806 00:37:21,559 --> 00:37:22,500 Me quedo con su ID 807 00:37:22,500 --> 00:37:25,119 Y ahora de esa fila de IDs 808 00:37:25,119 --> 00:37:26,420 Le hago la función máximo 809 00:37:26,420 --> 00:37:29,340 ¿Vale? Pues que de cada fila 810 00:37:29,340 --> 00:37:30,159 De libros 811 00:37:30,159 --> 00:37:33,199 Map es cuando tienes una lista dentro 812 00:37:33,199 --> 00:37:35,179 Flat map es cuando tienes una lista dentro de otra 813 00:37:35,179 --> 00:37:37,119 Claro, pero aquí entonces 814 00:37:37,119 --> 00:37:39,019 si no. Pues de cada 815 00:37:39,019 --> 00:37:40,840 libro de estos, me 816 00:37:40,840 --> 00:37:42,019 quedo con su 817 00:37:42,019 --> 00:37:44,079 ID. 818 00:37:47,099 --> 00:37:49,000 Pero con su ID a paloseco, no. 819 00:37:49,119 --> 00:37:50,860 Lo tengo que convertir a entero, porque quiero hacer 820 00:37:50,860 --> 00:37:52,940 el máximo. Entonces, 821 00:37:53,099 --> 00:37:53,800 ¿qué haremos aquí? 822 00:37:54,900 --> 00:37:56,840 Casting. ¿Cómo que casting? 823 00:37:58,300 --> 00:37:59,239 ¿Cómo que casting? 824 00:37:59,300 --> 00:38:00,659 Estas son las cosas que son de cero. 825 00:38:00,659 --> 00:38:02,519 Pero un íntegro para seguir, por Dios 826 00:38:02,519 --> 00:38:03,039 santo. 827 00:38:06,139 --> 00:38:07,579 Un casting, dice. 828 00:38:10,769 --> 00:38:14,989 Ah, sí 829 00:38:14,989 --> 00:38:16,590 Vale 830 00:38:16,590 --> 00:38:23,210 Ahora, tengo ya una filita 831 00:38:23,210 --> 00:38:25,170 De IDES 832 00:38:25,170 --> 00:38:25,809 ¿Vale? 833 00:38:34,929 --> 00:38:36,369 Vale, y ahora 834 00:38:36,369 --> 00:38:40,369 No me ofrece el máximo 835 00:38:40,369 --> 00:38:42,130 Porque no es una 836 00:38:42,130 --> 00:38:44,269 Si le pongo map to int 837 00:38:44,269 --> 00:38:46,030 Como son enteros 838 00:38:46,030 --> 00:38:48,369 Yo creo que ya me ofrecerá la función máximo 839 00:38:48,369 --> 00:38:49,550 Entonces map to int 840 00:38:49,550 --> 00:38:53,650 No sé dónde estaba la mayúscula 841 00:38:53,650 --> 00:38:57,599 Map to int 842 00:38:57,599 --> 00:38:58,380 Aquí está 843 00:38:58,380 --> 00:39:00,199 Con tu int 844 00:39:00,199 --> 00:39:00,659 Vale 845 00:39:00,659 --> 00:39:06,980 Map to int 846 00:39:06,980 --> 00:39:09,519 Vale, ya tengo la filita de enteros 847 00:39:09,519 --> 00:39:12,139 Y ahora esta filita de enteros 848 00:39:12,139 --> 00:39:15,119 Me ofrece ya el máximo 849 00:39:15,119 --> 00:39:16,619 De toda esta fila 850 00:39:16,619 --> 00:39:19,219 Y ahora 851 00:39:19,219 --> 00:39:22,940 De esta como es tan opcional 852 00:39:22,940 --> 00:39:25,159 Pues la saco 853 00:39:25,159 --> 00:39:26,239 Así a lo bestia 854 00:39:26,239 --> 00:39:28,880 Venga, sácamelo como entero 855 00:39:28,880 --> 00:39:32,900 Pues si a todo esto le sumo uno 856 00:39:32,900 --> 00:39:34,820 Y se lo seteo 857 00:39:34,820 --> 00:39:36,179 Al libro, ya está 858 00:39:36,179 --> 00:39:39,159 A todo esto le sumo uno 859 00:39:39,159 --> 00:39:41,099 Y todo esto se lo seteo 860 00:39:41,099 --> 00:39:41,539 Al libro 861 00:39:41,539 --> 00:39:44,079 Libro.set 862 00:39:44,079 --> 00:39:45,320 id 863 00:39:45,320 --> 00:39:50,500 pero lo tengo que convertir a íntegro otra vez 864 00:39:50,500 --> 00:39:53,659 set id 865 00:39:53,659 --> 00:39:58,579 y ahora 866 00:39:58,579 --> 00:40:00,840 es que ya he perdido los paréntesis 867 00:40:00,840 --> 00:40:02,480 pero 868 00:40:02,480 --> 00:40:04,559 y ahora esto 869 00:40:04,559 --> 00:40:08,340 para que me lo convierta 870 00:40:08,340 --> 00:40:10,039 a string, porque el id es en string 871 00:40:10,039 --> 00:40:11,539 bueno, he perdido los paréntesis 872 00:40:11,539 --> 00:40:13,980 me falta uno, ¿de dónde? 873 00:40:14,079 --> 00:40:16,820 Ah, me falta uno después de aquí 874 00:40:16,820 --> 00:40:18,920 Ya está 875 00:40:18,920 --> 00:40:26,159 Ya le he puesto 876 00:40:26,159 --> 00:40:27,579 Un ID único 877 00:40:27,579 --> 00:40:28,679 Tal cual 878 00:40:28,679 --> 00:40:33,289 ¿Eh? 879 00:40:35,619 --> 00:40:36,059 ¿Cómo? 880 00:40:39,409 --> 00:40:40,670 Cuando te barren todos los libros 881 00:40:40,670 --> 00:40:43,030 Ah, bueno, bueno 882 00:40:43,030 --> 00:40:43,849 Ya, ya, ya, vale 883 00:40:43,849 --> 00:40:46,530 No estamos en el examen 884 00:40:46,530 --> 00:40:48,849 En el examen no tenemos esas consideraciones 885 00:40:48,849 --> 00:40:49,849 ¿Vale? 886 00:40:50,389 --> 00:40:52,050 Bueno, tenemos ya libros 887 00:40:52,050 --> 00:40:54,510 Y ya está 888 00:40:54,510 --> 00:40:56,769 y me quedo 889 00:40:56,769 --> 00:40:58,050 con el máximo 890 00:40:58,050 --> 00:40:58,650 le sumo uno 891 00:40:58,650 --> 00:41:04,289 claro, si la colección 892 00:41:04,289 --> 00:41:06,030 es diferente de, o sea, realmente 893 00:41:06,030 --> 00:41:07,849 esto 894 00:41:07,849 --> 00:41:11,940 lo que pasa es que podríamos 895 00:41:11,940 --> 00:41:14,179 hacer algo más infinito, el set ID podríamos ponerle aquí 896 00:41:14,179 --> 00:41:16,360 un ternario, que es 897 00:41:16,360 --> 00:41:20,199 live.getlibros 898 00:41:20,199 --> 00:41:22,480 diferente de null o live.getlibros 899 00:41:22,480 --> 00:41:23,840 .size 900 00:41:23,840 --> 00:41:24,639 y 901 00:41:24,639 --> 00:41:27,519 Mayor que cero 902 00:41:27,519 --> 00:41:28,659 Esto 903 00:41:28,659 --> 00:41:31,340 En el otro estremo 904 00:41:31,340 --> 00:41:32,639 Uno 905 00:41:32,639 --> 00:41:33,440 ¿Vale? 906 00:41:38,239 --> 00:41:40,639 Es decir, si nos venimos arriba 907 00:41:40,639 --> 00:41:41,659 En plan fanfarrones 908 00:41:41,659 --> 00:41:43,219 Y ponemos 909 00:41:43,219 --> 00:41:45,559 Lit.get libro 910 00:41:45,559 --> 00:41:48,440 Es diferente 911 00:41:48,440 --> 00:41:50,500 De null 912 00:41:50,500 --> 00:41:52,920 Y además de ser 913 00:41:52,920 --> 00:41:54,280 Diferente de null 914 00:41:54,280 --> 00:41:56,599 joder 915 00:41:56,599 --> 00:41:59,340 y además de ser diferente de null 916 00:41:59,340 --> 00:42:01,920 list.getLibro 917 00:42:01,920 --> 00:42:03,679 . 918 00:42:03,679 --> 00:42:05,699 size 919 00:42:05,699 --> 00:42:07,820 es mayor que 0 920 00:42:07,820 --> 00:42:11,460 pues en ese caso me plantas eso al id 921 00:42:11,460 --> 00:42:13,019 y si no 922 00:42:13,019 --> 00:42:15,139 me plantas 923 00:42:15,139 --> 00:42:15,860 1 924 00:42:15,860 --> 00:42:23,840 y aquí me falta un paréntesis y aquí me sobra 925 00:42:23,840 --> 00:42:27,449 ala 926 00:42:27,449 --> 00:42:28,889 como una reina 927 00:42:28,889 --> 00:42:33,690 déjalo 928 00:42:33,690 --> 00:42:36,269 bueno, venga, ¿qué vas a decir? 929 00:42:40,079 --> 00:42:41,139 ah, tienes toda la razón 930 00:42:41,139 --> 00:42:42,099 vale, vale, sí 931 00:42:42,099 --> 00:42:43,760 ya no sabéis hacer esto tan bonito 932 00:42:43,760 --> 00:42:44,739 vale, vale 933 00:42:44,739 --> 00:42:50,320 que cuando sacas el int 934 00:42:50,320 --> 00:42:52,219 este le pones y si no lo hay 935 00:42:52,219 --> 00:42:53,820 en el sacar del optional 936 00:42:53,820 --> 00:42:54,840 pues me da cero 937 00:42:54,840 --> 00:42:58,059 pero bueno 938 00:42:58,059 --> 00:43:00,880 así no nos olvidamos 939 00:43:00,880 --> 00:43:01,639 de alternario 940 00:43:01,639 --> 00:43:05,039 claro, lo he sacado 941 00:43:05,039 --> 00:43:06,920 de un opcional, he asumido que existe 942 00:43:06,920 --> 00:43:08,519 pero puede no existir 943 00:43:08,519 --> 00:43:09,940 puede que en el opcional no haya nada 944 00:43:09,940 --> 00:43:11,440 ¿vale? 945 00:43:14,619 --> 00:43:15,739 accediendo a él 946 00:43:15,739 --> 00:43:20,199 bueno, venga 947 00:43:20,199 --> 00:43:22,880 esto era un poco por a... 948 00:43:23,400 --> 00:43:25,179 en el examen 949 00:43:25,179 --> 00:43:27,139 en realidad, a menos que yo lo especifique 950 00:43:27,139 --> 00:43:28,559 si no me tenéis en cuenta 951 00:43:28,559 --> 00:43:30,219 si no hay libros o lo que sea, da igual 952 00:43:30,219 --> 00:43:41,570 Bueno, pues esta funcionalidad ya está 953 00:43:41,570 --> 00:43:43,769 Pero a mí me está... 954 00:43:43,769 --> 00:43:44,389 Esta ya está 955 00:43:44,389 --> 00:43:48,110 Y lo tengo bien 956 00:43:48,110 --> 00:43:53,489 ¿Cómo es posible que es que somos 957 00:43:53,489 --> 00:43:54,269 Haceros un poco? 958 00:43:55,449 --> 00:43:57,269 En plan, ¿en qué modo? 959 00:43:58,070 --> 00:43:59,110 Pero vamos con él 960 00:43:59,110 --> 00:44:06,070 Pero vamos a ver 961 00:44:06,070 --> 00:44:07,829 Si realmente tú quieres hacer el máximo 962 00:44:07,829 --> 00:44:08,869 De una serie de números 963 00:44:08,869 --> 00:44:10,210 No te es mucho más fácil 964 00:44:10,210 --> 00:44:12,849 O sea, es que hacer el máximo ha sido 965 00:44:12,849 --> 00:44:14,349 El string y el map y el max 966 00:44:14,349 --> 00:44:14,989 Ha sido esto 967 00:44:14,989 --> 00:44:18,570 Esto realmente sí es más fácil que un for 968 00:44:18,570 --> 00:44:19,849 Que te saca el máximo 969 00:44:19,849 --> 00:44:21,429 Así que lo es 970 00:44:21,429 --> 00:44:24,510 Porque un for que te saca el máximo 971 00:44:24,510 --> 00:44:25,869 Pues tienes tú que hacer el algoritmo 972 00:44:25,869 --> 00:44:28,110 Un for e ir sustituyendo el máximo 973 00:44:28,110 --> 00:44:29,869 Entonces esto ya es más fácil 974 00:44:29,869 --> 00:44:37,010 Claro, porque este es el máximo 975 00:44:37,010 --> 00:44:38,010 De los IDs que ya hay 976 00:44:38,010 --> 00:44:39,789 Entonces yo quiero crear uno nuevo y único 977 00:44:39,789 --> 00:44:48,909 Pues esta funcionalidad ya estaría 978 00:44:48,909 --> 00:44:56,050 Esto fuera 979 00:45:02,139 --> 00:45:09,210 Vale, pues venga, siguiente 980 00:45:09,210 --> 00:45:11,909 Un JSON 981 00:45:11,909 --> 00:45:14,829 Pues es que esto es en el Jackson 982 00:45:14,829 --> 00:45:16,610 Mandarle el valor y ya está 983 00:45:16,610 --> 00:45:20,269 Pues venga, generamos el JSON 984 00:45:20,269 --> 00:45:24,130 Dependencia de JSON 985 00:45:24,130 --> 00:45:25,650 Pues vamos a buscarla 986 00:45:25,650 --> 00:45:27,849 En otro fichero que ya esté 987 00:45:27,849 --> 00:45:35,130 La dependencia de Jackson 988 00:45:35,130 --> 00:45:36,710 Esto 989 00:45:36,710 --> 00:45:41,750 La copiamos 990 00:45:41,750 --> 00:46:03,969 Vale 991 00:46:03,969 --> 00:46:06,289 Ya está 992 00:46:08,389 --> 00:46:09,429 Pues venga. 993 00:46:09,889 --> 00:46:11,150 Son dos dependencias, ¿no? 994 00:46:11,789 --> 00:46:13,230 Pero la segunda era 995 00:46:13,230 --> 00:46:15,969 cuando usamos lo de pasar directamente 996 00:46:15,969 --> 00:46:17,829 de XML a... 997 00:46:17,829 --> 00:46:19,849 La pusimos. O sea, el Jackson 998 00:46:19,849 --> 00:46:21,809 básico era una. La otra 999 00:46:21,809 --> 00:46:23,130 era otra dependencia. 1000 00:46:25,630 --> 00:46:26,670 Se me ha escapado una. 1001 00:46:26,670 --> 00:46:29,070 Aquí tengo solo las que... 1002 00:46:29,070 --> 00:46:29,510 A ver. 1003 00:46:29,630 --> 00:46:31,289 En mi U de uno picharro es Jason. 1004 00:46:31,929 --> 00:46:33,789 A ver. 1005 00:46:34,809 --> 00:46:35,710 Joder, ¿dónde está? 1006 00:46:37,429 --> 00:46:38,030 Acá. 1007 00:46:38,389 --> 00:46:41,349 jason dotavine y jackson corey solo 1008 00:46:41,349 --> 00:46:43,710 a donde estoy yo, jolines 1009 00:46:43,710 --> 00:46:47,710 jason 1010 00:46:47,710 --> 00:46:48,809 estoy 1011 00:46:48,809 --> 00:46:50,630 jason aquí 1012 00:46:50,630 --> 00:46:53,510 vale, tenemos esta 1013 00:46:53,510 --> 00:46:55,690 yo tengo esta solamente 1014 00:46:55,690 --> 00:46:56,510 yo solo tengo uno 1015 00:46:56,510 --> 00:46:58,909 yo tengo dotavine y corey 1016 00:46:58,909 --> 00:47:02,480 dotavine y corey 1017 00:47:02,480 --> 00:47:07,719 no lo sé 1018 00:47:07,719 --> 00:47:08,340 a ver 1019 00:47:08,340 --> 00:47:09,920 bueno, lo tengo solo con dotavine 1020 00:47:09,920 --> 00:47:20,679 Bueno 1021 00:47:20,679 --> 00:47:22,059 Voy a poner esa 1022 00:47:22,059 --> 00:47:22,679 Vale 1023 00:47:22,679 --> 00:47:25,840 Vale 1024 00:47:39,920 --> 00:47:45,039 Vale, pues a ver 1025 00:47:45,039 --> 00:47:46,679 El método que nos falta 1026 00:47:46,679 --> 00:47:50,800 Guardar en fichero json 1027 00:47:50,800 --> 00:47:51,300 Era, ¿no? 1028 00:47:52,940 --> 00:47:57,820 Public static 1029 00:47:57,820 --> 00:48:02,099 Voy a cambiarle el false 1030 00:48:02,099 --> 00:48:04,579 A true aquí 1031 00:48:04,579 --> 00:48:08,119 Vale, escribir public static 1032 00:48:08,119 --> 00:48:11,880 Voy a escribir 1033 00:48:11,880 --> 00:48:13,800 Jason 1034 00:48:13,800 --> 00:48:17,550 Escribir Jason 1035 00:48:17,550 --> 00:48:19,309 Entonces, ¿qué? 1036 00:48:19,630 --> 00:48:21,110 Pues vamos a escribir de Jason 1037 00:48:21,110 --> 00:48:23,289 Aquí, este, el biblioteca 1038 00:48:23,289 --> 00:48:26,090 ¿Y en qué fichero? Pues en el que me digan 1039 00:48:26,090 --> 00:48:33,260 Escribir Jason 1040 00:48:33,260 --> 00:48:38,170 Bueno, pues aquí el mapper 1041 00:48:38,170 --> 00:48:39,349 Es el que hacía de todo 1042 00:48:39,349 --> 00:48:40,369 Pues tiro de él 1043 00:48:40,369 --> 00:48:44,139 A ver qué me ofrece 1044 00:48:44,139 --> 00:48:54,230 Vamos a tirar de él 1045 00:48:54,230 --> 00:49:06,659 Vale, pues el mapper 1046 00:49:06,659 --> 00:49:08,980 Podemos mirarlo en el proyecto 1047 00:49:08,980 --> 00:49:13,360 Tiene un método 1048 00:49:13,360 --> 00:49:15,059 Ya directamente para escribir 1049 00:49:15,059 --> 00:49:26,960 Sacamos el writer 1050 00:49:26,960 --> 00:49:28,579 Y luego era write value 1051 00:49:28,579 --> 00:49:30,639 O ya directamente write value 1052 00:49:30,639 --> 00:49:31,440 Vale 1053 00:49:31,440 --> 00:49:33,579 Pues vamos a escribir 1054 00:49:33,579 --> 00:49:36,860 En fichero 1055 00:49:36,860 --> 00:49:40,469 Punto 1056 00:49:40,469 --> 00:49:42,550 Tu file 1057 00:49:42,550 --> 00:49:46,579 Y vamos a escribir 1058 00:49:46,579 --> 00:49:48,519 Vamos a escribir 1059 00:49:48,519 --> 00:49:49,099 este 1060 00:49:49,099 --> 00:49:54,559 si, este era para que 1061 00:49:54,559 --> 00:49:56,199 fuera bonito, ¿verdad? 1062 00:49:56,440 --> 00:49:58,679 claro, pues vamos a usar 1063 00:49:58,679 --> 00:50:00,079 el que fuera bonito 1064 00:50:00,079 --> 00:50:02,039 write 1065 00:50:02,039 --> 00:50:04,320 with default 1066 00:50:04,320 --> 00:50:09,969 este, entonces 1067 00:50:09,969 --> 00:50:11,570 este te sacaba 1068 00:50:11,570 --> 00:50:14,449 vale, te sacaba 1069 00:50:14,449 --> 00:50:16,269 el writer, bonito 1070 00:50:16,269 --> 00:50:18,590 y ahora 1071 00:50:18,590 --> 00:50:20,510 escribíamos el fichero 1072 00:50:20,510 --> 00:50:23,530 Y el tema es que lo puedes hacer sin hacerlo bonito 1073 00:50:23,530 --> 00:50:25,230 porque hay que decidir 1074 00:50:25,230 --> 00:50:26,710 que tenías que hacerlo feo también. 1075 00:50:28,170 --> 00:50:29,269 Que crea por defecto. 1076 00:50:29,650 --> 00:50:31,449 Sí, hay informáticos que se la 1077 00:50:31,449 --> 00:50:33,010 refanficlan y se la ponen feo. 1078 00:50:33,570 --> 00:50:35,389 Entonces te dan la opción de yo lo quiero 1079 00:50:35,389 --> 00:50:36,050 feo. 1080 00:50:37,190 --> 00:50:39,369 El quererlo feo debería ser la opción 1081 00:50:39,369 --> 00:50:40,389 mala. 1082 00:50:41,389 --> 00:50:45,329 A ver, lo que pasa es que los JSON 1083 00:50:45,329 --> 00:50:47,269 esencialmente son para máquinas. 1084 00:50:47,510 --> 00:50:49,449 Y las máquinas, cuanto más feo 1085 00:50:49,449 --> 00:50:51,090 mejor porque no tienen que parsear espacio, 1086 00:50:51,230 --> 00:50:52,030 no tienen que parsear nada. 1087 00:50:53,949 --> 00:50:54,170 ¿Eh? 1088 00:51:02,170 --> 00:51:02,610 Bueno. 1089 00:51:03,710 --> 00:51:04,570 Pues ya está. 1090 00:51:10,909 --> 00:51:11,349 ¿Cuál? 1091 00:51:15,349 --> 00:51:15,710 ¿Modificar? 1092 00:51:18,949 --> 00:51:19,650 ¿Modificar el qué? 1093 00:51:21,030 --> 00:51:21,389 ¡Ah! 1094 00:51:23,190 --> 00:51:25,269 modificar género 1095 00:51:25,269 --> 00:51:26,349 es esto 1096 00:51:26,349 --> 00:51:49,630 porque me ha dado 1097 00:51:49,630 --> 00:51:50,789 a mí por ahí, yo que sé 1098 00:51:50,789 --> 00:51:57,190 a ver, habrá 1099 00:51:57,190 --> 00:51:59,230 APIs que por las características 1100 00:51:59,230 --> 00:52:00,909 de PAD les interese PAD 1101 00:52:00,909 --> 00:52:03,150 sobre todo yo creo que 1102 00:52:03,150 --> 00:52:04,690 aparte del diseño es distinto 1103 00:52:04,690 --> 00:52:06,429 la arquitectura de diseño es distinto 1104 00:52:06,429 --> 00:52:09,250 creo que es compatible con 1105 00:52:09,250 --> 00:52:11,070 URIs, con cosas que File no lo es 1106 00:52:11,070 --> 00:52:15,230 entonces tu PAD lo puedes asociar a un 1107 00:52:15,230 --> 00:52:16,829 recurso genérico 1108 00:52:16,829 --> 00:52:18,809 o a una URI, pero 1109 00:52:18,809 --> 00:52:20,789 asociar un File a una URI no puedes 1110 00:52:20,789 --> 00:52:23,190 claro, File es para un 1111 00:52:23,190 --> 00:52:25,230 fichero, PAD es más amplio, es un camino 1112 00:52:25,230 --> 00:52:26,429 y un PAD puede ser 1113 00:52:26,429 --> 00:52:28,929 PAD to File, pero un PAD puede ser PAD to PAD 1114 00:52:28,929 --> 00:52:31,969 no creo que esté 1115 00:52:31,969 --> 00:52:33,349 No lo sé. 1116 00:52:33,989 --> 00:52:36,530 A ver, en File no, pero PAD. 1117 00:52:37,489 --> 00:52:41,010 Claro, pero tú puedes crear un PAD pasando en el File. 1118 00:52:43,190 --> 00:52:43,710 ¿Eh? 1119 00:52:45,230 --> 00:52:48,889 Que hay un tu PAD dentro de File para convertirlo a PAD. 1120 00:52:49,469 --> 00:52:50,429 Pues no lo sé. 1121 00:52:52,389 --> 00:52:54,550 Bueno, pues a ver, siguiente método. 1122 00:52:55,949 --> 00:52:58,929 Ahora ya, usando el archivo, no usando biblioteca, 1123 00:52:59,570 --> 00:53:01,210 vamos a consultar libro por ID. 1124 00:53:01,210 --> 00:53:03,989 Pues venga, vamos a consultar libro por id 1125 00:53:03,989 --> 00:53:05,389 Ala 1126 00:53:05,389 --> 00:53:19,400 Vale, pues vamos a devolver 1127 00:53:19,400 --> 00:53:21,199 El libro con un id 1128 00:53:21,199 --> 00:53:22,480 Dado 1129 00:53:22,480 --> 00:53:29,869 String id 1130 00:53:29,869 --> 00:53:33,489 A fichero 1131 00:53:33,489 --> 00:53:34,929 Vale 1132 00:53:34,929 --> 00:53:50,119 Igual a 1133 00:53:50,119 --> 00:54:01,940 Venga, pues ala 1134 00:54:01,940 --> 00:54:03,019 El object mapper 1135 00:54:03,019 --> 00:54:05,519 Porque vamos a trabajar 1136 00:54:05,519 --> 00:54:06,679 Con el fichero JSON 1137 00:54:06,679 --> 00:54:16,780 Ahora, vamos a 1138 00:54:16,780 --> 00:54:23,489 Esto directamente con el Jackson 1139 00:54:23,489 --> 00:54:24,889 Se puede tal cual ya 1140 00:54:24,889 --> 00:54:28,309 Como tiene la biblioteca 1141 00:54:28,309 --> 00:54:29,230 Tiene el modelo 1142 00:54:29,230 --> 00:54:31,650 Pues es que ya directamente con el Jackson 1143 00:54:31,650 --> 00:54:32,610 Podemos hacer esto 1144 00:54:32,610 --> 00:54:35,409 Mapper.read 1145 00:54:35,409 --> 00:54:37,829 Reactree 1146 00:54:37,829 --> 00:54:38,110 ¿No? 1147 00:54:40,610 --> 00:54:40,969 Y... 1148 00:54:40,969 --> 00:54:42,550 No, el Reactree te da el JSON node 1149 00:54:42,550 --> 00:54:44,750 Reactvalue será 1150 00:54:44,750 --> 00:54:46,289 ReactValue 1151 00:54:46,289 --> 00:54:49,110 Te da directamente 1152 00:54:49,110 --> 00:54:50,230 De 1153 00:54:50,230 --> 00:54:52,469 Tú le dices el fichero 1154 00:54:52,469 --> 00:55:00,500 Y luego le dices aquí la clase 1155 00:55:00,500 --> 00:55:01,820 En la que tiene que parsear 1156 00:55:01,820 --> 00:55:05,900 Biblioteca.class 1157 00:55:05,900 --> 00:55:06,780 ¿Vale? 1158 00:55:07,980 --> 00:55:08,840 Y ya está 1159 00:55:08,840 --> 00:55:12,179 Y es que ya habría que sacar ahí el que tiene ese ID 1160 00:55:12,179 --> 00:55:12,800 Y se acabó 1161 00:55:12,800 --> 00:55:18,489 Entonces 1162 00:55:18,489 --> 00:55:22,170 el reactree cuando lo quieres 1163 00:55:22,170 --> 00:55:24,190 guardar en un json node 1164 00:55:24,190 --> 00:55:26,190 porque no tienes el objeto 1165 00:55:26,190 --> 00:55:28,210 biblioteca, podemos hacerlo ahora 1166 00:55:28,210 --> 00:55:29,510 entonces, ahora si lo 1167 00:55:29,510 --> 00:55:31,750 como tenemos el modelo y tenemos el objeto 1168 00:55:31,750 --> 00:55:34,070 la clase biblioteca, lo vuelco al modelo 1169 00:55:34,070 --> 00:55:36,210 y ya está, pero si yo no tuviera 1170 00:55:36,210 --> 00:55:37,829 estas clases no puedo volcarlo al modelo 1171 00:55:37,829 --> 00:55:39,889 entonces lo vuelco a un json node, que es una 1172 00:55:39,889 --> 00:55:41,030 estructura de json 1173 00:55:41,030 --> 00:55:43,989 de Jackson, vale, entonces aquí 1174 00:55:43,989 --> 00:55:46,010 me quedaría con mis 1175 00:55:46,010 --> 00:55:48,050 libros y quiero solo 1176 00:55:48,050 --> 00:55:49,969 que tiene el id, pues hombre 1177 00:55:49,969 --> 00:55:52,030 aquí hace uno su superfilter 1178 00:55:52,030 --> 00:55:53,429 bueno, primero se hace 1179 00:55:53,429 --> 00:55:55,030 su filita 1180 00:55:55,030 --> 00:55:57,969 y se hace 1181 00:55:57,969 --> 00:56:00,050 su superfilter y ya está 1182 00:56:00,050 --> 00:56:01,969 y que nos quedamos 1183 00:56:01,969 --> 00:56:03,289 pues quédate 1184 00:56:03,289 --> 00:56:05,769 solamente de cada libro 1185 00:56:05,769 --> 00:56:08,289 quédate con aquel que cumpla 1186 00:56:08,289 --> 00:56:09,710 que 1187 00:56:09,710 --> 00:56:12,050 x.getid 1188 00:56:12,670 --> 00:56:16,329 es igual 1189 00:56:18,050 --> 00:56:20,250 Al ID que tú le estás pasando 1190 00:56:20,250 --> 00:56:28,730 No lo sé 1191 00:56:28,730 --> 00:56:33,449 Ah, por este espacio que tengo aquí tan feo 1192 00:56:33,449 --> 00:56:36,309 Hombre, claro 1193 00:56:36,309 --> 00:56:38,050 El simbolito este 1194 00:56:38,050 --> 00:56:39,690 No le puedo poner separado 1195 00:56:39,690 --> 00:56:40,750 Entonces, aquí 1196 00:56:40,750 --> 00:56:44,650 Este es el libro que tengo que filtro 1197 00:56:44,650 --> 00:56:45,250 Entonces 1198 00:56:45,250 --> 00:56:48,329 De aquí me quiero quedar 1199 00:56:48,329 --> 00:56:49,769 Con 1200 00:56:49,769 --> 00:56:52,630 El primero de todos 1201 00:56:52,630 --> 00:56:54,349 Tendré una opción de quedarme 1202 00:56:54,349 --> 00:56:55,449 Con el primero de todos, ¿no? 1203 00:56:55,469 --> 00:56:56,730 Que es el único en este caso 1204 00:56:56,730 --> 00:57:07,380 Ah, es que me lo he saltado 1205 00:57:07,380 --> 00:57:09,780 Ah, que está aquí 1206 00:57:09,780 --> 00:57:11,219 Vale 1207 00:57:11,219 --> 00:57:13,539 Me lo he saltado 1208 00:57:13,539 --> 00:57:16,659 Vale 1209 00:57:16,659 --> 00:57:19,900 Este, find first 1210 00:57:19,900 --> 00:57:21,019 Y ahora 1211 00:57:21,019 --> 00:57:22,559 Yo es que aquí 1212 00:57:22,559 --> 00:57:24,860 Asumo que todo existe 1213 00:57:24,860 --> 00:57:26,139 Lo saco tal cual 1214 00:57:26,139 --> 00:57:29,980 Este es el libro 1215 00:57:29,980 --> 00:57:32,500 Que devolvemos 1216 00:57:32,500 --> 00:57:38,860 Eso es lo que iba a decir 1217 00:57:38,860 --> 00:57:39,619 Que yo aquí estoy 1218 00:57:39,619 --> 00:57:41,300 Vale, entonces 1219 00:57:41,300 --> 00:57:43,960 Aquí puedo 1220 00:57:43,960 --> 00:57:45,400 Find first 1221 00:57:45,400 --> 00:57:46,079 Entonces 1222 00:57:46,079 --> 00:57:48,079 De aquí me saco 1223 00:57:48,079 --> 00:57:49,780 Olers 1224 00:57:49,780 --> 00:57:50,480 Libro 1225 00:57:50,480 --> 00:57:51,940 Olers 1226 00:57:51,940 --> 00:57:52,300 No 1227 00:57:52,300 --> 00:57:53,119 Vale 1228 00:57:53,119 --> 00:57:55,719 Si no existe el libro 1229 00:57:55,719 --> 00:57:56,719 No devuelvo el null 1230 00:57:56,719 --> 00:57:57,579 ¿Vale? 1231 00:58:06,230 --> 00:58:07,369 Te devuelvo un litro 1232 00:58:07,369 --> 00:58:09,210 O un null o el objeto libre 1233 00:58:09,210 --> 00:58:11,230 ¿Vale? Entonces de hecho 1234 00:58:11,230 --> 00:58:13,050 Podríamos hasta 1235 00:58:13,050 --> 00:58:14,889 Meter 1236 00:58:14,889 --> 00:58:17,650 Esto aquí 1237 00:58:17,650 --> 00:58:19,670 Y el sumétodo de una sola línea 1238 00:58:19,670 --> 00:58:21,769 Pero bueno, ya demasiado frío, no hay necesidad de 1239 00:58:38,269 --> 00:58:39,969 ¿Cómo? 1240 00:58:47,969 --> 00:58:48,809 Estamos jodidos 1241 00:58:48,809 --> 00:58:50,269 ¿Pero de qué me estás hablando? ¿De esto? 1242 00:58:52,550 --> 00:58:53,789 ¿Este método te da 1243 00:58:53,789 --> 00:58:55,909 error de compilación? ¿Que no lo encuentra? 1244 00:58:56,070 --> 00:58:56,210 ¿O cómo? 1245 00:58:58,650 --> 00:59:00,130 ¿Que no puede resolver el qué? 1246 00:59:03,750 --> 00:59:05,130 ¿O sea, aquí le estás pasando? 1247 00:59:08,269 --> 00:59:10,329 Si se lo pasas a File 1248 00:59:10,329 --> 00:59:11,550 Tampoco te lo coge 1249 00:59:11,550 --> 00:59:12,570 Pero es muy raro porque 1250 00:59:12,570 --> 00:59:15,949 Como no sea la versión de Jackson 1251 00:59:15,949 --> 00:59:16,949 Pero me extraña mucho 1252 00:59:16,949 --> 00:59:22,389 Hombre, tendrá las firmas 1253 00:59:22,389 --> 00:59:23,250 Para los dos 1254 00:59:23,250 --> 00:59:26,369 Pero lo que me extraña es que 1255 00:59:26,369 --> 00:59:27,829 A él no le coja el de File 1256 00:59:27,829 --> 00:59:34,369 Pues 1257 00:59:34,369 --> 00:59:36,570 No sé decirte 1258 00:59:36,570 --> 00:59:37,489 ¿Qué versión tienes? 1259 00:59:39,489 --> 00:59:39,809 De 1260 00:59:39,809 --> 00:59:44,809 Vamos a ver 1261 00:59:44,809 --> 00:59:52,510 Yo tengo la 3-0 1262 00:59:52,510 --> 00:59:54,050 No sé si será por eso 1263 00:59:54,050 --> 00:59:58,750 Que no le he cambiado esto 1264 01:00:05,650 --> 01:00:06,170 Entonces 1265 01:00:06,170 --> 01:00:07,610 Si uno no tuviera el modelo 1266 01:00:07,610 --> 01:00:10,550 Esto se complicaría un pelín este método 1267 01:00:10,550 --> 01:00:13,150 Porque yo no podría leer en biblioteca 1268 01:00:13,150 --> 01:00:14,829 Directamente, si uno no tuviera el modelo 1269 01:00:14,829 --> 01:00:16,469 Esto ya no sería tan sencillo 1270 01:00:16,469 --> 01:00:18,730 Si no lo tuviéramos, tendríamos que leer 1271 01:00:18,730 --> 01:00:20,130 A un JSON node 1272 01:00:20,130 --> 01:00:23,309 ¿Qué? 1273 01:00:29,159 --> 01:00:31,219 Ni siquiera sé si la clave se llamaba así 1274 01:00:31,219 --> 01:00:35,179 Y ahora ya sí que sería 1275 01:00:35,179 --> 01:00:37,260 Mapper.reactree 1276 01:00:37,260 --> 01:00:38,880 ¿Vale? 1277 01:00:38,880 --> 01:00:40,519 Y aquí ya el 1278 01:00:40,519 --> 01:00:43,039 Fichero 1279 01:00:43,039 --> 01:00:45,559 Y esta no sé si la he escrito bien 1280 01:00:45,559 --> 01:00:48,789 Sí, está bien escrita 1281 01:00:48,789 --> 01:00:51,650 Vale, entonces aquí sería un rollo 1282 01:00:51,650 --> 01:00:53,730 Porque aquí ahora ya tendríamos que navegar por aquí 1283 01:00:53,730 --> 01:00:55,869 Tendríamos que 1284 01:00:55,869 --> 01:00:57,289 Encontrar 1285 01:00:57,289 --> 01:00:59,789 Nodo tiene su find 1286 01:00:59,789 --> 01:01:06,960 A partir de los find 1287 01:01:06,960 --> 01:01:10,119 Pues tenemos que encontrar 1288 01:01:10,119 --> 01:01:22,380 Claro, o sea, este nodo 1289 01:01:22,380 --> 01:01:24,300 lo podemos cambiar con el método 1290 01:01:24,300 --> 01:01:26,619 tree to value, lo cambiaríamos a biblioteca 1291 01:01:26,619 --> 01:01:30,260 Bueno, si estás en otro 1292 01:01:30,260 --> 01:01:32,420 momento de tu método 1293 01:01:32,420 --> 01:01:33,659 porque aquí es que lo acabamos de leer 1294 01:01:33,659 --> 01:01:36,159 pero tú podrías estar en una zona de tu aplicación 1295 01:01:36,159 --> 01:01:37,219 donde tienes el JSON node 1296 01:01:37,219 --> 01:01:39,199 y ahí ya lo quieres convertir 1297 01:01:39,199 --> 01:01:40,300 a un modelo en ese momento 1298 01:01:40,300 --> 01:01:42,059 porque vienes de otro sitio 1299 01:01:42,059 --> 01:01:44,440 aquí en particular sería absurdo 1300 01:01:44,440 --> 01:01:46,659 leerlo como JSON node 1301 01:01:46,659 --> 01:01:48,860 para cambiarlo si ya lo podemos leer 1302 01:01:48,860 --> 01:01:49,539 con real value 1303 01:01:49,539 --> 01:01:52,179 simplemente para ver ese método 1304 01:01:52,179 --> 01:01:57,920 yo la 301 1305 01:01:57,920 --> 01:02:03,980 3.0.1 1306 01:02:03,980 --> 01:02:06,019 aquí por ejemplo 1307 01:02:06,019 --> 01:02:08,380 pues aquí tendríamos find values 1308 01:02:08,380 --> 01:02:14,280 que me saca 1309 01:02:14,280 --> 01:02:16,199 toda la lista de json nodes 1310 01:02:16,199 --> 01:02:17,500 vale 1311 01:02:17,500 --> 01:02:23,829 con esta propiedad, tendría que navegar 1312 01:02:23,829 --> 01:02:25,909 por ella, cuando encuentre 1313 01:02:25,909 --> 01:02:27,730 el ids así 1314 01:02:27,730 --> 01:02:28,969 pues tendría que sacarme 1315 01:02:28,969 --> 01:02:31,150 el resto de propiedades para hacer un libro 1316 01:02:31,150 --> 01:02:33,550 o sea, sería una, navegar a través de aquí 1317 01:02:33,550 --> 01:02:35,190 es un poco rollo, vale 1318 01:02:35,190 --> 01:02:37,630 venga, ni vamos a entrar en ello 1319 01:02:37,630 --> 01:02:39,309 ahora mismo, aparte de por la hora que es 1320 01:02:39,309 --> 01:02:40,909 entonces esto 1321 01:02:40,909 --> 01:02:51,980 Vale, ¿qué podríamos incorporar aquí? 1322 01:02:52,139 --> 01:02:53,820 Que no hemos incorporado 1323 01:02:53,820 --> 01:03:02,719 Que liste 1324 01:03:02,719 --> 01:03:14,139 Doctor, que liste 1325 01:03:32,409 --> 01:03:34,090 El informe, no entiendo nada 1326 01:03:34,090 --> 01:03:34,809 Punto PDF 1327 01:03:34,809 --> 01:03:38,610 Vale, pues un informe 1328 01:03:38,610 --> 01:03:40,489 Autor, tres libros 1329 01:03:40,489 --> 01:03:42,969 Autor, tal, cuatro libros 1330 01:03:42,969 --> 01:03:44,349 Autor, no sé cuánto, cinco libros 1331 01:03:44,349 --> 01:03:46,010 Para procesar un poquito el fichero 1332 01:03:46,010 --> 01:03:47,389 Y luego yo hago el informe y ya está 1333 01:03:47,389 --> 01:03:51,550 A ver 1334 01:03:51,550 --> 01:03:54,630 Ahora, si incorporamos los logs 1335 01:03:54,630 --> 01:03:55,369 Pues aquí 1336 01:03:55,369 --> 01:03:58,230 Para incorporar los logs, ¿qué haríamos? 1337 01:03:59,130 --> 01:04:00,929 Primero, necesitaríamos la dependencia 1338 01:04:00,929 --> 01:04:02,670 Pues vamos a copiar la dependencia 1339 01:04:02,670 --> 01:04:03,309 Venga 1340 01:04:03,309 --> 01:04:07,590 Vamos a generar archivos de logs aquí 1341 01:04:07,590 --> 01:04:08,369 A ver 1342 01:04:08,369 --> 01:04:13,530 La dependencia de log4j 1343 01:04:13,530 --> 01:04:15,130 Imagino 1344 01:04:15,130 --> 01:04:16,050 Aquí está 1345 01:04:16,050 --> 01:04:19,070 Venga 1346 01:04:19,070 --> 01:04:22,559 Aquí 1347 01:04:22,559 --> 01:04:23,400 Aquí 1348 01:04:23,400 --> 01:04:25,079 Eran estas dos 1349 01:04:25,079 --> 01:04:30,860 Vale 1350 01:04:30,860 --> 01:04:32,579 Y esta de Jackson 1351 01:04:32,579 --> 01:04:35,300 era necesaria si el archivo de configuración 1352 01:04:35,300 --> 01:04:36,000 de xml 1353 01:04:36,000 --> 01:04:37,679 era json 1354 01:04:37,679 --> 01:04:40,760 si el archivo de configuración de log4j 1355 01:04:40,760 --> 01:04:42,500 era json, si era xml no 1356 01:04:42,500 --> 01:04:44,079 entonces 1357 01:04:44,079 --> 01:04:47,340 vamos a copiar 1358 01:04:47,340 --> 01:04:51,340 estas dos 1359 01:04:51,340 --> 01:04:52,860 ¿vale? 1360 01:04:54,699 --> 01:04:55,539 por ejemplo 1361 01:04:55,539 --> 01:04:58,000 copiamos esta dependencia 1362 01:04:58,000 --> 01:04:59,199 a nuestro 1363 01:04:59,199 --> 01:05:00,820 pom 1364 01:05:00,820 --> 01:05:03,559 porque si el archivo 1365 01:05:03,559 --> 01:05:04,920 de configuración de 1366 01:05:04,920 --> 01:05:07,480 logs, era con JSON 1367 01:05:07,480 --> 01:05:08,559 que era una posibilidad 1368 01:05:08,559 --> 01:05:11,199 entonces le quitabas la dependencia de Jackson 1369 01:05:11,199 --> 01:05:13,900 vale, si es con XML no te hace falta 1370 01:05:13,900 --> 01:05:17,000 entonces, a ver, vamos a ver 1371 01:05:17,000 --> 01:05:18,320 vamos a ponerle los logs 1372 01:05:18,320 --> 01:05:19,940 y nos vamos 1373 01:05:19,940 --> 01:05:22,960 pues venga, voy a añadir 1374 01:05:22,960 --> 01:05:30,800 vamos a ponerle los logs, como lo haríamos 1375 01:05:30,800 --> 01:05:33,699 Le pongo la dependencia esta de logs 1376 01:05:33,699 --> 01:05:35,199 Esta de jacksons, se me ha escapado 1377 01:05:35,199 --> 01:05:36,119 Que ya la tengo arriba 1378 01:05:36,119 --> 01:05:38,780 Entonces esto lo voy a quitar porque se me ha escapado 1379 01:05:38,780 --> 01:05:41,880 Le pongo la dependencia de logs 1380 01:05:41,880 --> 01:05:42,260 Vale 1381 01:05:42,260 --> 01:05:45,079 Un fichero de configuración me va a hacer falta 1382 01:05:45,079 --> 01:05:47,699 Pues vamos a coger un fichero de configuración 1383 01:05:47,699 --> 01:05:48,619 Y lo retocamos 1384 01:05:48,619 --> 01:05:51,739 Pues venga, un fichero de configuración 1385 01:05:51,739 --> 01:05:53,840 Lo tenemos en nuestro ejemplo 1386 01:05:53,840 --> 01:05:54,559 De logs 1387 01:05:54,559 --> 01:05:56,900 En recursos 1388 01:05:56,900 --> 01:05:58,260 Vale 1389 01:05:58,260 --> 01:06:00,940 el xml 1390 01:06:00,940 --> 01:06:03,619 por ejemplo 1391 01:06:03,619 --> 01:06:09,460 lo copiamos en los recursos 1392 01:06:09,460 --> 01:06:10,260 de aquí 1393 01:06:10,260 --> 01:06:16,110 vale, que le voy a cambiar el nombre 1394 01:06:16,110 --> 01:06:17,469 porque ahí estaba 1395 01:06:17,469 --> 01:06:21,110 mal llamado 1396 01:06:21,110 --> 01:06:26,730 venga, ok 1397 01:06:26,730 --> 01:06:30,329 ala, he puesto la dependencia 1398 01:06:30,329 --> 01:06:32,570 Y el archivo de configuración en resources 1399 01:06:32,570 --> 01:06:34,670 Vale, vamos a abrirlo 1400 01:06:34,670 --> 01:06:36,309 Para adaptarlo a nuestra situación 1401 01:06:36,309 --> 01:06:39,059 Venga 1402 01:06:39,059 --> 01:06:41,599 Que appenders tenemos, este de consola 1403 01:06:41,599 --> 01:06:43,800 Muy bien, este fichero 1404 01:06:43,800 --> 01:06:45,239 Quiero que se llame así, venga 1405 01:06:45,239 --> 01:06:48,039 Y tengo un fichero, este fichero de aquí 1406 01:06:48,039 --> 01:06:50,119 Quiero que se guarden 1407 01:06:50,119 --> 01:06:51,480 Logs, aplicación.log 1408 01:06:51,480 --> 01:06:53,420 Venga, si, si no le cambio de nombre y ya está 1409 01:06:53,420 --> 01:06:55,860 Estos appenders me gustan 1410 01:06:55,860 --> 01:06:57,320 Ahora, los logger 1411 01:06:57,320 --> 01:07:01,519 Vamos a ver, lo vamos a configurar 1412 01:07:01,519 --> 01:07:03,260 Los logger, cuidado con esto 1413 01:07:03,260 --> 01:07:06,400 Logger raíz, quiero que todas las clases se configuren 1414 01:07:06,400 --> 01:07:08,480 Igual, pues de esto 1415 01:07:08,480 --> 01:07:10,380 Paso, porque esto es para configurar 1416 01:07:10,380 --> 01:07:11,579 Cada clase por separado 1417 01:07:11,579 --> 01:07:13,420 Para que cada una tenga un nivel 1418 01:07:13,420 --> 01:07:15,179 De logs distintos 1419 01:07:15,179 --> 01:07:18,579 Entonces, venga, esto lo quito 1420 01:07:18,579 --> 01:07:20,260 Y aquí ya 1421 01:07:20,260 --> 01:07:21,920 Decido 1422 01:07:21,920 --> 01:07:24,519 Nivel de logs 1423 01:07:24,519 --> 01:07:26,000 One, no es a ver 1424 01:07:26,000 --> 01:07:27,860 One, info, el que sea 1425 01:07:27,860 --> 01:07:29,000 Vamos a ponerle 1426 01:07:29,000 --> 01:07:32,539 Pues yo pongo info, ala 1427 01:07:32,539 --> 01:07:36,260 Tú pones Juan, pues yo pongo info 1428 01:07:36,260 --> 01:07:38,199 ¿A dónde queremos que vayan los logs? 1429 01:07:38,639 --> 01:07:40,539 Al fichero y a la consola 1430 01:07:40,539 --> 01:07:42,000 ¡Hala, ya está! 1431 01:07:42,780 --> 01:07:43,980 Ahora, si hemos hecho esto 1432 01:07:43,980 --> 01:07:45,340 Es para ahora 1433 01:07:45,340 --> 01:07:47,639 Hacer aquí cosas un poco más 1434 01:07:47,639 --> 01:07:49,059 Monas, por ejemplo 1435 01:07:49,059 --> 01:07:53,559 Hay que crear un log 1436 01:07:53,559 --> 01:07:56,920 Aquí, pues yo haría 1437 01:07:56,920 --> 01:07:58,480 Ah, claro, hay que crear el log, jolines 1438 01:07:58,480 --> 01:08:00,559 Me pongo el log 1439 01:08:00,559 --> 01:08:03,719 On fire 1440 01:08:03,719 --> 01:08:06,280 Vale, entonces 1441 01:08:06,280 --> 01:08:08,360 Voy a copiar la línea directamente 1442 01:08:08,360 --> 01:08:11,340 De aquí 1443 01:08:11,340 --> 01:08:18,579 A la mi logger 1444 01:08:18,579 --> 01:08:21,060 Ahí 1445 01:08:21,060 --> 01:08:27,069 Venga 1446 01:08:27,069 --> 01:08:37,449 Y ahora la clase se llama lógica 1447 01:08:37,449 --> 01:08:38,970 Vale, pues este es el logger 1448 01:08:38,970 --> 01:08:40,729 De mi clase lógica 1449 01:08:40,729 --> 01:08:43,470 Que como no tiene una configuración específica 1450 01:08:43,470 --> 01:08:45,050 Para él en el fichero de configuración 1451 01:08:45,050 --> 01:08:48,369 No tiene una específica para él 1452 01:08:48,369 --> 01:08:50,590 Pues se va a configurar con el del raíz 1453 01:08:50,590 --> 01:08:56,210 Esto fuera 1454 01:08:56,210 --> 01:08:59,369 Ahora 1455 01:08:59,369 --> 01:09:01,529 Y ahora ya, pues por ejemplo aquí 1456 01:09:01,529 --> 01:09:06,550 Y no he encontrado 1457 01:09:06,550 --> 01:09:09,350 Pues yo que sé, uno podría a lo mejor 1458 01:09:09,350 --> 01:09:10,390 Querer hacer esto 1459 01:09:10,390 --> 01:09:16,689 Log.one 1460 01:09:16,689 --> 01:09:20,659 No se actualizó 1461 01:09:21,840 --> 01:09:24,000 No 1462 01:09:24,000 --> 01:09:25,500 Antes 1463 01:09:25,500 --> 01:09:31,319 No se actualizó 1464 01:09:31,319 --> 01:09:33,779 Ningún fichero 1465 01:09:33,779 --> 01:09:35,500 Yo que sé, cualquier cosa que yo quiera 1466 01:09:35,500 --> 01:09:36,899 Dejar registro 1467 01:09:36,899 --> 01:09:40,659 Y mi variable no se llamaba log 1468 01:09:40,659 --> 01:09:41,159 Sino 1469 01:09:41,159 --> 01:09:47,649 Y ya está 1470 01:09:47,649 --> 01:09:49,510 Y ahora ya aviso donde a mí me dé la gana 1471 01:09:49,510 --> 01:09:50,689 Aviso y se acabó 1472 01:09:50,689 --> 01:09:52,149 Cuando yo quiera 1473 01:09:52,149 --> 01:09:57,210 Claro, con el nivel que yo quiera 1474 01:09:57,210 --> 01:09:59,069 Que luego estoy en fase de desarrollo 1475 01:09:59,069 --> 01:10:00,510 Quiero que me lleguen todos los logs 1476 01:10:00,510 --> 01:10:03,850 Pues me aseguro de que en mi fichero de configuración 1477 01:10:03,850 --> 01:10:04,770 Que 1478 01:10:04,770 --> 01:10:07,109 Es este 1479 01:10:07,109 --> 01:10:09,750 Me aseguro de que aquí está el nivel que yo quiero 1480 01:10:09,750 --> 01:10:10,890 Que ya estoy en producción 1481 01:10:10,890 --> 01:10:12,090 Ya en el servidor final 1482 01:10:12,090 --> 01:10:14,069 Pues aquí pondré error 1483 01:10:14,069 --> 01:10:16,609 Para que solo vayan a log los importantes 1484 01:10:16,609 --> 01:10:19,449 Que quiero una configuración 1485 01:10:19,449 --> 01:10:21,529 Específica para mi clase cualquiera 1486 01:10:21,529 --> 01:10:23,250 Pues me añado aquí un log 1487 01:10:23,250 --> 01:10:24,750 Para esa clase 1488 01:10:24,750 --> 01:10:25,829 Acabo de eliminar 1489 01:10:25,829 --> 01:10:29,069 para que las clases vayan con diferentes niveles 1490 01:10:29,069 --> 01:10:30,529 esta que vaya con info y ya está 1491 01:10:30,529 --> 01:10:32,390 hay poco más que esto, ¿vale? 1492 01:10:36,470 --> 01:10:37,609 muy sencillito 1493 01:10:37,609 --> 01:10:40,369 falta la parte del controlador 1494 01:10:40,369 --> 01:10:41,829 es sencillín, pero bueno 1495 01:10:41,829 --> 01:10:44,210 ahora esto 1496 01:10:44,210 --> 01:10:46,909 tendríamos que meterlo 1497 01:10:46,909 --> 01:10:49,210 en la arquitectura 1498 01:10:49,210 --> 01:10:50,569 estos son las funcionalidades 1499 01:10:50,569 --> 01:10:52,909 ahora ya pues uno que lo quiere como 1500 01:10:52,909 --> 01:10:54,670 aplicación de escritorio, se hace su menú 1501 01:10:54,670 --> 01:10:55,390 y llama esto 1502 01:10:55,390 --> 01:10:57,750 que lo quiere como aplicación web 1503 01:10:57,750 --> 01:10:59,670 se hace su controlador 1504 01:10:59,670 --> 01:11:01,210 y desde el controlador llama a esto 1505 01:11:01,210 --> 01:11:02,630 y ya está 1506 01:11:02,630 --> 01:11:17,750 venga, pues nos vamos 1507 01:11:17,750 --> 01:11:25,270 bueno, tenéis menos miedo 1508 01:11:25,270 --> 01:11:30,810 No me lo creo 1509 01:11:30,810 --> 01:11:33,529 ¿Habéis visto que lo habéis podido hacer todo?