001
014
015 package com.liferay.portal.kernel.memory;
016
017 import com.liferay.portal.kernel.util.Validator;
018
019 import java.lang.ref.ReferenceQueue;
020 import java.lang.ref.WeakReference;
021
022
025 public class EqualityWeakReference<T> extends WeakReference<T> {
026
027 public EqualityWeakReference(T referent) {
028 super(referent);
029
030 _hashCode = referent.hashCode();
031 }
032
033 public EqualityWeakReference(
034 T referent, ReferenceQueue<? super T> referenceQueue) {
035
036 super(referent, referenceQueue);
037
038 _hashCode = referent.hashCode();
039 }
040
041 @Override
042 public boolean equals(Object obj) {
043 if (this == obj) {
044 return true;
045 }
046
047 if (!(obj instanceof EqualityWeakReference<?>)) {
048 return false;
049 }
050
051 EqualityWeakReference<?> equalityWeakReference =
052 (EqualityWeakReference<?>)obj;
053
054 if (Validator.equals(get(), equalityWeakReference.get())) {
055 return true;
056 }
057
058 return false;
059 }
060
061 @Override
062 public int hashCode() {
063 return _hashCode;
064 }
065
066 private final int _hashCode;
067
068 }