Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormkersten2006-11-02 02:10:14 +0000
committermkersten2006-11-02 02:10:14 +0000
commit2e099055aec2c710cb3393b17db51e4d4d82fc54 (patch)
tree57f5a2e3d1d9cfd209a7772b36b7692692850534 /org.eclipse.mylyn.tasks.core
parent0d356e5e218f4cf123c36259d32e455349e4e5ea (diff)
downloadorg.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')
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/AbstractQueryHit.java96
-rw-r--r--org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/DelegatingTaskExternalizer.java9
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) {

Back to the top