From 91668fba1b5fdb8eb400b3c51a38d6f89524b111 Mon Sep 17 00:00:00 2001 From: Manuel Rego Casasnovas Date: Mon, 27 Jul 2009 11:58:32 +0200 Subject: [PATCH] ItEr19S04ArquitecturaServidorItEr18S04: Removed "forceLoad*" methods from classes related with OrderElement. --- .../orders/entities/OrderElement.java | 5 ---- .../business/orders/entities/OrderLine.java | 18 ------------- .../orders/entities/OrderLineGroup.java | 14 +---------- .../web/orders/IOrderElementModel.java | 15 +++++++---- .../web/orders/OrderElementController.java | 9 ++++--- .../web/orders/OrderElementModel.java | 25 ++++++++++++++++++- .../web/orders/OrderElementTreeModel.java | 2 +- 7 files changed, 42 insertions(+), 46 deletions(-) diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java index 9cf943eef..3e1402e2a 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderElement.java @@ -6,7 +6,6 @@ import java.util.HashSet; import java.util.List; import java.util.Set; - import org.hibernate.validator.NotEmpty; import org.navalplanner.business.planner.entities.TaskElement; @@ -114,10 +113,6 @@ public abstract class OrderElement { public abstract OrderLineGroup toContainer(); - public abstract void forceLoadHourGroups(); - - public abstract void forceLoadHourGroupsCriterions(); - public void makeTransientAgain() { // FIXME Review reattachment id = null; diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java index 9679b7f4e..ed1ac7766 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLine.java @@ -6,8 +6,6 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import org.navalplanner.business.resources.entities.Criterion; - public class OrderLine extends OrderElement { public static OrderLine createOrderLineWithUnfixedHours(int hours) { @@ -326,20 +324,4 @@ public class OrderLine extends OrderElement { } } - @Override - public void forceLoadHourGroups() { - for (HoursGroup hoursGroup : hoursGroups) { - for (Criterion c : hoursGroup.getCriterions()) { - c.getType().getName(); - } - } - } - - @Override - public void forceLoadHourGroupsCriterions() { - for (HoursGroup hoursGroup : hoursGroups) { - hoursGroup.forceLoadCriterions(); - } - } - } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java index c7c1a70a4..a60dee4ef 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/orders/entities/OrderLineGroup.java @@ -2,6 +2,7 @@ package org.navalplanner.business.orders.entities; import java.util.ArrayList; import java.util.List; + import org.hibernate.validator.Valid; public class OrderLineGroup extends OrderElement implements IOrderLineGroup { @@ -89,17 +90,4 @@ public class OrderLineGroup extends OrderElement implements IOrderLineGroup { return hoursGroups; } - @Override - public void forceLoadHourGroups() { - for (OrderElement orderElement : children) { - orderElement.forceLoadHourGroups(); - } - } - - @Override - public void forceLoadHourGroupsCriterions() { - for (OrderElement orderElement : children) { - orderElement.forceLoadHourGroupsCriterions(); - } - } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderElementModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderElementModel.java index d1f5c50b1..f15d3aec1 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderElementModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/IOrderElementModel.java @@ -1,21 +1,26 @@ package org.navalplanner.web.orders; import java.util.List; +import java.util.Set; +import org.navalplanner.business.orders.entities.HoursGroup; import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.CriterionType; public interface IOrderElementModel { - public OrderElement getOrderElement(); + OrderElement getOrderElement(); - public void setCurrent(OrderElement orderElement, OrderModel order); + void setCurrent(OrderElement orderElement, OrderModel order); - public List getCriterionTypes(); + List getCriterionTypes(); - public CriterionType getCriterionTypeByName(String name); + CriterionType getCriterionTypeByName(String name); - public List getCriterionsFor(CriterionType type); + List getCriterionsFor(CriterionType type); + Set getCriterionsHoursGroup(HoursGroup hoursGroup); + + CriterionType getCriterionType(Criterion criterion); } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementController.java index eca0da448..a141a2775 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementController.java @@ -357,10 +357,13 @@ public class OrderElementController extends GenericForwardComposer { Set criterionTypes = new LinkedHashSet(); for (HoursGroup hoursGroup : orderElement.getHoursGroups()) { - Set criterions = hoursGroup.getCriterions(); + Set criterions = model + .getCriterionsHoursGroup(hoursGroup); for (Criterion criterion : criterions) { - CriterionType type = criterion.getType(); - criterionTypes.add(model.getCriterionTypeByName(type.getName())); + CriterionType type = model.getCriterionType(criterion); + CriterionType criterionTypeByName = model + .getCriterionTypeByName(type.getName()); + criterionTypes.add(criterionTypeByName); } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementModel.java index 5a6ee7005..a7d604a80 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementModel.java @@ -10,6 +10,7 @@ import org.navalplanner.business.orders.daos.IOrderElementDao; import org.navalplanner.business.orders.entities.HoursGroup; import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.resources.bootstrap.ICriterionsBootstrap; +import org.navalplanner.business.resources.daos.ICriterionTypeDAO; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.CriterionType; import org.navalplanner.business.resources.services.CriterionService; @@ -31,6 +32,9 @@ public class OrderElementModel implements IOrderElementModel { @Autowired private IOrderElementDao orderElementDao; + @Autowired + private ICriterionTypeDAO criterionTypeDao; + @Autowired private ICriterionsBootstrap criterionsBootstrap; @@ -55,7 +59,11 @@ public class OrderElementModel implements IOrderElementModel { Set transientHoursGroups = orderElement .getTransientHoursGroups(); orderElementDao.save(orderElement); - orderElement.forceLoadHourGroupsCriterions(); + + for (HoursGroup hoursGroup : orderElement.getHoursGroups()) { + hoursGroup.getCriterions().size(); + } + if (wasTransient) { orderElement.makeTransientAgain(); } @@ -95,4 +103,19 @@ public class OrderElementModel implements IOrderElementModel { public List getCriterionsFor(CriterionType type) { return (List) order.getCriterionsFor(type); } + + @Override + @Transactional(readOnly = true) + public Set getCriterionsHoursGroup(HoursGroup hoursGroup) { + return hoursGroup.getCriterions(); + } + + @Override + @Transactional(readOnly = true) + public CriterionType getCriterionType(Criterion criterion) { + CriterionType criterionType = criterion.getType(); + criterionTypeDao.save(criterionType); + criterionType.getName(); + return criterionType; + } } diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementTreeModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementTreeModel.java index e1d5b48ec..e994cca20 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementTreeModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/OrderElementTreeModel.java @@ -27,7 +27,7 @@ public class OrderElementTreeModel extends SimpleTreeModel { } private static SimpleTreeNode asNode(OrderElement orderElement) { - orderElement.forceLoadHourGroups(); + orderElement.getHoursGroups().size(); return new SimpleTreeNode(orderElement, asNodes(orderElement .getChildren())); }