From af40d5f5ed9ed28a50b0532172d2ba7d0334ab6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Wed, 28 Oct 2009 12:34:14 +0100 Subject: [PATCH] Extracting method to add the query results --- .../planner/daos/DayAssignmentDAO.java | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/DayAssignmentDAO.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/DayAssignmentDAO.java index e8b33b8f1..02b076cb2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/DayAssignmentDAO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/daos/DayAssignmentDAO.java @@ -80,14 +80,8 @@ public class DayAssignmentDAO extends GenericDAOHibernate criteria.setProjection(Projections.projectionList().add( Property.forName("day").group()).add( Projections.sum("hours"))); - List list = criteria.list(); - - for (Object[] object : list) { - LocalDate date = (LocalDate) object[0]; - Integer hours = (Integer) object[1]; - result.put(date, hours.intValue()); - } + addHoursByDate(result, list); } if (!specificResourceAllocations.isEmpty()) { @@ -101,22 +95,22 @@ public class DayAssignmentDAO extends GenericDAOHibernate Projections.sum("hours"))); List list = criteria.list(); - - for (Object[] object : list) { - LocalDate date = (LocalDate) object[0]; - Integer hours = (Integer) object[1]; - - if (result.get(date) == null) { - result.put(date, hours.intValue()); - } else { - result.put(date, result.get(date) + hours.intValue()); - } - } + addHoursByDate(result, list); } return result; } + private void addHoursByDate(SortedMap result, + List list) { + for (Object[] object : list) { + LocalDate date = (LocalDate) object[0]; + Integer hours = (Integer) object[1]; + int current = result.get(date) != null ? result.get(date) : 0; + result.put(date, current + hours); + } + } + private List withId(List elements) { List result = new ArrayList(); for (T element : elements) {