package polly.rx.entities; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.SequenceGenerator; import de.skuzzle.polly.tools.Check; import de.skuzzle.polly.tools.EqualsHelper; import de.skuzzle.polly.tools.Equatable; import polly.rx.core.orion.model.AlienRace; import polly.rx.core.orion.model.AlienSpawn; import polly.rx.core.orion.model.OrionObjectUtil; import polly.rx.core.orion.model.Sector; @Entity @NamedQueries({ @NamedQuery( name = DBAlienSpawn.SPAWN_BY_SECTOR, query= "SELECT s FROM DBAlienSpawn s WHERE s.sector = ?1" ), @NamedQuery( name = DBAlienSpawn.ALL_SPAWNS, query = "SELECT s FROM DBAlienSpawn s" ), @NamedQuery( name = DBAlienSpawn.SPAWN_BY_QUADRANT, query = "SELECT s FROM DBAlienSpawn s WHERE s.sector.quadName = ?1" ), @NamedQuery( name = DBAlienSpawn.FIND_SPAWN, query= "SELECT s FROM DBAlienSpawn s WHERE s.name = ?1 AND s.race = ?2 AND s.sector = ?3" ), @NamedQuery( name = DBAlienSpawn.FIND_SPAWN_BY_RACE, query= "SELECT s FROM DBAlienSpawn s WHERE s.race = ?1" ), }) public class DBAlienSpawn implements AlienSpawn { public final static String FIND_SPAWN = "FIND_SPAWN"; //$NON-NLS-1$ public final static String SPAWN_BY_QUADRANT = "SPAWN_BY_QUADRANT"; //$NON-NLS-1$ public final static String SPAWN_BY_SECTOR = "SPAWN_BY_SECTOR"; //$NON-NLS-1$ public final static String FIND_SPAWN_BY_RACE = "SPAWN_BY_RACE"; //$NON-NLS-1$ public final static String ALL_SPAWNS = "ALL_SPAWNS"; //$NON-NLS-1$ private final static String GENERATOR = "ALIEN_SPAWN_GEN"; //$NON-NLS-1$ @Id @SequenceGenerator(name = GENERATOR) @GeneratedValue(strategy = GenerationType.TABLE, generator = GENERATOR) private int id; private String name; private DBAlienRace race; private DBSector sector; public DBAlienSpawn() { } public DBAlienSpawn(String name, DBAlienRace race, DBSector sector) { Check.objects(name, race, sector).notNull(); this.name = name; this.race = race; this.sector = sector; } @Override public final boolean equals(Object obj) { return EqualsHelper.testEquality(this, obj); } @Override public String toString() { return OrionObjectUtil.alienSpawnString(this); } @Override public int hashCode() { return OrionObjectUtil.alienSpawnHash(this); } @Override public Class<?> getEquivalenceClass() { return AlienSpawn.class; } @Override public boolean actualEquals(Equatable o) { return OrionObjectUtil.alienSpawnsEqual(this, (AlienSpawn) o); } public int getId() { return this.id; } @Override public String getName() { return this.name; } @Override public AlienRace getRace() { return this.race; } @Override public Sector getSector() { return this.sector; } }