@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((deployingFaction == null) ? 0 : deployingFaction.hashCode()); result = prime * result + ((faction == null) ? 0 : faction.hashCode()); result = prime * result + ((movementModes == null) ? 0 : movementModes.hashCode()); result = prime * result + networkMask; result = prime * result + ((rating == null) ? 0 : rating.hashCode()); result = prime * result + roleStrictness; result = prime * result + ((roles == null) ? 0 : roles.hashCode()); result = prime * result + unitType; result = prime * result + ((weightClasses == null) ? 0 : weightClasses.hashCode()); result = prime * result + year; return result; }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof CacheKey)) { return false; } CacheKey other = (CacheKey) obj; if (deployingFaction == null) { if (other.deployingFaction != null) { return false; } } else if (!deployingFaction.equals(other.deployingFaction)) { return false; } if (faction == null) { if (other.faction != null) { return false; } } else if (!faction.equals(other.faction)) { return false; } if (movementModes == null) { if (other.movementModes != null) { return false; } } else if (!movementModes.equals(other.movementModes)) { return false; } if (networkMask != other.networkMask) { return false; } if (rating == null) { if (other.rating != null) { return false; } } else if (!rating.equals(other.rating)) { return false; } if (roleStrictness != other.roleStrictness) { return false; } if (roles == null) { if (other.roles != null) { return false; } } else if (!roles.equals(other.roles)) { return false; } if (unitType != other.unitType) { return false; } if (weightClasses == null) { if (other.weightClasses != null) { return false; } } else if (!weightClasses.equals(other.weightClasses)) { return false; } if (year != other.year) { return false; } return true; }