package polly.rx.core.orion.model;
import de.skuzzle.polly.tools.Check;
import de.skuzzle.polly.tools.EqualsHelper;
import de.skuzzle.polly.tools.Equatable;
public class DefaultAlienSpawn implements AlienSpawn {
private final String name;
private final DefaultAlienRace race;
private final DefaultSector sector;
public DefaultAlienSpawn(String name, DefaultAlienRace race, DefaultSector sector) {
Check.objects(name, race, sector).notNull();
this.name = name;
this.sector = sector;
this.race = race;
}
public DefaultAlienSpawn(AlienSpawn spawn) {
this(spawn.getName(), new DefaultAlienRace(spawn.getRace()), new DefaultSector(
spawn.getSector()));
}
@Override
public String toString() {
return OrionObjectUtil.alienSpawnString(this);
}
@Override
public int hashCode() {
return OrionObjectUtil.alienSpawnHash(this);
}
@Override
public final boolean equals(Object obj) {
return EqualsHelper.testEquality(this, obj);
}
@Override
public Class<?> getEquivalenceClass() {
return AlienSpawn.class;
}
@Override
public boolean actualEquals(Equatable o) {
return OrionObjectUtil.alienSpawnsEqual(this, (AlienSpawn) o);
}
@Override
public String getName() {
return this.name;
}
@Override
public AlienRace getRace() {
return this.race;
}
@Override
public Sector getSector() {
return this.sector;
}
}