Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DelegatingTaskExternalizer.java')
-rw-r--r--org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DelegatingTaskExternalizer.java140
1 files changed, 64 insertions, 76 deletions
diff --git a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DelegatingTaskExternalizer.java b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DelegatingTaskExternalizer.java
index 843e12bf4..5aa96d2c3 100644
--- a/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DelegatingTaskExternalizer.java
+++ b/org.eclipse.mylyn.tasks.ui/src/org/eclipse/mylyn/internal/tasks/ui/util/DelegatingTaskExternalizer.java
@@ -63,11 +63,11 @@ final class DelegatingTaskExternalizer {
static final String KEY_NOTIFIED_INCOMING = "NotifiedIncoming";
static final String KEY_NAME = "Name";
-
+
static final String KEY_LABEL = "Label";
static final String KEY_HANDLE = "Handle";
-
+
static final String KEY_REPOSITORY_URL = "RepositoryUrl";
static final String KEY_CATEGORY = "Category";
@@ -103,7 +103,7 @@ final class DelegatingTaskExternalizer {
static final String VAL_TRUE = "true";
static final String KEY_DATE_END = "EndDate";
-
+
static final String KEY_QUERY_HIT = "QueryHit";
static final String KEY_DATE_CREATION = "CreationDate";
@@ -126,7 +126,7 @@ final class DelegatingTaskExternalizer {
static final String KEY_OWNER = "Owner";
static final String KEY_STALE = "Stale";
-
+
static final String KEY_LAST_REFRESH = "LastRefreshTimeStamp";
private List<AbstractTaskListFactory> factories = new ArrayList<AbstractTaskListFactory>();
@@ -163,7 +163,7 @@ final class DelegatingTaskExternalizer {
break;
}
}
-
+
String taskTagName;
if (factory != null) {
taskTagName = factory.getTaskElementName();
@@ -172,11 +172,9 @@ final class DelegatingTaskExternalizer {
return null;
// taskTagName = getTaskTagName();
}
- Element node = doc.createElement(taskTagName);
- if (factory != null) {
- factory.setAdditionalAttributes(task, node);
- }
-
+ Element node = doc.createElement(taskTagName);
+ factory.setAdditionalAttributes(task, node);
+
node.setAttribute(KEY_LABEL, stripControlCharacters(task.getSummary()));
node.setAttribute(KEY_HANDLE, task.getHandleIdentifier());
node.setAttribute(KEY_REPOSITORY_URL, task.getRepositoryUrl());
@@ -230,27 +228,25 @@ final class DelegatingTaskExternalizer {
node.setAttribute(KEY_STALE, VAL_FALSE);
}
- if (task instanceof AbstractTask) {
- AbstractTask abstractTask = (AbstractTask) task;
- if (abstractTask.getLastReadTimeStamp() != null) {
- node.setAttribute(KEY_LAST_MOD_DATE, abstractTask.getLastReadTimeStamp());
- }
+ AbstractTask abstractTask = task;
+ if (abstractTask.getLastReadTimeStamp() != null) {
+ node.setAttribute(KEY_LAST_MOD_DATE, abstractTask.getLastReadTimeStamp());
+ }
- if (abstractTask.isNotified()) {
- node.setAttribute(KEY_NOTIFIED_INCOMING, VAL_TRUE);
- } else {
- node.setAttribute(KEY_NOTIFIED_INCOMING, VAL_FALSE);
- }
+ if (abstractTask.isNotified()) {
+ node.setAttribute(KEY_NOTIFIED_INCOMING, VAL_TRUE);
+ } else {
+ node.setAttribute(KEY_NOTIFIED_INCOMING, VAL_FALSE);
+ }
- if (abstractTask.getSynchronizationState() != null) {
- node.setAttribute(KEY_SYNC_STATE, abstractTask.getSynchronizationState().toString());
- } else {
- node.setAttribute(KEY_SYNC_STATE, RepositoryTaskSyncState.SYNCHRONIZED.toString());
- }
+ if (abstractTask.getSynchronizationState() != null) {
+ node.setAttribute(KEY_SYNC_STATE, abstractTask.getSynchronizationState().toString());
+ } else {
+ node.setAttribute(KEY_SYNC_STATE, RepositoryTaskSyncState.SYNCHRONIZED.toString());
+ }
- if (abstractTask.getOwner() != null) {
- node.setAttribute(KEY_OWNER, abstractTask.getOwner());
- }
+ if (abstractTask.getOwner() != null) {
+ node.setAttribute(KEY_OWNER, abstractTask.getOwner());
}
for (AbstractTask t : task.getChildren()) {
@@ -269,7 +265,7 @@ final class DelegatingTaskExternalizer {
String handle = element.getAttribute(KEY_HANDLE);
AbstractTask subTask = tasklist.getTask(handle);
if (subTask != null) {
- tasklist.addTask(subTask, (AbstractTask) task);
+ tasklist.addTask(subTask, task);
}
}
}
@@ -386,6 +382,9 @@ final class DelegatingTaskExternalizer {
private void readTaskInfo(AbstractTask task, TaskList taskList, Element element, AbstractTask parent,
AbstractTaskCategory legacyCategory) throws TaskExternalizationException {
+ if (task == null) {
+ return;
+ }
String categoryHandle = null;
if (element.hasAttribute(KEY_CATEGORY)) {
@@ -404,11 +403,7 @@ final class DelegatingTaskExternalizer {
task.addParentContainer(legacyCategory);
legacyCategory.internalAddChild(task);
} else if (legacyCategory == null && parent == null) {
- if (task instanceof AbstractTask) {
- taskList.internalAddTask(task, taskList.getArchiveContainer());
- } else {
- taskList.internalAddRootTask(task);
- }
+ taskList.internalAddTask(task, taskList.getArchiveContainer());
} else {
taskList.internalAddTask(task, taskList.getArchiveContainer());
}
@@ -487,39 +482,37 @@ final class DelegatingTaskExternalizer {
task.setStale(false);
}
- if (task instanceof AbstractTask) {
- AbstractTask abstractTask = (AbstractTask) task;
- abstractTask.setSynchronizing(false);
-
- if (element.hasAttribute(DelegatingTaskExternalizer.KEY_REPOSITORY_URL)) {
- abstractTask.setRepositoryUrl(element.getAttribute(DelegatingTaskExternalizer.KEY_REPOSITORY_URL));
- }
+ AbstractTask abstractTask = task;
+ abstractTask.setSynchronizing(false);
- if (element.hasAttribute(KEY_LAST_MOD_DATE) && !element.getAttribute(KEY_LAST_MOD_DATE).equals("")) {
- abstractTask.setLastReadTimeStamp(element.getAttribute(KEY_LAST_MOD_DATE));
- }
+ if (element.hasAttribute(DelegatingTaskExternalizer.KEY_REPOSITORY_URL)) {
+ abstractTask.setRepositoryUrl(element.getAttribute(DelegatingTaskExternalizer.KEY_REPOSITORY_URL));
+ }
- if (element.hasAttribute(KEY_OWNER)) {
- abstractTask.setOwner(element.getAttribute(KEY_OWNER));
- }
+ if (element.hasAttribute(KEY_LAST_MOD_DATE) && !element.getAttribute(KEY_LAST_MOD_DATE).equals("")) {
+ abstractTask.setLastReadTimeStamp(element.getAttribute(KEY_LAST_MOD_DATE));
+ }
- if (VAL_TRUE.equals(element.getAttribute(KEY_NOTIFIED_INCOMING))) {
- abstractTask.setNotified(true);
- } else {
- abstractTask.setNotified(false);
- }
+ if (element.hasAttribute(KEY_OWNER)) {
+ abstractTask.setOwner(element.getAttribute(KEY_OWNER));
+ }
- if (element.hasAttribute(KEY_SYNC_STATE)) {
- String syncState = element.getAttribute(KEY_SYNC_STATE);
- if (syncState.compareTo(RepositoryTaskSyncState.SYNCHRONIZED.toString()) == 0) {
- abstractTask.setSynchronizationState(RepositoryTaskSyncState.SYNCHRONIZED);
- } else if (syncState.compareTo(RepositoryTaskSyncState.INCOMING.toString()) == 0) {
- abstractTask.setSynchronizationState(RepositoryTaskSyncState.INCOMING);
- } else if (syncState.compareTo(RepositoryTaskSyncState.OUTGOING.toString()) == 0) {
- abstractTask.setSynchronizationState(RepositoryTaskSyncState.OUTGOING);
- } else if (syncState.compareTo(RepositoryTaskSyncState.CONFLICT.toString()) == 0) {
- abstractTask.setSynchronizationState(RepositoryTaskSyncState.CONFLICT);
- }
+ if (VAL_TRUE.equals(element.getAttribute(KEY_NOTIFIED_INCOMING))) {
+ abstractTask.setNotified(true);
+ } else {
+ abstractTask.setNotified(false);
+ }
+
+ if (element.hasAttribute(KEY_SYNC_STATE)) {
+ String syncState = element.getAttribute(KEY_SYNC_STATE);
+ if (syncState.compareTo(RepositoryTaskSyncState.SYNCHRONIZED.toString()) == 0) {
+ abstractTask.setSynchronizationState(RepositoryTaskSyncState.SYNCHRONIZED);
+ } else if (syncState.compareTo(RepositoryTaskSyncState.INCOMING.toString()) == 0) {
+ abstractTask.setSynchronizationState(RepositoryTaskSyncState.INCOMING);
+ } else if (syncState.compareTo(RepositoryTaskSyncState.OUTGOING.toString()) == 0) {
+ abstractTask.setSynchronizationState(RepositoryTaskSyncState.OUTGOING);
+ } else if (syncState.compareTo(RepositoryTaskSyncState.CONFLICT.toString()) == 0) {
+ abstractTask.setSynchronizationState(RepositoryTaskSyncState.CONFLICT);
}
}
@@ -596,26 +589,21 @@ final class DelegatingTaskExternalizer {
for (AbstractTaskListFactory currentFactory : factories) {
if (currentFactory.canCreate(query)) {
factory = currentFactory;
- if (factory != null) {
- queryTagName = factory.getQueryElementName(query);
- break;
- }
+ queryTagName = factory.getQueryElementName(query);
+ break;
}
}
- if (factory == null || queryTagName == null) {
+ if (factory == null || queryTagName == null) {
StatusHandler.log("No externalizer for query: " + query, this);
return null;
// queryTagName = getQueryTagNameForElement(query);
}
-
+
// String queryTagName = getQueryTagNameForElement(query);
-
+
Element node = doc.createElement(queryTagName);
-
- if (factory != null) {
- factory.setAdditionalAttributes(query, node);
- }
-
+ factory.setAdditionalAttributes(query, node);
+
node.setAttribute(DelegatingTaskExternalizer.KEY_NAME, query.getSummary());
node.setAttribute(AbstractTaskListFactory.KEY_QUERY_STRING, query.getUrl());
node.setAttribute(DelegatingTaskExternalizer.KEY_REPOSITORY_URL, query.getRepositoryUrl());
@@ -655,7 +643,7 @@ final class DelegatingTaskExternalizer {
node.setAttribute(KEY_HANDLE, queryHit.getHandleIdentifier());
parent.appendChild(node);
return node;
- }
+ }
// public boolean canReadQueryHit(Node node) {
// return false;

Back to the top