package org.littlewings.hazelcast.partitions;
import java.util.stream.IntStream;
import com.hazelcast.core.MultiMap;
import com.hazelcast.core.Partition;
public class HazelcastMultiMapInterpreter extends HazelcastInterpreterSupport {
public static void main(String... args) {
new HazelcastMultiMapInterpreter().execute(args);
}
@Override
protected void execute(String... args) {
withHazelcast(hazelcast -> {
String name = "default";
MultiMap<String, Integer> map = hazelcast.getMultiMap(name);
if (args.length > 0) {
if ("master".equals(args[0])) {
IntStream
.rangeClosed(1, 10)
.forEach(i ->
IntStream.rangeClosed(1, 5).forEach(j -> map.put("key" + i, j)));
}
}
readConsoleWhile(hazelcast,
name,
() -> {
map
.keySet()
.forEach(k -> {
Partition partition = hazelcast.getPartitionService().getPartition(k);
show("key = %s, values = %s, partitionId = %d, owner = %s.",
k,
map.get(k),
partition.getPartitionId(),
partition.getOwner());
});
return null;
},
map::size);
});
}
}