From d63e0038bbdaae7dcb97e92d9000399b7cd7ae16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Mon, 11 Jan 2010 17:40:05 +0100 Subject: [PATCH] ItEr43S09ImplantacionAplicacionItEr42S13: Refactoring. Splitting buildResourcesText into several methods. --- .../web/planner/TaskElementAdapter.java | 70 ++++++++++--------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java index 7c024dfdc..5033135a4 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/TaskElementAdapter.java @@ -34,6 +34,7 @@ import java.util.Map; import java.util.Set; import java.util.Map.Entry; +import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.Validate; import org.hibernate.Hibernate; import org.joda.time.LocalDate; @@ -423,41 +424,42 @@ public class TaskElementAdapter implements ITaskElementAdapter { } private String buildResourcesText() { - StringBuilder result = new StringBuilder(); - List foundResources = new ArrayList(); - if (taskElement.getResourceAllocations() != null) { - for (ResourceAllocation each : taskElement.getResourceAllocations()) { - - if (each instanceof SpecificResourceAllocation) { - List list = each.getAssociatedResources(); - if (!list.isEmpty()) { - for (Resource r : list) { - if (!foundResources.contains(r)) { - result.append(r.getName()).append(", "); - foundResources.add(r); - } - } - } - } else { - List listCriterions = resourceAllocationDAO - .findCriterionByResourceAllocation(each); - result.append("["); - if (!listCriterions.isEmpty()) { - for (Criterion r : listCriterions) { - result.append(r.getName()).append(", "); - } - } else { - result.append(_("All workers")).append(", "); - } - result.delete(result.length() - 2, result.length()); - result.append("], "); - } - } - if (result.length() > 1) { - result.delete(result.length() - 2, result.length()); - } + List result = new ArrayList(); + Set alreadyFoundResources = new HashSet(); + for (ResourceAllocation each : taskElement + .getResourceAllocations()) { + result.addAll(extractRepresentations(each, + alreadyFoundResources)); } - return result.toString(); + return StringUtils.join(result, ", "); + } + + private List extractRepresentations(ResourceAllocation each, + Set alreadyFoundResources) { + List result = new ArrayList(); + if (each instanceof SpecificResourceAllocation) { + for (Resource r : each.getAssociatedResources()) { + if (!alreadyFoundResources.contains(r)) { + result.add(r.getName()); + alreadyFoundResources.add(r); + } + } + } else { + List listCriterions = resourceAllocationDAO + .findCriterionByResourceAllocation(each); + List forCriterionRepresentations = new ArrayList(); + if (!listCriterions.isEmpty()) { + for (Criterion r : listCriterions) { + forCriterionRepresentations.add(r.getName()); + } + } else { + forCriterionRepresentations.add((_("All workers"))); + } + result.add("[" + + StringUtils.join(forCriterionRepresentations, + ", ") + "]"); + } + return result; } private String buildTooltipText() {