ItEr34S08ValidacionEProbasFuncionaisItEr33S08: Adding the schedule state to the parent must be done after the children has been reorganizated

This commit is contained in:
Óscar González Fernández 2009-11-16 00:57:52 +01:00
parent fc24ce7cc6
commit 3bcebae1b4

View file

@ -23,6 +23,7 @@ package org.navalplanner.business.orders.entities;
import java.util.Collections;
import java.util.List;
/**
* Implementation of {@link IOrderLineGroup}. <br />
* @author Óscar González Fernández <ogonzalez@igalia.com>
@ -52,20 +53,21 @@ public class OrderLineGroupManipulator implements IOrderLineGroup {
public void add(OrderElement orderElement) {
setParentIfRequired(orderElement);
orderElements.add(orderElement);
addSchedulingStateToParent(orderElement);
}
private void setParentIfRequired(OrderElement orderElement) {
if (this.parent != null) {
orderElement.setParent(this.parent);
addSchedulingStateToParent(orderElement);
}
}
private void addSchedulingStateToParent(OrderElement orderElement) {
SchedulingState schedulingState = orderElement.getSchedulingState();
removeSchedulingStateFromParent(orderElement);
this.parent.getSchedulingState().add(
schedulingState);
if (this.parent != null) {
SchedulingState schedulingState = orderElement.getSchedulingState();
removeSchedulingStateFromParent(orderElement);
this.parent.getSchedulingState().add(schedulingState);
}
}
private void removeSchedulingStateFromParent(OrderElement orderElement) {
@ -85,6 +87,7 @@ public class OrderLineGroupManipulator implements IOrderLineGroup {
public void replace(OrderElement oldOrderElement, OrderElement orderElement) {
setParentIfRequired(orderElement);
Collections.replaceAll(orderElements, oldOrderElement, orderElement);
addSchedulingStateToParent(orderElement);
}
@Override
@ -109,6 +112,7 @@ public class OrderLineGroupManipulator implements IOrderLineGroup {
public void add(int position, OrderElement orderElement) {
setParentIfRequired(orderElement);
orderElements.add(position, orderElement);
addSchedulingStateToParent(orderElement);
}
}