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.SoftReference;
021
022
025 public class EqualitySoftReference<T> extends SoftReference<T> {
026
027 public EqualitySoftReference(T referent) {
028 super(referent);
029
030 _hashCode = referent.hashCode();
031 }
032
033 public EqualitySoftReference(
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 EqualitySoftReference<?>)) {
048 return false;
049 }
050
051 EqualitySoftReference<?> equalitySoftReference =
052 (EqualitySoftReference<?>)obj;
053
054 if (Validator.equals(get(), equalitySoftReference.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 }