From 8a999c574b464b763db8ddd864f050a299724d46 Mon Sep 17 00:00:00 2001 From: Trebellar Date: Thu, 9 Apr 2026 09:57:13 +0200 Subject: [PATCH] En DepartamentoExistDao se completa el metodo findAll, falta la excepccion. --- .../departamento/DepartamentoEXistDao.java | 41 ++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main/java/modelo/dao/departamento/DepartamentoEXistDao.java b/src/main/java/modelo/dao/departamento/DepartamentoEXistDao.java index 5f7583d..c914744 100644 --- a/src/main/java/modelo/dao/departamento/DepartamentoEXistDao.java +++ b/src/main/java/modelo/dao/departamento/DepartamentoEXistDao.java @@ -249,8 +249,47 @@ public class DepartamentoEXistDao extends AbstractGenericDao imple @Override public List findAll() { - throw new UnsupportedOperationException("Este método findAll debe ser implementado"); + List listaDepartamentos = new ArrayList<>(); + Departamento departamento = null; + try (Collection col = DatabaseManager.getCollection(dataSource.getUrl() + dataSource.getColeccion(), + dataSource.getUser(), dataSource.getPwd())) { + System.out.println("A conexion coa base de datos foi establecida correctamente"); + + XQueryService xqs = (XQueryService) col.getService("XQueryService", "1.0"); + xqs.setProperty("indent", "yes"); + + CompiledExpression compiled = xqs.compile("//DEP_ROW"); + ResourceSet result = xqs.execute(compiled); + + // Para enviar unha excepcion se non se atopa nada + /* + * if (result.getSize() == 0) + * throw new InstanceNotFoundException(id, Departamento.class.getName()); + */ + + // Iteramos sobre os resultados e convertimos cada nodo a un obxecto + // Departamento + ResourceIterator i = result.getIterator(); + Resource res = null; + + while (i.hasMoreResources()) { + res = i.nextResource(); + departamento = stringNodeToDepartamento(res.getContent().toString()); + System.out.println(departamento.toString()); + listaDepartamentos.add(departamento); + } + + } + + catch (XMLDBException e) { + listaDepartamentos = null; + e.printStackTrace(); + } + + // throw new UnsupportedOperationException("Este método findAll debe ser + // implementado"); + return listaDepartamentos; } }