/* * * Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute - Graduate School and Research in Engineering. * See the file license.txt for copyright permission. * */ /** * package relativo as classes de negocio * Com as classes bean * */ package modelo; import java.io.Serializable; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.Set; import java.util.TreeSet; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.SequenceGenerator; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient; /** * Classe relativa ao Bean CapacDia que informa a capacidade diaria de minutos por periodos na matriz * * * @author daysemou/felipe * */ @NamedQueries( { @NamedQuery ( name = "CapacDia.recuperaCapacDia", query = "select c from CapacDia c where c.perioPM = ?" ), @NamedQuery ( name = "CapacDia.recuperaListaDeCapacDias", query = "select c from CapacDia c order by c.perioPM" ), @NamedQuery ( name = "CapacDia.recuperaCapacDiaPorPerioPM", query = "select c from CapacDia c where c.perioPM = ?" ), @NamedQuery ( name = "CapacDia.recuperaListaPaginadaDeCapacDias", query = "select distinct c from CapacDia c order by c.perioPM" ), @NamedQuery ( name = "CapacDia.recuperaListaPaginadaDeCapacDiasCount", query = "select count (distinct c) from CapacDia c" ) } ) @Entity @Table(name="CapacDia") @SequenceGenerator(name="SEQUENCIA", sequenceName="SEQ_CAPACDIA", allocationSize=1) public class CapacDia implements Serializable, Comparable<CapacDia> { private static final long serialVersionUID = 1L; /** identificador do periodo do plano agregado */ private Long id; /** Capacidade de producao diaria no periodo na matriz em minutos */ private double capacProdDiariaEmMin; /** Capacidade de producao diaria no periodo na matriz em minutos acrescido da margem de seguranca*/ private transient double capacProdDiariaEmMinMg; /** Periodo relativo ao HP (� mostrado na tela com dois digitos) */ private PerioPM perioPM; // ********* Construtores ********* public CapacDia() { this.capacProdDiariaEmMin = 0; } // ********* M�todos do Tipo Get e Set ********* @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQUENCIA") @Column(name="ID") public Long getId() { return id; } //Usa-se SupressWarnings porque o m�todo � privado, // e daria um warning, pois ningu�m usaria. Mas, a JPA usa atrav�s de reflex�o. @SuppressWarnings("unused") public void setId(Long id) { this.id = id; } public double getCapacProdDiariaEmMin() { return capacProdDiariaEmMin; } public void setCapacProdDiariaEmMin(double capacProdDiariaEmMin) { this.capacProdDiariaEmMin = capacProdDiariaEmMin; } @Transient public double getCapacProdDiariaEmMinMg() { return capacProdDiariaEmMinMg; } public void setCapacProdDiariaEmMinMg(double capacProdDiariaEmMinMg) { this.capacProdDiariaEmMinMg = capacProdDiariaEmMinMg; } // ********* M�todos para Associa��es ********* /** Quando recuperar um CapacDia, recupera automaticamente o perioPM ligado a ele. */ @OneToOne(fetch=FetchType.EAGER) @JoinColumn(name="PERIOPM_ID",nullable=false) public PerioPM getPerioPM() { return perioPM; } public void setPerioPM(PerioPM perioPM) { this.perioPM = perioPM; } /** * Este m�todo consiste em definir o crit�rio de ordena��o entre 2 objetos PerioPAP, que deve estar * associado a um de seus atributos. No nosso caso, o atributo em quest�o � o 'periodoPAP', que � do tipo * nativo 'int', que sabe internamente se auto-ordenar, gra�as a implementa��o da API Java que o realiza. * * retorna -1 se for menor, 0 se for igual, e 1 se for maior * * @author felipe * @param CapacDia * @return int * */ @Override public int compareTo(CapacDia o) { return this.perioPM.getPeriodoPM() < o.perioPM.getPeriodoPM() ? -1 : this.perioPM.getPeriodoPM() > o.perioPM.getPeriodoPM() ? 1 : 0; } public String toString(){ return "Periodo = " + this.perioPM + " | Prod. Diaria = " + this.capacProdDiariaEmMin; } }