package com.hazelcast.examples.application.dao; import com.hazelcast.examples.application.model.User; import java.util.ArrayList; import java.util.Collection; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class UserDaoImpl implements UserDao { private final Map<Integer, User> users = new ConcurrentHashMap<Integer, User>(); public UserDaoImpl() { users.put(1, new User(1, "user1")); users.put(2, new User(2, "user2")); users.put(3, new User(3, "user3")); users.put(4, new User(4, "user4")); } @Override public User findUserById(int userId) { User user = users.get(userId); if (user != null) { // add latency to show the caching effect try { Thread.sleep(300); } catch (InterruptedException e) { e.printStackTrace(); } return user; } throw new IllegalArgumentException("User not found"); } @Override public boolean storeUser(int userId, User user) { users.put(userId, user); return true; } @Override public boolean removeUser(int userId) { return users.remove(userId) != null; } @Override public Collection<Integer> allUserIds() { return new ArrayList<Integer>(users.keySet()); } }