package polly.rx.entities; import java.util.Date; import java.util.LinkedList; import java.util.List; import javax.persistence.CascadeType; 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.OneToMany; import javax.persistence.Temporal; import javax.persistence.TemporalType; import de.skuzzle.polly.sdk.time.Time; @Entity @NamedQueries({ @NamedQuery( name = FleetScan.ALL_SCANS, query= "SELECT scan FROM FleetScan scan" ), @NamedQuery( name = FleetScan.CONTAINING_SHIP, query = "SELECT scan From FleetScan scan, IN(scan.ships) ship WHERE ship.rxId = ?1" ), @NamedQuery( name = FleetScan.CONTAINING_OWNER, query = "SELECT DISTINCT scan FROM FleetScan scan, IN(scan.ships) ship WHERE ship.owner = ?1" ), @NamedQuery( name = FleetScan.SCANS_BY_CLAN, query = "SELECT DISTINCT scan FROM FleetScan scan, IN(scan.ships) ship WHERE scan.ownerClan = ?1 OR ship.ownerClan = ?1" ), @NamedQuery( name = FleetScan.SCANS_BY_LOCATION, query = "SELECT DISTINCT scan FROM FleetScan scan WHERE scan.quadrant = ?1" ) }) public class FleetScan { public final static String ALL_SCANS = "ALL_SCANS"; //$NON-NLS-1$ public final static String CONTAINING_SHIP = "CONTAINING_SHIP"; //$NON-NLS-1$ public final static String CONTAINING_OWNER = "CONTAINING_OWNER"; //$NON-NLS-1$ public final static String SCANS_BY_CLAN = "SCANS_BY_CLAN"; //$NON-NLS-1$ public final static String SCANS_BY_LOCATION = "SCANS_BY_LOCATION"; //$NON-NLS-1$ @Id@GeneratedValue(strategy = GenerationType.TABLE) private int id; @Temporal(value = TemporalType.TIMESTAMP) private Date date; private int localSens; private String fleetName; private String ownerName; private String ownerClan; private String fleetTag; @OneToMany(cascade = CascadeType.PERSIST) private List<FleetScanShip> ships; private String metaData; private int x; private int y; private String quadrant; public FleetScan() { this(0, "", "", "", "", new LinkedList<FleetScanShip>(), "", 0, 0, ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ } public FleetScan(int localSens, String fleetName, String ownerName, String ownerClan, String fleetTag, List<FleetScanShip> ships, String quadrant, int x, int y, String metaData) { super(); this.localSens = localSens; this.fleetName = fleetName; this.ownerClan = ownerClan; this.ownerName = ownerName; this.fleetTag = fleetTag; this.ships = ships; this.metaData = metaData; this.x = x; this.y = y; this.quadrant = quadrant; this.date = Time.currentTime(); } public int getId() { return this.id; } public String getQuadrant() { return this.quadrant; } public String getMetaData() { return this.metaData; } public int getX() { return this.x; } public int getY() { return this.y; } public Date getDate() { return this.date; } public int getLocalSens() { return this.localSens; } public String getFleetName() { return this.fleetName; } public String getOwnerName() { return this.ownerName; } public String getOwnerClan() { return this.ownerClan; } public String getFleetTag() { return this.fleetTag; } public int getShipCount() { return this.ships.size(); } public List<FleetScanShip> getShips() { return this.ships; } public void setShips(List<FleetScanShip> ships) { this.ships = ships; } }