blob: de31b9f22f33f2664b0dbc02c71c6e56f7c440d5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004, 2011 Tasktop Technologies and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* https://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.internal.tasks.core;
import java.util.Set;
import org.eclipse.mylyn.tasks.core.IRepositoryElement;
import org.eclipse.mylyn.tasks.core.ITask;
/**
* @author Steffen Pingel
* @author Robert Elves
* @author Mik Kersten
* @since 3.0
*/
public interface ITaskList {
public abstract void addChangeListener(ITaskListChangeListener listener);
public abstract void addQuery(RepositoryQuery query) throws IllegalArgumentException;
/**
* Add orphaned task to the task list
*/
public abstract void addTask(ITask task) throws IllegalArgumentException;
/**
* Precondition: {@code container} already exists in tasklist (be it a parent task, category, or query) If the
* parentContainer is null the task is considered an orphan and added to the appropriate repository's orphaned tasks
* container.
*
* @param task
* to be added
* @param container
* task container, query or parent task must not be null
*/
public abstract boolean addTask(ITask task, AbstractTaskContainer parentContainer);
public abstract void deleteCategory(AbstractTaskCategory category);
public abstract void deleteQuery(RepositoryQuery query);
/**
* TODO: refactor around querying containers for their tasks Task is removed from all containers: root, archive,
* category, and orphan bin Currently subtasks are not deleted but rather are rather potentially orphaned
*/
public abstract void deleteTask(ITask task);
public abstract Set<AbstractTaskCategory> getCategories();
public abstract Set<RepositoryQuery> getQueries();
/**
* @since 2.0
*/
public abstract ITask getTask(String repositoryUrl, String taskId);
/**
* @param task
* list element
*/
public abstract void notifyElementChanged(IRepositoryElement element);
public abstract void notifySynchronizationStateChanged(IRepositoryElement element);
public abstract void removeChangeListener(ITaskListChangeListener listener);
/**
* @since 3.0
*/
public abstract void removeFromContainer(AbstractTaskContainer container, ITask task);
}