[Gradle] Dependencies graph: model classes hashcode/equals IDEA-218166
authorVladislav.Soroka <Vladislav.Soroka@jetbrains.com>
Mon, 20 Jan 2020 12:59:46 +0000 (15:59 +0300)
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>
Wed, 22 Jan 2020 18:07:02 +0000 (18:07 +0000)
GitOrigin-RevId: 1078a6f293ab5994acd0f0c5100fe9c743087e94

platform/external-system-rt/src/com/intellij/openapi/externalSystem/model/project/dependencies/AbstractDependencyNode.java
platform/external-system-rt/src/com/intellij/openapi/externalSystem/model/project/dependencies/ArtifactDependencyNodeImpl.java
platform/external-system-rt/src/com/intellij/openapi/externalSystem/model/project/dependencies/ComponentDependenciesImpl.java
platform/external-system-rt/src/com/intellij/openapi/externalSystem/model/project/dependencies/DependencyScopeNode.java
platform/external-system-rt/src/com/intellij/openapi/externalSystem/model/project/dependencies/FileCollectionDependencyNodeImpl.java
platform/external-system-rt/src/com/intellij/openapi/externalSystem/model/project/dependencies/ProjectDependenciesImpl.java
platform/external-system-rt/src/com/intellij/openapi/externalSystem/model/project/dependencies/ProjectDependencyNode.java
platform/external-system-rt/src/com/intellij/openapi/externalSystem/model/project/dependencies/ProjectDependencyNodeImpl.java
platform/external-system-rt/src/com/intellij/openapi/externalSystem/model/project/dependencies/ReferenceNode.java
platform/external-system-rt/src/com/intellij/openapi/externalSystem/model/project/dependencies/UnknownDependencyNode.java

index 2cef87d3d412de69648d7e53f6856915ebc2691a..66bd51f88f5a387d72acffc0be63c63c382099e9 100644 (file)
@@ -30,4 +30,24 @@ public abstract class AbstractDependencyNode implements DependencyNode, Serializ
   public void setResolutionState(String resolutionState) {
     this.resolutionState = resolutionState;
   }
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) return true;
+    if (o == null || getClass() != o.getClass()) return false;
+
+    AbstractDependencyNode node = (AbstractDependencyNode)o;
+    if (id != node.id) return false;
+    if (!dependencies.equals(node.dependencies)) return false;
+    if (resolutionState != null ? !resolutionState.equals(node.resolutionState) : node.resolutionState != null) return false;
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int result = (int)(id ^ (id >>> 32));
+    result = 31 * result + dependencies.hashCode();
+    result = 31 * result + (resolutionState != null ? resolutionState.hashCode() : 0);
+    return result;
+  }
 }
index 8df78f81ed20ebce1490ccd6d29f7401d4462b2a..847c15c8db48834170c941b9d06e5288f890e41d 100644 (file)
@@ -41,4 +41,26 @@ public class ArtifactDependencyNodeImpl extends AbstractDependencyNode implement
   public String getDisplayName() {
     return group + ':' + module + ':' + version;
   }
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) return true;
+    if (o == null || getClass() != o.getClass()) return false;
+    if (!super.equals(o)) return false;
+
+    ArtifactDependencyNodeImpl node = (ArtifactDependencyNodeImpl)o;
+    if (!group.equals(node.group)) return false;
+    if (!module.equals(node.module)) return false;
+    if (!version.equals(node.version)) return false;
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int result = super.hashCode();
+    result = 31 * result + group.hashCode();
+    result = 31 * result + module.hashCode();
+    result = 31 * result + version.hashCode();
+    return result;
+  }
 }
index 2c77670aad72102e8d9400dec8b92430e6a9059b..a1b65f9537e90f4aa72c96927e90b4236ad24b5c 100644 (file)
@@ -38,4 +38,24 @@ public class ComponentDependenciesImpl implements ComponentDependencies, Seriali
   public DependencyScopeNode getRuntimeDependenciesGraph() {
     return runtimeDependencies;
   }
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) return true;
+    if (o == null || getClass() != o.getClass()) return false;
+
+    ComponentDependenciesImpl that = (ComponentDependenciesImpl)o;
+    if (!componentName.equals(that.componentName)) return false;
+    if (!compileDependencies.equals(that.compileDependencies)) return false;
+    if (!runtimeDependencies.equals(that.runtimeDependencies)) return false;
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int result = componentName.hashCode();
+    result = 31 * result + compileDependencies.hashCode();
+    result = 31 * result + runtimeDependencies.hashCode();
+    return result;
+  }
 }
index ad75f5175c62f91c4b893441e956d94181a6e72e..a4c6bec90d80074da5bd5c7375f3aa9290ecf591 100644 (file)
@@ -33,4 +33,26 @@ public class DependencyScopeNode extends AbstractDependencyNode {
   public String getDescription() {
     return description;
   }
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) return true;
+    if (o == null || getClass() != o.getClass()) return false;
+    if (!super.equals(o)) return false;
+
+    DependencyScopeNode node = (DependencyScopeNode)o;
+    if (!scope.equals(node.scope)) return false;
+    if (!displayName.equals(node.displayName)) return false;
+    if (description != null ? !description.equals(node.description) : node.description != null) return false;
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int result = super.hashCode();
+    result = 31 * result + scope.hashCode();
+    result = 31 * result + displayName.hashCode();
+    result = 31 * result + (description != null ? description.hashCode() : 0);
+    return result;
+  }
 }
index c5e1d946826b4f4267e819fae3b18f87c69a50d8..8f61fececd06509a4537a6e83726965d83863db0 100644 (file)
@@ -27,4 +27,24 @@ public class FileCollectionDependencyNodeImpl extends AbstractDependencyNode imp
   public String getDisplayName() {
     return displayName;
   }
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) return true;
+    if (o == null || getClass() != o.getClass()) return false;
+    if (!super.equals(o)) return false;
+
+    FileCollectionDependencyNodeImpl node = (FileCollectionDependencyNodeImpl)o;
+    if (!displayName.equals(node.displayName)) return false;
+    if (!path.equals(node.path)) return false;
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int result = super.hashCode();
+    result = 31 * result + displayName.hashCode();
+    result = 31 * result + path.hashCode();
+    return result;
+  }
 }
index 30810ca1c45fb8fd4576daa5ae39102b4b516b98..e5ba4be99a2eb89e612ee0b66d83bd63d9605810 100644 (file)
@@ -19,4 +19,18 @@ public class ProjectDependenciesImpl implements ProjectDependencies, Serializabl
   public void add(ComponentDependencies componentDependencies) {
     dependencies.add(componentDependencies);
   }
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) return true;
+    if (o == null || getClass() != o.getClass()) return false;
+    ProjectDependenciesImpl that = (ProjectDependenciesImpl)o;
+    if (!dependencies.equals(that.dependencies)) return false;
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return dependencies.hashCode();
+  }
 }
index ac2bc38aafdc3319f146aca2a3f1d6489880270d..2b5dad350ce86c1896bca464c115ecc0c2cb0188 100644 (file)
@@ -1,6 +1,9 @@
 // Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
 package com.intellij.openapi.externalSystem.model.project.dependencies;
 
+import org.jetbrains.annotations.NotNull;
+
 public interface ProjectDependencyNode extends DependencyNode {
+  @NotNull
   String getProjectName();
 }
index 02ec5de885d4694f5377e7cd7e7b39112a6a07f1..a71d25f2590f0a3142595444f81b56466ca11528 100644 (file)
@@ -9,11 +9,12 @@ public class ProjectDependencyNodeImpl extends AbstractDependencyNode implements
   private final String projectName;
 
   @PropertyMapping({"id", "projectName"})
-  public ProjectDependencyNodeImpl(long id, String projectName) {
+  public ProjectDependencyNodeImpl(long id, @NotNull String projectName) {
     super(id);
     this.projectName = projectName;
   }
 
+  @NotNull
   @Override
   public String getProjectName() {
     return projectName;
@@ -24,4 +25,21 @@ public class ProjectDependencyNodeImpl extends AbstractDependencyNode implements
   public String getDisplayName() {
     return "project " + projectName;
   }
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) return true;
+    if (o == null || getClass() != o.getClass()) return false;
+    if (!super.equals(o)) return false;
+    ProjectDependencyNodeImpl node = (ProjectDependencyNodeImpl)o;
+    if (!projectName.equals(node.projectName)) return false;
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int result = super.hashCode();
+    result = 31 * result + projectName.hashCode();
+    return result;
+  }
 }
index 40793feddf3251a7e2a9d1a2daedaa37ac07941a..b96439df20899546135d71b4a0b13026b948974e 100644 (file)
@@ -36,4 +36,18 @@ public class ReferenceNode implements DependencyNode, Serializable {
   public Set<DependencyNode> getDependencies() {
     return Collections.emptySet();
   }
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) return true;
+    if (o == null || getClass() != o.getClass()) return false;
+    ReferenceNode node = (ReferenceNode)o;
+    if (id != node.id) return false;
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    return (int)(id ^ (id >>> 32));
+  }
 }
index 47fa496d35270b80c3bda85bcd40c411dd97d0f1..04a2dfbd3ac2aa4056c07c9364c45d7389b33e8c 100644 (file)
@@ -18,4 +18,21 @@ public class UnknownDependencyNode extends AbstractDependencyNode {
   public String getDisplayName() {
     return name == null ? "unknown" : name;
   }
+
+  @Override
+  public boolean equals(Object o) {
+    if (this == o) return true;
+    if (o == null || getClass() != o.getClass()) return false;
+    if (!super.equals(o)) return false;
+    UnknownDependencyNode node = (UnknownDependencyNode)o;
+    if (name != null ? !name.equals(node.name) : node.name != null) return false;
+    return true;
+  }
+
+  @Override
+  public int hashCode() {
+    int result = super.hashCode();
+    result = 31 * result + (name != null ? name.hashCode() : 0);
+    return result;
+  }
 }