/
AbstractInternalCacheEntry.java
156 lines (124 loc) · 2.89 KB
/
AbstractInternalCacheEntry.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
package org.infinispan.container.entries;
import java.util.Map;
import java.util.Objects;
import org.infinispan.container.DataContainer;
import org.infinispan.metadata.Metadata;
/**
* An abstract internal cache entry that is typically stored in the data container
*
* @author Manik Surtani
* @since 4.0
*/
public abstract class AbstractInternalCacheEntry implements InternalCacheEntry {
protected Object key;
protected AbstractInternalCacheEntry() {
}
protected AbstractInternalCacheEntry(Object key) {
this.key = key;
}
@Override
public final void commit(DataContainer container, Metadata metadata) {
// no-op
}
@Override
public void setChanged(boolean changed) {
// no-op
}
@Override
public final void setCreated(boolean created) {
// no-op
}
@Override
public final void setRemoved(boolean removed) {
// no-op
}
@Override
public final void setEvicted(boolean evicted) {
// no-op
}
@Override
public final void setValid(boolean valid) {
// no-op
}
@Override
public void setLoaded(boolean loaded) {
// no-op
}
@Override
public void setSkipLookup(boolean skipLookup) {
//no-op
}
@Override
public final boolean isNull() {
return false;
}
@Override
public final boolean isChanged() {
return false;
}
@Override
public final boolean isCreated() {
return false;
}
@Override
public final boolean isRemoved() {
return false;
}
@Override
public final boolean isEvicted() {
return true;
}
@Override
public final boolean isValid() {
return true;
}
@Override
public boolean isLoaded() {
return false;
}
@Override
public boolean skipLookup() {
return true;
}
@Override
public Metadata getMetadata() {
return null;
}
@Override
public void setMetadata(Metadata metadata) {
// no-op
}
@Override
public final Object getKey() {
return key;
}
@Override
public boolean isL1Entry() {
return false;
}
@Override
public String toString() {
return getClass().getSimpleName() + "{" +
"key=" + key +
'}';
}
@Override
public AbstractInternalCacheEntry clone() {
try {
return (AbstractInternalCacheEntry) super.clone();
} catch (CloneNotSupportedException e) {
throw new RuntimeException("Should never happen!", e);
}
}
@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null || !(o instanceof Map.Entry)) return false;
Map.Entry that = (Map.Entry) o;
return Objects.equals(getKey(), that.getKey()) && Objects.equals(getValue(), that.getValue());
}
@Override
public final int hashCode() {
return 31 * Objects.hashCode(getKey()) + Objects.hashCode(getValue());
}
}