mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
move SLRUCache to util-rt
This commit is contained in:
+1
-25
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,17 +16,13 @@
|
||||
package com.intellij.util.containers.hash;
|
||||
|
||||
|
||||
import gnu.trove.TObjectHashingStrategy;
|
||||
|
||||
public interface EqualityPolicy<T> {
|
||||
EqualityPolicy<?> IDENTITY = new EqualityPolicy() {
|
||||
|
||||
@Override
|
||||
public int getHashCode(Object value) {
|
||||
return System.identityHashCode(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEqual(Object val1, Object val2) {
|
||||
return val1 == val2;
|
||||
}
|
||||
@@ -34,34 +30,14 @@ public interface EqualityPolicy<T> {
|
||||
|
||||
EqualityPolicy<?> CANONICAL = new EqualityPolicy() {
|
||||
|
||||
@Override
|
||||
public int getHashCode(Object value) {
|
||||
return value != null ? value.hashCode() : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEqual(Object val1, Object val2) {
|
||||
return val1 != null ? val1.equals(val2) : val2 == null;
|
||||
}
|
||||
};
|
||||
|
||||
class ByHashingStrategy<T> implements EqualityPolicy<T> {
|
||||
private final TObjectHashingStrategy<T> myStrategy;
|
||||
|
||||
public ByHashingStrategy(TObjectHashingStrategy<T> strategy) {
|
||||
myStrategy = strategy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getHashCode(T value) {
|
||||
return myStrategy.computeHashCode(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEqual(T val1, T val2) {
|
||||
return myStrategy.equals(val1, val2);
|
||||
}
|
||||
}
|
||||
|
||||
int getHashCode(T value);
|
||||
|
||||
+1
-9
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2013 JetBrains s.r.o.
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -295,17 +295,14 @@ public class LinkedHashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public K getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
@Override
|
||||
public V getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public V setValue(final V value) {
|
||||
final V result = this.value;
|
||||
this.value = value;
|
||||
@@ -318,12 +315,10 @@ public class LinkedHashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>
|
||||
private LinkedHashMap.Entry<K, V> e = back;
|
||||
private LinkedHashMap.Entry<K, V> last;
|
||||
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
return e != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove() {
|
||||
if (last == null) {
|
||||
throw new IllegalStateException();
|
||||
@@ -345,7 +340,6 @@ public class LinkedHashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>
|
||||
@Override
|
||||
public Iterator<Map.Entry<K, V>> iterator() {
|
||||
return new LinkedHashIterator<Map.Entry<K, V>>() {
|
||||
@Override
|
||||
public Map.Entry<K, V> next() {
|
||||
return nextEntry();
|
||||
}
|
||||
@@ -388,7 +382,6 @@ public class LinkedHashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>
|
||||
@Override
|
||||
public Iterator<K> iterator() {
|
||||
return new LinkedHashIterator<K>() {
|
||||
@Override
|
||||
public K next() {
|
||||
return nextEntry().key;
|
||||
}
|
||||
@@ -422,7 +415,6 @@ public class LinkedHashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>
|
||||
@Override
|
||||
public Iterator<V> iterator() {
|
||||
return new LinkedHashIterator<V>() {
|
||||
@Override
|
||||
public V next() {
|
||||
return nextEntry().value;
|
||||
}
|
||||
Reference in New Issue
Block a user