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