From 200db768221578aa425ac9c4ace7d09fbf227147 Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Wed, 2 Oct 2019 16:36:38 +0300 Subject: [PATCH] [Gradle] do not request multiple times the same model for same `ProjectImportModelProvider`s GitOrigin-RevId: b83f1fc5682c6f43bd1bede65df34b63beaf5875 --- .../ClassSetBuildImportModelProvider.java | 14 ++++++++++++++ .../model/ClassSetImportModelProvider.java | 18 ++++++++++++++++++ .../ClassSetProjectImportModelProvider.java | 14 ++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetBuildImportModelProvider.java b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetBuildImportModelProvider.java index 3814359782c9..70f0dd16788c 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetBuildImportModelProvider.java +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetBuildImportModelProvider.java @@ -36,4 +36,18 @@ public final class ClassSetBuildImportModelProvider implements ProjectImportMode @NotNull ProjectModelConsumer modelConsumer) { // Do nothing, this provider only works on the build model level } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ClassSetBuildImportModelProvider provider = (ClassSetBuildImportModelProvider)o; + if (!classSet.equals(provider.classSet)) return false; + return true; + } + + @Override + public int hashCode() { + return classSet.hashCode(); + } } diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetImportModelProvider.java b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetImportModelProvider.java index 1134d5ccc9dc..197a3ddb34fb 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetImportModelProvider.java +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetImportModelProvider.java @@ -41,4 +41,22 @@ public final class ClassSetImportModelProvider implements ProjectImportModelProv } } } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ClassSetImportModelProvider provider = (ClassSetImportModelProvider)o; + if (!projectModelClasses.equals(provider.projectModelClasses)) return false; + if (!buildModelClasses.equals(provider.buildModelClasses)) return false; + + return true; + } + + @Override + public int hashCode() { + int result = projectModelClasses.hashCode(); + result = 31 * result + buildModelClasses.hashCode(); + return result; + } } diff --git a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetProjectImportModelProvider.java b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetProjectImportModelProvider.java index 3c3b2a871f15..c9535da6ab4e 100644 --- a/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetProjectImportModelProvider.java +++ b/plugins/gradle/tooling-extension-impl/src/org/jetbrains/plugins/gradle/model/ClassSetProjectImportModelProvider.java @@ -34,4 +34,18 @@ public final class ClassSetProjectImportModelProvider implements ProjectImportMo } } } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ClassSetProjectImportModelProvider provider = (ClassSetProjectImportModelProvider)o; + if (!classSet.equals(provider.classSet)) return false; + return true; + } + + @Override + public int hashCode() { + return classSet.hashCode(); + } }