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