Improve equals/hashCode implementation

Using Objects utils

Change-Id: Ib6061d8a7c4e015cb9df6f547e706377a47b33ee
Signed-off-by: Mickael Istria <mistria@redhat.com>
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildCommand.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildCommand.java
index 9dc4274..d44b152 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildCommand.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildCommand.java
@@ -16,8 +16,7 @@
  *******************************************************************************/
 package org.eclipse.core.internal.events;
 
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 import org.eclipse.core.internal.resources.ModelObject;
 import org.eclipse.core.resources.*;
 import org.eclipse.core.runtime.*;
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildContext.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildContext.java
index 89b426e..6373117 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildContext.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/events/BuildContext.java
@@ -84,21 +84,13 @@
 		return builtAfter;
 	}
 
-	private static final int hashCode(IBuildConfiguration[] array) {
-		final int prime = 31;
-		int result = 1;
-		for (int i = 0; i < array.length; i++)
-			result = prime * result + array[i].hashCode();
-		return result;
-	}
-
 	@Override
 	public int hashCode() {
 		final int prime = 31;
 		int result = 1;
 		result = prime * result + buildConfiguration.hashCode();
-		result = prime * result + hashCode(requestedBuilt);
-		result = prime * result + hashCode(buildOrder);
+		result = prime * result + Arrays.hashCode(requestedBuilt);
+		result = prime * result + Arrays.hashCode(buildOrder);
 		return result;
 	}
 
@@ -111,13 +103,7 @@
 		if (getClass() != obj.getClass())
 			return false;
 		BuildContext other = (BuildContext) obj;
-		if (!buildConfiguration.equals(other.buildConfiguration))
-			return false;
-		if (!Arrays.equals(requestedBuilt, other.requestedBuilt))
-			return false;
-		if (!Arrays.equals(buildOrder, other.buildOrder))
-			return false;
-		return true;
+		return buildConfiguration.equals(other.buildConfiguration) && Arrays.equals(requestedBuilt, other.requestedBuilt) && Arrays.equals(buildOrder, other.buildOrder);
 	}
 
 }
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/BuildConfiguration.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/BuildConfiguration.java
index 9450bf9..57ba43a 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/BuildConfiguration.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/BuildConfiguration.java
@@ -13,6 +13,7 @@
  *******************************************************************************/
 package org.eclipse.core.internal.resources;
 
+import java.util.Objects;
 import org.eclipse.core.resources.IBuildConfiguration;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
@@ -73,25 +74,15 @@
 		if (getClass() != obj.getClass())
 			return false;
 		BuildConfiguration other = (BuildConfiguration) obj;
-		if (name == null) {
-			if (other.name != null)
-				return false;
-		} else if (!name.equals(other.name))
-			return false;
-		if (project == null) {
-			if (other.project != null)
-				return false;
-		} else if (!project.equals(other.project))
-			return false;
-		return true;
+		return Objects.equals(this.name, other.name) && Objects.equals(this.project, other.project);
 	}
 
 	@Override
 	public int hashCode() {
 		final int prime = 31;
 		int result = 1;
-		result = prime * result + ((name == null) ? 0 : name.hashCode());
-		result = prime * result + ((project == null) ? 0 : project.hashCode());
+		result = prime * result + Objects.hashCode(name);
+		result = prime * result + Objects.hashCode(project);
 		return result;
 	}
 
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/FilterDescription.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/FilterDescription.java
index 5cdec58..84015a2 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/FilterDescription.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/FilterDescription.java
@@ -101,10 +101,7 @@
 
 	@Override
 	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + (int) (id ^ (id >>> 32));
-		return result;
+		return Long.hashCode(id);
 	}
 
 	@Override
diff --git a/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/FileInfoMatcherDescription.java b/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/FileInfoMatcherDescription.java
index 8026116..307ac44 100644
--- a/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/FileInfoMatcherDescription.java
+++ b/bundles/org.eclipse.core.resources/src/org/eclipse/core/resources/FileInfoMatcherDescription.java
@@ -13,6 +13,8 @@
  *******************************************************************************/
 package org.eclipse.core.resources;
 
+import java.util.Objects;
+
 /**
  * A description of a file info matcher.
  * @since 3.6
@@ -41,8 +43,8 @@
 	public int hashCode() {
 		final int prime = 31;
 		int result = 1;
-		result = prime * result + ((arguments == null) ? 0 : arguments.hashCode());
-		result = prime * result + ((id == null) ? 0 : id.hashCode());
+		result = prime * result + Objects.hashCode(arguments);
+		result = prime * result + Objects.hashCode(id);
 		return result;
 	}
 
@@ -55,16 +57,6 @@
 		if (getClass() != obj.getClass())
 			return false;
 		FileInfoMatcherDescription other = (FileInfoMatcherDescription) obj;
-		if (arguments == null) {
-			if (other.arguments != null)
-				return false;
-		} else if (!arguments.equals(other.arguments))
-			return false;
-		if (id == null) {
-			if (other.id != null)
-				return false;
-		} else if (!id.equals(other.id))
-			return false;
-		return true;
+		return Objects.equals(this.arguments, other.arguments) && Objects.equals(this.id, other.id);
 	}
 }
\ No newline at end of file