diff options
author | spingel | 2008-05-06 08:06:12 +0000 |
---|---|---|
committer | spingel | 2008-05-06 08:06:12 +0000 |
commit | bf19e98ee4c2a7545bac2ed1a49fa50b5854e19f (patch) | |
tree | 79f249eeb96d160c592f05592102b6ff5a40d614 | |
parent | 593bd1068885aa9b29d54426ab43b6b3297b4ccb (diff) | |
download | org.eclipse.mylyn.tasks-bf19e98ee4c2a7545bac2ed1a49fa50b5854e19f.tar.gz org.eclipse.mylyn.tasks-bf19e98ee4c2a7545bac2ed1a49fa50b5854e19f.tar.xz org.eclipse.mylyn.tasks-bf19e98ee4c2a7545bac2ed1a49fa50b5854e19f.zip |
NEW - bug 229487: [api] manage task list structure internally
https://bugs.eclipse.org/bugs/show_bug.cgi?id=229487
7 files changed, 19 insertions, 17 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskCategory.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskCategory.java index 8048797e4..b80ddc32e 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskCategory.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskCategory.java @@ -35,7 +35,7 @@ public final class TaskCategory extends AbstractTaskCategory { public static AbstractTaskCategory getParentTaskCategory(ITask task) { AbstractTaskCategory category = null; if (task != null) { - for (ITaskElement container : task.getParentContainers()) { + for (ITaskElement container : ((AbstractTask) task).getParentContainers()) { if (container instanceof AbstractTaskCategory) { category = (AbstractTaskCategory) container; } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskList.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskList.java index dbed6a5b9..bcf808756 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskList.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/TaskList.java @@ -117,13 +117,14 @@ public class TaskList implements ISchedulingRule, ITaskList { addTask(task, null); } - public boolean addTask(ITask task, AbstractTaskContainer container) { + public boolean addTask(ITask itask, AbstractTaskContainer container) { + AbstractTask task = (AbstractTask) itask; Assert.isNotNull(task); Assert.isLegal(!(container instanceof UnmatchedTaskContainer)); try { lock(); - task = getOrCreateTask((AbstractTask) task); + task = getOrCreateTask(task); if (container == null) { container = getUnmatchedContainer(task.getRepositoryUrl()); } else { @@ -136,7 +137,7 @@ public class TaskList implements ISchedulingRule, ITaskList { } // ensure that we don't create cycles - if (((AbstractTask) task).contains(container.getHandleIdentifier())) { + if ((task).contains(container.getHandleIdentifier())) { return false; } @@ -153,10 +154,10 @@ public class TaskList implements ISchedulingRule, ITaskList { } } - removeOrphan((AbstractTask) task, delta); + removeOrphan(task, delta); - ((AbstractTask) task).addParentContainer(container); - container.internalAddChild((AbstractTask) task); + (task).addParentContainer(container); + container.internalAddChild(task); delta.add(new TaskContainerDelta(task, TaskContainerDelta.Kind.CHANGED)); delta.add(new TaskContainerDelta(container, TaskContainerDelta.Kind.CHANGED)); } finally { @@ -206,7 +207,9 @@ public class TaskList implements ISchedulingRule, ITaskList { * Task is removed from all containers. Currently subtasks are not deleted but rather are rather potentially * orphaned. */ - public void deleteTask(ITask task) { + public void deleteTask(ITask itask) { + Assert.isNotNull(itask); + AbstractTask task = (AbstractTask) itask; try { lock(); @@ -217,7 +220,7 @@ public class TaskList implements ISchedulingRule, ITaskList { // remove this task as a parent for all subtasks for (ITask child : task.getChildren()) { - removeFromContainerInternal((AbstractTaskContainer) task, child, delta); + removeFromContainerInternal(task, child, delta); addOrphan((AbstractTask) child, delta); } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java index cc8a3680d..498c4053f 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/ITask.java @@ -9,10 +9,8 @@ package org.eclipse.mylyn.tasks.core; import java.util.Date; -import java.util.Set; import org.eclipse.core.runtime.IStatus; -import org.eclipse.mylyn.internal.tasks.core.AbstractTaskContainer; /** * @author Mik Kersten @@ -94,8 +92,6 @@ public interface ITask extends ITaskElement { public abstract String getOwner(); - public abstract Set<AbstractTaskContainer> getParentContainers(); - public abstract String getPriority(); public abstract String getRepositoryUrl(); diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/OrphanedTasksTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/OrphanedTasksTest.java index 7773299f8..dc7a3c2bf 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/OrphanedTasksTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/OrphanedTasksTest.java @@ -13,6 +13,7 @@ import java.util.Set; import junit.framework.TestCase; import org.eclipse.mylyn.internal.tasks.core.AbstractRepositoryQuery; +import org.eclipse.mylyn.internal.tasks.core.AbstractTask; import org.eclipse.mylyn.internal.tasks.core.LocalRepositoryConnector; import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.core.TaskCategory; @@ -57,7 +58,7 @@ public class OrphanedTasksTest extends TestCase { assertTrue(tasks.isEmpty()); ITask localTask = TasksUiInternal.createNewLocalTask("Task 1"); assertNotNull(localTask); - assertEquals(1, localTask.getParentContainers().size()); + assertEquals(1, ((AbstractTask) localTask).getParentContainers().size()); } /** diff --git a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java index b5b25a92a..0f66c8f40 100644 --- a/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java +++ b/org.eclipse.mylyn.tasks.tests/src/org/eclipse/mylyn/tasks/tests/TaskRepositoryManagerTest.java @@ -17,6 +17,7 @@ import junit.framework.TestCase; import org.eclipse.mylyn.commons.net.AuthenticationCredentials; import org.eclipse.mylyn.commons.net.AuthenticationType; +import org.eclipse.mylyn.internal.tasks.core.AbstractTask; import org.eclipse.mylyn.internal.tasks.core.RepositoryTaskHandleUtil; import org.eclipse.mylyn.internal.tasks.core.TaskRepositoryManager; import org.eclipse.mylyn.internal.tasks.core.deprecated.AbstractLegacyRepositoryConnector; @@ -85,7 +86,7 @@ public class TaskRepositoryManagerTest extends TestCase { TasksUiPlugin.getTaskListManager().getTaskList().deleteQuery(query); ITask task2 = TasksUiPlugin.getTaskListManager().getTaskList().getTask(task.getHandleIdentifier()); assertNotNull(task2); - assertEquals(1, task2.getParentContainers().size()); + assertEquals(1, ((AbstractTask) task2).getParentContainers().size()); } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskWorkingSetFilter.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskWorkingSetFilter.java index c0768d9a6..ffa350548 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskWorkingSetFilter.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/TaskWorkingSetFilter.java @@ -10,6 +10,7 @@ package org.eclipse.mylyn.internal.tasks.ui; import java.util.Arrays; import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.mylyn.internal.tasks.core.AbstractTask; import org.eclipse.mylyn.internal.tasks.core.LocalTask; import org.eclipse.mylyn.internal.tasks.core.ScheduledTaskContainer; import org.eclipse.mylyn.tasks.core.ITask; @@ -49,7 +50,7 @@ public class TaskWorkingSetFilter extends AbstractTaskListFilter { } } if (parent instanceof ScheduledTaskContainer && element instanceof ITask) { - for (ITaskElement query : ((ITask) element).getParentContainers()) { + for (ITaskElement query : ((AbstractTask) element).getParentContainers()) { if (isContainedInWorkingSet(query)) { return true; } diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java index acbca05ad..033b0d3b8 100644 --- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java +++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/views/TaskListContentProvider.java @@ -67,7 +67,7 @@ public class TaskListContentProvider extends AbstractTaskListContentProvider { return parent; } - Set<AbstractTaskContainer> parents = task.getParentContainers(); + Set<AbstractTaskContainer> parents = ((AbstractTask) task).getParentContainers(); Iterator<AbstractTaskContainer> it = parents.iterator(); if (it.hasNext()) { return parents.iterator().next(); |