From 8dbb526c527425de0aeecf4f0b48d9c98d046ecc Mon Sep 17 00:00:00 2001 From: nik Date: Mon, 11 Feb 2019 18:32:32 +0300 Subject: [PATCH] simplification: use Objects.equals in classes from intellij.platform.util module --- .../com/intellij/util/PathMappingSettings.java | 5 +++-- .../util/src/com/intellij/util/SmartList.java | 7 +++---- .../util/containers/ConcurrentRefHashMap.java | 6 +----- .../intellij/util/containers/ContainerUtil.java | 4 ++-- .../intellij/util/containers/ImmutableList.java | 2 +- .../containers/LockFreeCopyOnWriteArrayList.java | 15 ++++----------- .../com/intellij/util/containers/RefHashMap.java | 6 +----- .../util/src/com/intellij/util/ui/ColorIcon.java | 3 ++- .../util/src/com/intellij/util/ui/ColumnInfo.java | 3 ++- 9 files changed, 19 insertions(+), 32 deletions(-) diff --git a/platform/util/src/com/intellij/util/PathMappingSettings.java b/platform/util/src/com/intellij/util/PathMappingSettings.java index 7298d0135e50..8122135993ce 100644 --- a/platform/util/src/com/intellij/util/PathMappingSettings.java +++ b/platform/util/src/com/intellij/util/PathMappingSettings.java @@ -30,6 +30,7 @@ import org.jetbrains.annotations.Nullable; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.Objects; /** * @author traff @@ -327,8 +328,8 @@ public class PathMappingSettings extends AbstractPathMapper implements Cloneable PathMapping mapping = (PathMapping)o; - if (myLocalRoot != null ? !myLocalRoot.equals(mapping.myLocalRoot) : mapping.myLocalRoot != null) return false; - if (myRemoteRoot != null ? !myRemoteRoot.equals(mapping.myRemoteRoot) : mapping.myRemoteRoot != null) return false; + if (!Objects.equals(myLocalRoot, mapping.myLocalRoot)) return false; + if (!Objects.equals(myRemoteRoot, mapping.myRemoteRoot)) return false; return true; } diff --git a/platform/util/src/com/intellij/util/SmartList.java b/platform/util/src/com/intellij/util/SmartList.java index d4da93bc02ce..cec67dd91344 100644 --- a/platform/util/src/com/intellij/util/SmartList.java +++ b/platform/util/src/com/intellij/util/SmartList.java @@ -335,7 +335,7 @@ public class SmartList extends AbstractList implements RandomAccess { } if (mySize == 1) { - return myElem == null ? that.myElem == null : myElem.equals(that.myElem); + return Objects.equals(myElem, that.myElem); } return compareOneByOne(that); @@ -347,8 +347,7 @@ public class SmartList extends AbstractList implements RandomAccess { } if (mySize == 1) { - Object o = that.get(0); - return myElem == null ? o == null : myElem.equals(o); + return Objects.equals(myElem, that.get(0)); } return compareOneByOne(that); @@ -358,7 +357,7 @@ public class SmartList extends AbstractList implements RandomAccess { for (int i = 0; i < mySize; i++) { E o1 = get(i); Object o2 = that.get(i); - if (o1 == null ? o2 != null : !o1.equals(o2)) { + if (!Objects.equals(o1, o2)) { return false; } } diff --git a/platform/util/src/com/intellij/util/containers/ConcurrentRefHashMap.java b/platform/util/src/com/intellij/util/containers/ConcurrentRefHashMap.java index 589b31927b34..691baf16eb08 100644 --- a/platform/util/src/com/intellij/util/containers/ConcurrentRefHashMap.java +++ b/platform/util/src/com/intellij/util/containers/ConcurrentRefHashMap.java @@ -249,15 +249,11 @@ abstract class ConcurrentRefHashMap extends AbstractMap implements C return ent.setValue(value); } - private static boolean valEquals(Object o1, Object o2) { - return o1 == null ? o2 == null : o1.equals(o2); - } - @Override public boolean equals(Object o) { if (!(o instanceof Map.Entry)) return false; Map.Entry e = (Map.Entry)o; - return valEquals(key, e.getKey()) && valEquals(getValue(), e.getValue()); + return Objects.equals(key, e.getKey()) && Objects.equals(getValue(), e.getValue()); } @Override diff --git a/platform/util/src/com/intellij/util/containers/ContainerUtil.java b/platform/util/src/com/intellij/util/containers/ContainerUtil.java index a150155089eb..0fda7bfbcb10 100644 --- a/platform/util/src/com/intellij/util/containers/ContainerUtil.java +++ b/platform/util/src/com/intellij/util/containers/ContainerUtil.java @@ -611,7 +611,7 @@ public class ContainerUtil extends ContainerUtilRt { K key = entry.getKey(); V v2 = entry.getValue(); V v1 = map1.get(key); - if (!(v1 == v2 || v1 != null && v1.equals(v2))) { + if (!Objects.equals(v1, v2)) { res.remove(key); } } @@ -626,7 +626,7 @@ public class ContainerUtil extends ContainerUtilRt { for (K k : keys) { V v1 = map1.get(k); V v2 = map2.get(k); - if (!(v1 == v2 || v1 != null && v1.equals(v2))) { + if (!Objects.equals(v1, v2)) { res.put(k, Couple.of(v1, v2)); } } diff --git a/platform/util/src/com/intellij/util/containers/ImmutableList.java b/platform/util/src/com/intellij/util/containers/ImmutableList.java index 894574fdecbe..42e9c45be3d7 100644 --- a/platform/util/src/com/intellij/util/containers/ImmutableList.java +++ b/platform/util/src/com/intellij/util/containers/ImmutableList.java @@ -111,7 +111,7 @@ public abstract class ImmutableList extends AbstractCollection implements while (e1.hasNext() && e2.hasNext()) { E o1 = e1.next(); Object o2 = e2.next(); - if (o1 == null ? o2 != null : !o1.equals(o2)) { + if (!Objects.equals(o1, o2)) { return false; } } diff --git a/platform/util/src/com/intellij/util/containers/LockFreeCopyOnWriteArrayList.java b/platform/util/src/com/intellij/util/containers/LockFreeCopyOnWriteArrayList.java index ed62a6a64150..b4aaa1b189af 100644 --- a/platform/util/src/com/intellij/util/containers/LockFreeCopyOnWriteArrayList.java +++ b/platform/util/src/com/intellij/util/containers/LockFreeCopyOnWriteArrayList.java @@ -61,13 +61,6 @@ class LockFreeCopyOnWriteArrayList implements List, RandomAccess, Concurre return size() == 0; } - /** - * Test for equality, coping with nulls. - */ - private static boolean eq(Object o1, Object o2) { - return o1 == null ? o2 == null : o1.equals(o2); - } - /** * static version of indexOf, to allow repeated calls without * needing to re-acquire array each time. @@ -443,7 +436,7 @@ class LockFreeCopyOnWriteArrayList implements List, RandomAccess, Concurre int i; for (i = newLen; i != 0; --i) { Object element = elements[i]; - if (eq(o, element)) { + if (Objects.equals(o, element)) { // found one; copy remaining and exit System.arraycopy(elements, 0, newElements, 0, i); break; @@ -452,7 +445,7 @@ class LockFreeCopyOnWriteArrayList implements List, RandomAccess, Concurre } // special handling for last cell - if (i == 0 && !eq(o, elements[0])) { + if (i == 0 && !Objects.equals(o, elements[0])) { return null; } return newElements; @@ -511,7 +504,7 @@ class LockFreeCopyOnWriteArrayList implements List, RandomAccess, Concurre int len = elements.length; newElements = new Object[len + 1]; for (int i = 0; i < len; ++i) { - if (eq(e, elements[i])) { + if (Objects.equals(e, elements[i])) { return false; // exit, throwing away copy } newElements[i] = elements[i]; @@ -813,7 +806,7 @@ class LockFreeCopyOnWriteArrayList implements List, RandomAccess, Concurre List list = (List)o; Iterator it = list.iterator(); for (Object element : array) { - if (!it.hasNext() || !eq(element, it.next())) { + if (!it.hasNext() || !Objects.equals(element, it.next())) { return false; } } diff --git a/platform/util/src/com/intellij/util/containers/RefHashMap.java b/platform/util/src/com/intellij/util/containers/RefHashMap.java index e19eaa811f0c..c4a9531faf33 100644 --- a/platform/util/src/com/intellij/util/containers/RefHashMap.java +++ b/platform/util/src/com/intellij/util/containers/RefHashMap.java @@ -285,16 +285,12 @@ abstract class RefHashMap extends AbstractMap implements Map { return ent.setValue(value); } - private static boolean valEqual(Object o1, Object o2) { - return o1 == null ? o2 == null : o1.equals(o2); - } - @Override public boolean equals(Object o) { if (!(o instanceof Entry)) return false; //noinspection unchecked Entry e = (Entry)o; - return keyEqual(key, e.getKey(), myStrategy) && valEqual(getValue(), e.getValue()); + return keyEqual(key, e.getKey(), myStrategy) && Objects.equals(getValue(), e.getValue()); } @Override diff --git a/platform/util/src/com/intellij/util/ui/ColorIcon.java b/platform/util/src/com/intellij/util/ui/ColorIcon.java index cad515672e2f..c4a4212c9ad6 100644 --- a/platform/util/src/com/intellij/util/ui/ColorIcon.java +++ b/platform/util/src/com/intellij/util/ui/ColorIcon.java @@ -19,6 +19,7 @@ import com.intellij.ui.Gray; import org.jetbrains.annotations.NotNull; import java.awt.*; +import java.util.Objects; import static java.lang.Math.ceil; @@ -94,7 +95,7 @@ public class ColorIcon extends EmptyIcon { if (myBorder != icon.myBorder) return false; if (myColorSize != icon.myColorSize) return false; - if (myColor != null ? !myColor.equals(icon.myColor) : icon.myColor != null) return false; + if (!Objects.equals(myColor, icon.myColor)) return false; return true; } diff --git a/platform/util/src/com/intellij/util/ui/ColumnInfo.java b/platform/util/src/com/intellij/util/ui/ColumnInfo.java index be4b6768d475..a885c21d0a42 100644 --- a/platform/util/src/com/intellij/util/ui/ColumnInfo.java +++ b/platform/util/src/com/intellij/util/ui/ColumnInfo.java @@ -21,6 +21,7 @@ import javax.swing.*; import javax.swing.table.TableCellEditor; import javax.swing.table.TableCellRenderer; import java.util.Comparator; +import java.util.Objects; public abstract class ColumnInfo { private String myName; @@ -121,7 +122,7 @@ public abstract class ColumnInfo { final ColumnInfo that = (ColumnInfo)o; - if (myName != null ? !myName.equals(that.myName) : that.myName != null) return false; + if (!Objects.equals(myName, that.myName)) return false; return true; }