package br.com.ufrj.msi2.netuno.modelo.entidades;
import java.io.Serializable;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
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.Table;
import javax.persistence.UniqueConstraint;
@NamedQueries(
{
@NamedQuery(name="Porto.recuperaPorId",
query="select porto from Porto porto where porto.id = :id")
}
)
@Entity
@Table(name = "porto", uniqueConstraints = @UniqueConstraint(columnNames = {
"localizacao", "nome" }))
public class Porto implements Serializable {
private static final long serialVersionUID = -4513783540480470840L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@OneToMany(mappedBy = "pertence")
private List<AgentePorto> agentes;
@OneToMany(mappedBy = "porto", cascade=CascadeType.REMOVE)
private List<Atraque> atraques;
@OneToMany(mappedBy = "porto", cascade=CascadeType.REMOVE)
private List<Patio> patios;
@OneToMany(mappedBy = "porto", cascade=CascadeType.REMOVE)
private List<Slot> slots;
public List<Slot> getSlots() {
return slots;
}
public void setSlots(List<Slot> slots) {
this.slots = slots;
}
public List<Atraque> getAtraques() {
return atraques;
}
public void setAtraques(List<Atraque> atraques) {
this.atraques = atraques;
}
public List<Patio> getPatios() {
return patios;
}
public void setPatios(List<Patio> patios) {
this.patios = patios;
}
@Column(name = "nome", nullable = false)
private String nome;
@Column(name = "localizacao", nullable = false)
private String localizacao;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getLocalizacao() {
return localizacao;
}
public void setLocalizacao(String localizacao) {
this.localizacao = localizacao;
}
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public List<AgentePorto> getAgentes() {
return agentes;
}
public void setAgentes(List<AgentePorto> agentes) {
this.agentes = agentes;
}
@Override
public boolean equals(Object arg0) {
Porto porto = (Porto) arg0;
if (porto == null) {
return false;
}
return this.id == porto.getId();
}
public String getNomeLocalizacao(){
return this.nome+" - "+this.localizacao;
}
}