ItEr17S10CUCreacionProxectoPlanificacionItEr16S12: Adding abstract methods getChildren and isLeaf to Task.

This commit is contained in:
Óscar González Fernández 2009-07-16 10:41:00 +02:00 committed by Javier Moran Rua
parent c632841197
commit 4a7568fcec
5 changed files with 41 additions and 18 deletions

View file

@ -1,5 +1,7 @@
package org.navalplanner.business.planner.entities;
import java.util.List;
import org.apache.commons.lang.Validate;
import org.hibernate.validator.NotNull;
import org.navalplanner.business.orders.entities.HoursGroup;
@ -36,4 +38,14 @@ public class Task extends TaskElement {
return hoursGroup.getWorkingHours();
}
@Override
public boolean isLeaf() {
return true;
}
@Override
public List<TaskElement> getChildren() {
throw new UnsupportedOperationException();
}
}

View file

@ -3,6 +3,7 @@ package org.navalplanner.business.planner.entities;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.commons.lang.Validate;
@ -83,4 +84,8 @@ public abstract class TaskElement {
return id;
}
public abstract boolean isLeaf();
public abstract List<TaskElement> getChildren();
}

View file

@ -13,13 +13,19 @@ public class TaskGroup extends TaskElement {
private List<TaskElement> taskElements = new ArrayList<TaskElement>();
public List<TaskElement> getTaskElements() {
return Collections.unmodifiableList(taskElements);
}
public void addTaskElement(TaskElement task) {
Validate.notNull(task);
taskElements.add(task);
}
@Override
public List<TaskElement> getChildren() {
return Collections.unmodifiableList(taskElements);
}
@Override
public boolean isLeaf() {
return false;
}
}

View file

@ -25,16 +25,16 @@ public class TaskGroupTest {
@Test
public void taskGroupHasManyTaskElements() {
List<TaskElement> tasks = taskGroup.getTaskElements();
List<TaskElement> tasks = taskGroup.getChildren();
assertTrue("a task group has no task elements initially", tasks
.isEmpty());
TaskElement child1 = new Task();
taskGroup.addTaskElement(child1);
TaskGroup child2 = new TaskGroup();
taskGroup.addTaskElement(child2);
List<TaskElement> taskElements = taskGroup.getTaskElements();
List<TaskElement> taskElements = taskGroup.getChildren();
assertThat(taskElements.size(), equalTo(2));
assertThat(taskGroup.getTaskElements(), equalTo(Arrays.asList(child1,
assertThat(taskGroup.getChildren(), equalTo(Arrays.asList(child1,
child2)));
}
@ -45,6 +45,6 @@ public class TaskGroupTest {
@Test(expected = UnsupportedOperationException.class)
public void taskElementsCollectionCannotBeModified() {
taskGroup.getTaskElements().set(0, null);
taskGroup.getChildren().set(0, null);
}
}

View file

@ -141,7 +141,7 @@ public class TaskElementServiceTest {
flushAndEvict(taskGroup);
TaskGroup reloaded = (TaskGroup) taskElementService.findById(taskGroup
.getId());
List<TaskElement> taskElements = reloaded.getTaskElements();
List<TaskElement> taskElements = reloaded.getChildren();
assertThat(taskElements.size(), equalTo(2));
assertThat(taskElements.get(0).getId(), equalTo(child1.getId()));
assertThat(taskElements.get(1).getId(), equalTo(child2.getId()));
@ -161,14 +161,14 @@ public class TaskElementServiceTest {
flushAndEvict(taskGroup);
TaskGroup reloaded = (TaskGroup) taskElementService.findById(taskGroup
.getId());
assertThat(reloaded.getTaskElements().get(0)
assertThat(reloaded.getChildren().get(0)
.getDependenciesWithThisOrigin().size(), equalTo(1));
assertTrue(reloaded.getTaskElements().get(0)
assertTrue(reloaded.getChildren().get(0)
.getDependenciesWithThisDestination().isEmpty());
assertThat(reloaded.getTaskElements().get(1)
assertThat(reloaded.getChildren().get(1)
.getDependenciesWithThisDestination().size(), equalTo(1));
assertTrue(reloaded.getTaskElements().get(1)
assertTrue(reloaded.getChildren().get(1)
.getDependenciesWithThisOrigin().isEmpty());
}
@ -217,8 +217,8 @@ public class TaskElementServiceTest {
assertThat(group.getOrderElement(),
equalTo((OrderElement) orderLineGroup));
assertThat(group.getTaskElements().size(), equalTo(1));
assertThat(group.getTaskElements().get(0).getOrderElement(),
assertThat(group.getChildren().size(), equalTo(1));
assertThat(group.getChildren().get(0).getOrderElement(),
equalTo((OrderElement) orderLine));
}
@ -249,10 +249,10 @@ public class TaskElementServiceTest {
TaskGroup group = (TaskGroup) taskElement;
assertThat(group.getOrderElement(), equalTo((OrderElement) orderLine));
assertThat(group.getTaskElements().size(), equalTo(2));
assertThat(group.getChildren().size(), equalTo(2));
Task child1 = (Task) group.getTaskElements().get(0);
Task child2 = (Task) group.getTaskElements().get(1);
Task child1 = (Task) group.getChildren().get(0);
Task child2 = (Task) group.getChildren().get(1);
assertThat(child1.getOrderElement(), equalTo((OrderElement) orderLine));
assertThat(child2.getOrderElement(), equalTo((OrderElement) orderLine));