package br.com.ufrj.msi2.netuno.modelo.entidades; import java.io.Serializable; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; /** * A unidade m�nima para o transporte de cargas na empresa. Todas as cargas * devem ser transportadas em conteiners. Conteiners podem ser embarcados ou * desembarcados de navios. * * @author Thiago, Paula * */ @NamedQueries({ @NamedQuery(name = "Conteiner.recuperarTodos", query = "select c from Conteiner c"), @NamedQuery(name = "Conteiner.recuperarPorNavio", query = "select c from Conteiner c where c.navio = :navio"), //TODO and a.data_chegada <= NOW and ( a.data_saida > NOW or a.data_saida = NULL) @NamedQuery(name = "Conteiner.recuperarPorNavioPorAgenteParaDesembarque", query = "select c from Conteiner c, Atraque a, CargaComponente cc where a.navio = :navio and c.navio = :navio and a.porto = :porto and cc.conteiner = c and cc.agenteDesembarque = :agente") }) @Entity @Table(name = "conteiner") public class Conteiner implements Serializable { private static final long serialVersionUID = 1908602122767901644L; private static final int pesoMaximo = 20000; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @Column(name = "pesoDisponivel") private Double pesoDisponivel; @OneToMany @JoinColumn(name = "conteiner_id") private List<CargaComponente> cargasComponente; @ManyToOne(targetEntity = Porto.class) private Porto porto; @ManyToOne(targetEntity = Navio.class) @JoinColumn(name = "navio_id") private Navio navio; public Navio getNavio() { return navio; } public void setNavio(Navio navio) { this.navio = navio; } public Integer getId() { return id; } public List<CargaComponente> getCargasComponente() { return cargasComponente; } public void setId(Integer id) { this.id = id; } public void setCargasComponente(List<CargaComponente> cargasComponente) { this.cargasComponente = cargasComponente; } public static int getPesomaximo() { return pesoMaximo; } public Double getPesoDisponivel() { return pesoDisponivel; } public void setPesoDisponivel(Double pesoDisponivel) { this.pesoDisponivel = pesoDisponivel; } public Porto getPorto() { return porto; } public void setPorto(Porto porto) { this.porto = porto; } }