diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Task.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Task.java index 5dc03afe1..f864c77ae 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Task.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/Task.java @@ -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 getChildren() { + throw new UnsupportedOperationException(); + } + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java index 744959c9c..2fb03ac30 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskElement.java @@ -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 getChildren(); + } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskGroup.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskGroup.java index abfa15d72..ad2d408d2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskGroup.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/TaskGroup.java @@ -13,13 +13,19 @@ public class TaskGroup extends TaskElement { private List taskElements = new ArrayList(); - public List getTaskElements() { - return Collections.unmodifiableList(taskElements); - } - public void addTaskElement(TaskElement task) { Validate.notNull(task); taskElements.add(task); } + @Override + public List getChildren() { + return Collections.unmodifiableList(taskElements); + } + + @Override + public boolean isLeaf() { + return false; + } + } diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/TaskGroupTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/TaskGroupTest.java index 7b292c3a6..d54b919dc 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/TaskGroupTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/entities/TaskGroupTest.java @@ -25,16 +25,16 @@ public class TaskGroupTest { @Test public void taskGroupHasManyTaskElements() { - List tasks = taskGroup.getTaskElements(); + List 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 taskElements = taskGroup.getTaskElements(); + List 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); } } diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/services/TaskElementServiceTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/services/TaskElementServiceTest.java index c8cbe43c7..2fba5bb02 100644 --- a/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/services/TaskElementServiceTest.java +++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/planner/services/TaskElementServiceTest.java @@ -141,7 +141,7 @@ public class TaskElementServiceTest { flushAndEvict(taskGroup); TaskGroup reloaded = (TaskGroup) taskElementService.findById(taskGroup .getId()); - List taskElements = reloaded.getTaskElements(); + List 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));