ItEr19S04ArquitecturaServidorItEr18S04: Removed "forceLoad*" methods from classes related with OrderElement.

This commit is contained in:
Manuel Rego Casasnovas 2009-07-27 11:58:32 +02:00 committed by Javier Moran Rua
parent 4374ba9510
commit 91668fba1b
7 changed files with 42 additions and 46 deletions

View file

@ -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;

View file

@ -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();
}
}
}

View file

@ -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();
}
}
}

View file

@ -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<CriterionType> getCriterionTypes();
List<CriterionType> getCriterionTypes();
public CriterionType getCriterionTypeByName(String name);
CriterionType getCriterionTypeByName(String name);
public List<Criterion> getCriterionsFor(CriterionType type);
List<Criterion> getCriterionsFor(CriterionType type);
Set<Criterion> getCriterionsHoursGroup(HoursGroup hoursGroup);
CriterionType getCriterionType(Criterion criterion);
}

View file

@ -357,10 +357,13 @@ public class OrderElementController extends GenericForwardComposer {
Set<CriterionType> criterionTypes = new LinkedHashSet<CriterionType>();
for (HoursGroup hoursGroup : orderElement.getHoursGroups()) {
Set<Criterion> criterions = hoursGroup.getCriterions();
Set<Criterion> 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);
}
}

View file

@ -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<HoursGroup> 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<Criterion> getCriterionsFor(CriterionType type) {
return (List<Criterion>) order.getCriterionsFor(type);
}
@Override
@Transactional(readOnly = true)
public Set<Criterion> 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;
}
}

View file

@ -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()));
}