package com.alexshabanov.springrestapi.service; import com.alexshabanov.springrestapi.domain.User; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicInteger; /** * Sample server-side implementation of the {@link UserService} * * @author Alexander Shabanov */ @Service public final class UserServiceImpl implements UserService { private final Map<Integer, User> userMap = new ConcurrentHashMap<Integer, User>(); private final AtomicInteger idCounter = new AtomicInteger(); @Override public int register(String name) { final int id = idCounter.incrementAndGet(); userMap.put(id, User.as(id, name)); return id; } @Override public User findById(int id) { return userMap.get(id); } @Override public List<User> findAll() { return Collections.unmodifiableList(new ArrayList<User>(userMap.values())); } }