package Factory.GameLogic.TransportTypes;
import Factory.GameLogic.Enums.Faction;
import Factory.Interfaces.IHasConsistencyCheck;
import java.util.UUID;
/**
* Created with IntelliJ IDEA.
* User: N3trunner
* Date: 08.05.12
* Time: 13:47
* To change this template use File | Settings | File Templates.
*/
public class TUnit implements IHasConsistencyCheck, java.io.Serializable {
// ------------------------------ FIELDS ------------------------------
private UUID unitId;
public UUID getUnitId() {
return unitId;
}
private int exhaustedForTurn;
public int getExhaustedForTurn() {
return exhaustedForTurn;
}
private Faction controllingFaction;
public Faction getControllingFaction() {
return controllingFaction;
}
// --------------------------- CONSTRUCTORS ---------------------------
public TUnit(UUID unitId, Faction controllingFaction) {
this.unitId = unitId;
this.controllingFaction = controllingFaction;
}
public TUnit(UUID unitId, Faction controllingFaction, int exhaustedForTurn) {
this.unitId = unitId;
this.controllingFaction = controllingFaction;
this.exhaustedForTurn = exhaustedForTurn;
}
// ------------------------ CANONICAL METHODS ------------------------
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof TUnit)) return false;
TUnit tUnit = (TUnit) o;
if (!unitId.equals(tUnit.unitId)) return false;
if (controllingFaction != tUnit.controllingFaction) return false;
return true;
}
@Override
public int hashCode() {
int result = unitId.hashCode();
result = 31 * result + (controllingFaction != null ? controllingFaction.hashCode() : 0);
return result;
}
@Override
public String toString() {
return this.getControllingFaction().toString();
}
// ------------------------ INTERFACE METHODS ------------------------
// --------------------- Interface IHasConsistencyCheck ---------------------
@Override
public boolean isConsistent() {
if (unitId == null || exhaustedForTurn < -1 || controllingFaction == null) {
return false;
}
return true;
}
}