package Factory.GameLogic.TransportTypes;
import Factory.GameLogic.Enums.Direction;
import Factory.Interfaces.IHasConsistencyCheck;
/**
* Created with IntelliJ IDEA.
* User: N3trunner
* Date: 18.05.12
* Time: 17:12
* To change this template use File | Settings | File Templates.
*/
public class TAction implements java.io.Serializable, IHasConsistencyCheck {
// ------------------------------ FIELDS ------------------------------
private TUnit unit;
public TUnit getUnit() {
return unit;
}
private Direction direction;
public Direction getDirection() {
return direction;
}
// --------------------------- CONSTRUCTORS ---------------------------
public TAction(TUnit unit, Direction direction) {
this.unit = unit;
this.direction = direction;
}
// ------------------------ CANONICAL METHODS ------------------------
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof TAction)) return false;
TAction tAction = (TAction) o;
if (direction != tAction.direction) return false;
if (unit != null ? !unit.equals(tAction.unit) : tAction.unit != null) return false;
return true;
}
@Override
public int hashCode() {
int result = unit != null ? unit.hashCode() : 0;
result = 31 * result + (direction != null ? direction.hashCode() : 0);
return result;
}
// ------------------------ INTERFACE METHODS ------------------------
// --------------------- Interface IHasConsistencyCheck ---------------------
@Override
public boolean isConsistent() {
if(unit == null || direction == null) {
return false;
}
if(!unit.isConsistent()) {
return false;
}
if(direction == null) {
return false;
}
return true;
}
}