public final PlayerState getNextSeatedPlayerAfter(PlayerId startPlayer) {
ImmutableBiMap<SeatId, PlayerId> seatMap = getSeatMap();
int maxNbPlayers = getTableConfiguration().getMaxNbPlayers();
SeatId currentSeat = seatMap.inverse().get(startPlayer);
PlayerId currentPlayer;
do{
currentSeat = new SeatId((currentSeat.getId() + 1) % maxNbPlayers);
currentPlayer = seatMap.get(currentSeat);
} while(currentPlayer == null);
if(currentPlayer.equals(startPlayer)){
return null;
}
return getPlayer(currentPlayer);
}