diff options
author | mkersten | 2006-11-02 02:10:14 +0000 |
---|---|---|
committer | mkersten | 2006-11-02 02:10:14 +0000 |
commit | 2e099055aec2c710cb3393b17db51e4d4d82fc54 (patch) | |
tree | 57f5a2e3d1d9cfd209a7772b36b7692692850534 /org.eclipse.mylyn.tasks.core | |
parent | 0d356e5e218f4cf123c36259d32e455349e4e5ea (diff) | |
download | org.eclipse.mylyn.tasks-2e099055aec2c710cb3393b17db51e4d4d82fc54.tar.gz org.eclipse.mylyn.tasks-2e099055aec2c710cb3393b17db51e4d4d82fc54.tar.xz org.eclipse.mylyn.tasks-2e099055aec2c710cb3393b17db51e4d4d82fc54.zip |
NEW - bug 162651: support search integration for JIRA
https://bugs.eclipse.org/bugs/show_bug.cgi?id=162651
Diffstat (limited to 'org.eclipse.mylyn.tasks.core')
2 files changed, 72 insertions, 33 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java index 501e32739..621e22ccc 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java @@ -16,24 +16,29 @@ package org.eclipse.mylar.tasks.core; */ public abstract class AbstractQueryHit implements ITaskListElement { + protected TaskList taskList; + + protected AbstractRepositoryTask task; + protected String repositoryUrl; - + protected String description; protected String priority; - + protected String id; protected boolean isNotified = false; private AbstractRepositoryQuery parent; - - protected AbstractQueryHit(String repositoryUrl, String description, String id) { + + protected AbstractQueryHit(TaskList taskList, String repositoryUrl, String description, String id) { + this.taskList = taskList; this.repositoryUrl = repositoryUrl; this.description = description; this.id = id; } - + public AbstractRepositoryQuery getParent() { return parent; } @@ -41,7 +46,7 @@ public abstract class AbstractQueryHit implements ITaskListElement { public void setParent(AbstractRepositoryQuery parent) { this.parent = parent; } - + public String getRepositoryUrl() { return repositoryUrl; } @@ -50,54 +55,94 @@ public abstract class AbstractQueryHit implements ITaskListElement { this.repositoryUrl = repositoryUrl; } - public abstract AbstractRepositoryTask getOrCreateCorrespondingTask(); - + public String getDescription() { + if (task != null) { + return task.getDescription(); + } else { + return description; + } + } + + public AbstractRepositoryTask getOrCreateCorrespondingTask() { + if (taskList == null) { + return null; + } + + ITask existingTask = taskList.getTask(getHandleIdentifier()); + + if (existingTask instanceof AbstractRepositoryTask) { + this.task = (AbstractRepositoryTask) existingTask; + } else { + task = createTask(); + taskList.addTask(task); + } + return task; + } + + protected abstract AbstractRepositoryTask createTask(); + /** - * @return null if there is no corresponding report + * @return null if there is no corresponding task */ - public abstract AbstractRepositoryTask getCorrespondingTask(); + public AbstractRepositoryTask getCorrespondingTask() { + return task; + } + + public void setCorrespondingTask(AbstractRepositoryTask task) { + this.task = task; + } public abstract boolean isCompleted(); - - public abstract void setCorrespondingTask(AbstractRepositoryTask task); public String getHandleIdentifier() { return AbstractRepositoryTask.getHandle(repositoryUrl, id); } + /** + * @return Unique identifier for this task on the corresponding server, must + * be robust to changing attributes on the task. + */ public String getId() { return id; } - + + /** + * @return An ID that can be presented to the user for identifying the task, + * override to return null if no such ID exists. + */ + public String getIdLabel() { + return getId(); + } + public boolean isNotified() { return isNotified; } - + public void setNotified(boolean notified) { isNotified = notified; } @Override public boolean equals(Object obj) { - if(!(obj instanceof AbstractQueryHit)) { + if (!(obj instanceof AbstractQueryHit)) { return false; } - AbstractQueryHit hit = (AbstractQueryHit)obj; - return hit.getHandleIdentifier().equals(this.getHandleIdentifier()); + AbstractQueryHit hit = (AbstractQueryHit) obj; + return hit.getHandleIdentifier().equals(this.getHandleIdentifier()); } @Override public int hashCode() { return this.getHandleIdentifier().hashCode(); } - + /** * @return the url of the hit without any additional login information etc. */ public String getUrl() { return ""; } - + public String getPriority() { AbstractRepositoryTask task = getCorrespondingTask(); if (task != null) { @@ -107,15 +152,6 @@ public abstract class AbstractQueryHit implements ITaskListElement { } } - public String getDescription() { - AbstractRepositoryTask task = getCorrespondingTask(); - if (task != null) { - return task.getDescription(); - } else { - return description; - } - } - public void setPriority(String priority) { this.priority = priority; } @@ -125,7 +161,7 @@ public abstract class AbstractQueryHit implements ITaskListElement { } public void setHandleIdentifier(String id) { - //ignore + // ignore } - + } diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java index ae35ceb49..6af10d2b3 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java @@ -129,8 +129,11 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer { } } + /** + * Override to create specific elements + */ public boolean canCreateElementFor(ITask task) { - return true; + return false; } public Element createTaskElement(ITask task, Document doc, Element parent) { @@ -452,7 +455,7 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer { } public boolean canCreateElementFor(AbstractRepositoryQuery query) { - return true; + return false; } public Element createQueryElement(AbstractRepositoryQuery query, Document doc, Element parent) { @@ -500,7 +503,7 @@ public class DelegatingTaskExternalizer implements ITaskListExternalizer { } public boolean canCreateElementFor(AbstractQueryHit queryHit) { - return true; + return false; } public Element createQueryHitElement(AbstractQueryHit queryHit, Document doc, Element parent) { |