Bug 575365: [Ltk-Issues] Add implementation for TaskIssueConfig.equals

Change-Id: I63e16f3491942faf82d148fa23ddfc0a91a02cee
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/TaskIssueConfig.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/TaskIssueConfig.java
index 47cddf6..4035d18 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/TaskIssueConfig.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/TaskIssueConfig.java
@@ -14,6 +14,8 @@
 
 package org.eclipse.statet.ltk.issues.core;
 
+import java.util.Objects;
+
 import org.eclipse.statet.jcommons.collections.ImCollections;
 import org.eclipse.statet.jcommons.collections.ImList;
 import org.eclipse.statet.jcommons.lang.Immutable;
@@ -51,6 +53,26 @@
 	}
 	
 	
+	@Override
+	public int hashCode() {
+		return this.taskTags.hashCode();
+	}
+	
+	@Override
+	public boolean equals(final @Nullable Object obj) {
+		if (this == obj) {
+			return true;
+		}
+		if (obj instanceof TaskIssueConfig) {
+			final var other= (TaskIssueConfig)obj;
+			return (this.taskTags.equals(other.getTaskTags())
+					&& Objects.equals(getDefaultTaskTag(), other.getDefaultTaskTag()) );
+		}
+		return super.equals(obj);
+	}
+	
+	
+	
 	private static final PreferenceObjectDef<TaskIssueConfig> CONFIG_PREF_FACTORY=
 			PreferenceObjectDef.createFactory(TaskIssueConfig.class, ImCollections.newSet(
 							Issues.TASK_TAG_QUALIFIER ),
diff --git a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/BasicTaskTag.java b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/BasicTaskTag.java
index 69b5a65..54615e4 100644
--- a/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/BasicTaskTag.java
+++ b/ltk/org.eclipse.statet.ltk.core/src/org/eclipse/statet/ltk/issues/core/impl/BasicTaskTag.java
@@ -15,6 +15,7 @@
 package org.eclipse.statet.ltk.issues.core.impl;
 
 import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.lang.Nullable;
 
 import org.eclipse.statet.ltk.issues.core.TaskPriority;
 import org.eclipse.statet.ltk.issues.core.TaskTag;
@@ -52,6 +53,19 @@
 	}
 	
 	@Override
+	public boolean equals(@Nullable final Object obj) {
+		if (this == obj) {
+			return true;
+		}
+		if (obj instanceof TaskTag) {
+			final var other= (TaskTag)obj;
+			return (this.keyword.equals(other.getKeyword())
+					&& this.priority == other.getPriority() );
+		}
+		return false;
+	}
+	
+	@Override
 	public String toString() {
 		return this.keyword;
 	}