/**
*
*/
package com.teefun.model.json;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonRootName;
import com.teefun.model.Player;
import com.teefun.model.Queue;
/**
* QueueData in json format send to clients.
*
* @author Rajh
*
*/
@JsonRootName("queue")
public class QueueData implements Serializable {
/**
* SUID.
*/
private static final long serialVersionUID = 1L;
/**
* Id.
*/
@JsonProperty
private final Integer id;
/**
* Name.
*/
@JsonProperty
private final String name;
/**
* State.
*/
@JsonProperty
private final String state;
/**
* Map.
*/
@JsonProperty
private final String map;
/**
* Game type.
*/
@JsonProperty
private final String gameType;
/**
* Score limit.
*/
@JsonProperty
private final Integer scoreLimit;
/**
* Time limit.
*/
@JsonProperty
private final Integer timeLimit;
/**
* Current size.
*/
@JsonProperty
private final Integer size;
/**
* Max size.
*/
@JsonProperty
private final Integer maxSize;
/**
* Players in queue.
*/
@JsonProperty
private final List<PlayerData> players;
/**
* Default constructor from a queue.
*
* @param queue the queue
*/
public QueueData(final Queue queue) {
this.id = queue.getId();
this.name = queue.getName();
this.state = queue.getState().name();
this.map = queue.getMap();
this.gameType = queue.getGametype();
this.scoreLimit = queue.getScoreLimit();
this.timeLimit = queue.getTimeLimit();
this.size = queue.getPlayers().size();
this.maxSize = queue.getMaxSize();
this.players = new ArrayList<PlayerData>();
for (final Player player : queue.getPlayers()) {
this.players.add(new PlayerData(player));
}
}
}