From 06d6da671cd86f5d4e386b3fec8151b85857ba1a Mon Sep 17 00:00:00 2001 From: Ivan Semenov Date: Fri, 23 Aug 2024 17:21:55 +0200 Subject: [PATCH] [diff] add equals/hashCode to ListSelection GitOrigin-RevId: 01959b04b145db98b2ba973c31ccad04ed62a2bd --- platform/diff-api/api-dump.txt | 2 ++ .../com/intellij/openapi/ListSelection.java | 19 +++++++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/platform/diff-api/api-dump.txt b/platform/diff-api/api-dump.txt index f34b80037f79..48bd1acbdf6d 100644 --- a/platform/diff-api/api-dump.txt +++ b/platform/diff-api/api-dump.txt @@ -576,9 +576,11 @@ f:com.intellij.openapi.ListSelection - s:createAt(java.util.List,I):com.intellij.openapi.ListSelection - s:createSingleton(java.lang.Object):com.intellij.openapi.ListSelection - s:empty():com.intellij.openapi.ListSelection +- equals(java.lang.Object):Z - getExplicitSelection():java.util.List - getList():java.util.List - getSelectedIndex():I +- hashCode():I - isEmpty():Z - isExplicitSelection():Z - map(com.intellij.util.NullableFunction):com.intellij.openapi.ListSelection diff --git a/platform/diff-api/src/com/intellij/openapi/ListSelection.java b/platform/diff-api/src/com/intellij/openapi/ListSelection.java index deac7ed9880a..6a9ffddde240 100644 --- a/platform/diff-api/src/com/intellij/openapi/ListSelection.java +++ b/platform/diff-api/src/com/intellij/openapi/ListSelection.java @@ -7,10 +7,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import javax.swing.*; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.util.*; /** * Utility class used to preserve index during 'map' operations @@ -122,4 +119,18 @@ public final class ListSelection { public boolean isExplicitSelection() { return myExplicitSelection; } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof ListSelection selection)) return false; + return mySelectedIndex == selection.mySelectedIndex && + myExplicitSelection == selection.myExplicitSelection && + Objects.equals(myList, selection.myList); + } + + @Override + public int hashCode() { + return Objects.hash(myList, mySelectedIndex, myExplicitSelection); + } }