1 package com.atlassian.cache.hazelcast;
2
3 import java.util.Map;
4
5 import com.hazelcast.map.AbstractEntryProcessor;
6
7 class GetOrInitVersionEntryProcessor<K> extends AbstractEntryProcessor<K, Long>
8 {
9 private static GetOrInitVersionEntryProcessor<Object> INSTANCE = new GetOrInitVersionEntryProcessor<Object>();
10
11 protected static <T> GetOrInitVersionEntryProcessor<T> getInstance()
12 {
13 return (GetOrInitVersionEntryProcessor<T>) INSTANCE;
14 }
15
16 private GetOrInitVersionEntryProcessor()
17 {
18 }
19
20 @Override
21 public Object process(Map.Entry<K, Long> entry)
22 {
23 Long value = entry.getValue();
24 if (value == null)
25 {
26 value = 1L;
27 entry.setValue(value);
28 }
29 return value;
30 }
31 }