From 64c0e7064296398fe154e12fe751d3819db0f286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=93scar=20Gonz=C3=A1lez=20Fern=C3=A1ndez?= Date: Tue, 15 Feb 2011 16:29:10 +0100 Subject: [PATCH] Refactor Extract method so the method has the same level of abstraction. FEA: ItEr70S04BugFixing --- .../navalplanner/web/orders/OrderModel.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java index 5ab447170..438809758 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderModel.java @@ -490,12 +490,9 @@ public class OrderModel extends IntegrationEntityModel implements IOrderModel { private void dontPoseAsTransientObjectAnymore(OrderElement orderElement) { dontPoseAsTransientObjectAnymore(orderElement.getTaskSourcesFromBottomToTop()); dontPoseAsTransientObjectAnymore(orderElement.getSchedulingDatasForVersionFromBottomToTop()); - Set directAdvanceAssignments = orderElement.getDirectAdvanceAssignments(); - for (DirectAdvanceAssignment directAdvanceAssignment : directAdvanceAssignments) { - directAdvanceAssignment.dontPoseAsTransientObjectAnymore(); - dontPoseAsTransientObjectAnymore(directAdvanceAssignment - .getAdvanceMeasurements()); - } + + dontPoseAsTransientObjectAnymore(orderElement.getDirectAdvanceAssignments()); + dontPoseAsTransientObjectAnymore(getAllMeasurements(orderElement.getDirectAdvanceAssignments())); dontPoseAsTransientObjectAnymore(orderElement .getIndirectAdvanceAssignments()); @@ -503,12 +500,22 @@ public class OrderModel extends IntegrationEntityModel implements IOrderModel { dontPoseAsTransientObjectAnymore(orderElement.getLabels()); dontPoseAsTransientObjectAnymore(orderElement.getTaskElements()); dontPoseAsTransientObjectAnymore(orderElement.getHoursGroups()); + for(OrderElement child : orderElement.getAllChildren()) { child.dontPoseAsTransientObjectAnymore(); dontPoseAsTransientObjectAnymore(child); } } + private List getAllMeasurements( + Collection assignments) { + List result = new ArrayList(); + for (DirectAdvanceAssignment each : assignments) { + result.addAll(each.getAdvanceMeasurements()); + } + return result; + } + private void saveOnTransaction(boolean newOrderVersionNeeded) { Order.checkConstraintOrderUniqueCode(order); HoursGroup.checkConstraintHoursGroupUniqueCode(order);