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
14 return (GetOrInitVersionEntryProcessor<T>) INSTANCE;
15 }
16
17 private GetOrInitVersionEntryProcessor()
18 {
19 }
20
21 @Override
22 public Object process(Map.Entry<K, Long> entry)
23 {
24 Long value = entry.getValue();
25 if (value == null)
26 {
27 value = 1L;
28 entry.setValue(value);
29 }
30 return value;
31 }
32 }