package ZeroTypes.TransportTypes;
import EnvironmentPluginAPI.Contract.TEnvironmentDescription;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.UUID;
/**
* TransportType for a played game.<br/>
* <p/>
* Holds information about when a game was played, who won it, and which clients participated.
*/
public class TCycleReplayDescription implements Serializable {
// ------------------------------ FIELDS ------------------------------
private Date replayDate;
public Date getReplayDate() {
return replayDate;
}
private UUID replayID;
public UUID getReplayID() {
return replayID;
}
private List<String> clients;
public List<String> getClients() {
return clients;
}
private String winningClient;
public String getWinningClient() {
return winningClient;
}
private int numberOfTurns;
public int getNumberOfTurns() {
return numberOfTurns;
}
private TEnvironmentDescription environmentDescription;
public TEnvironmentDescription getEnvironmentDescription() {
return environmentDescription;
}
// --------------------------- CONSTRUCTORS ---------------------------
public TCycleReplayDescription(UUID gameReplayId, Date replayDate, List<String> clients, String winningClient, int numberOfTurns) {
this(gameReplayId, replayDate, clients, winningClient, numberOfTurns, null);
}
public TCycleReplayDescription(UUID gameReplayId, Date replayDate, List<String> clients, String winningClient, int numberOfTurns, TEnvironmentDescription environmentDescription) {
this.replayID = gameReplayId;
this.replayDate = replayDate;
this.clients = clients;
this.winningClient = winningClient;
this.numberOfTurns = numberOfTurns;
this.environmentDescription = environmentDescription;
}
// ------------------------ CANONICAL METHODS ------------------------
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof TCycleReplayDescription)) return false;
TCycleReplayDescription that = (TCycleReplayDescription) o;
if (numberOfTurns != that.numberOfTurns) return false;
if (clients != null ? !clients.equals(that.clients) : that.clients != null) return false;
if (replayDate != null ? !replayDate.equals(that.replayDate) : that.replayDate != null) return false;
if (replayID != null ? !replayID.equals(that.replayID) : that.replayID != null) return false;
if (winningClient != null ? !winningClient.equals(that.winningClient) : that.winningClient != null)
return false;
return true;
}
@Override
public int hashCode() {
int result = replayDate != null ? replayDate.hashCode() : 0;
result = 31 * result + (replayID != null ? replayID.hashCode() : 0);
result = 31 * result + (clients != null ? clients.hashCode() : 0);
result = 31 * result + (winningClient != null ? winningClient.hashCode() : 0);
result = 31 * result + numberOfTurns;
return result;
}
}