package net.olemartin.service.player; import com.google.common.collect.Lists; import net.olemartin.domain.Player; import net.olemartin.repository.PlayerRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; @Service @Transactional public class PlayerService { private final PlayerRepository playerRepository; @Autowired public PlayerService(PlayerRepository playerRepository) { this.playerRepository = playerRepository; } public List<Player> getPlayers() { return Lists.newArrayList(playerRepository.findAll()); } public void save(Player player) { playerRepository.save(player); } public Player getPlayer(Long playerId) { return playerRepository.findOne(playerId); } public void deletePlayer(Long playerId) { Player player = playerRepository.findOne(playerId); if(!player.hasPlayedMatches()) { playerRepository.delete(playerId); } else { throw new IllegalStateException("Player has played matches"); } } }