Subversion Repositories Integrator Subversion

Rev

Rev 106 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MapsId;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.ForeignKey;

import br.com.ec.core.generic.identidade.Identidade;
import br.com.ec.core.util.VerificadorUtil;

@Entity
@Table(name="sec_unitopico_usuario", schema="sc_sec")
public class UniversidadeTopicoUsuario implements Serializable, Identidade {

        private static final long serialVersionUID = 1L;

        private UniversidadeTopicoUsuarioId universidadeTopicoUsuarioId;
        private UniversidadeTopico topico;
        private Usuario usuario;
        private Date ultimoAcesso;
       
        public UniversidadeTopicoUsuario() {
                this.universidadeTopicoUsuarioId = new UniversidadeTopicoUsuarioId();
        }
       
        public UniversidadeTopicoUsuario(UniversidadeTopicoUsuarioId universidadeTopicoUsuarioId) {
                this.universidadeTopicoUsuarioId = universidadeTopicoUsuarioId;
        }
       
        public UniversidadeTopicoUsuario(UniversidadeTopico topico, Usuario usuario) {
                universidadeTopicoUsuarioId = new UniversidadeTopicoUsuarioId();
                setTopico(topico);
                setUsuario(usuario);
        }
       
        @Override
        @Transient
        public Object getId() {
                return getUniversidadeTopicoUsuarioId();
        }
        @Override
        public void setId(Object id) {
                this.universidadeTopicoUsuarioId = (UniversidadeTopicoUsuarioId) id;
        }
       
        @EmbeddedId
        public UniversidadeTopicoUsuarioId getUniversidadeTopicoUsuarioId() {
                return universidadeTopicoUsuarioId;
        }
        public void setUniversidadeTopicoUsuarioId(UniversidadeTopicoUsuarioId universidadeTopicoUsuarioId) {
                this.universidadeTopicoUsuarioId = universidadeTopicoUsuarioId;
        }
       
        @ManyToOne
        @ForeignKey(name="fk_unitopicousuario_unitopico")
        @MapsId(value="sequencialTopico")
        @JoinColumn(name = "seq_unitopico", nullable = false)
        public UniversidadeTopico getTopico() {
                return topico;
        }
        public void setTopico(UniversidadeTopico topico) {
                if (VerificadorUtil.naoEstaNulo(topico)) {
                        universidadeTopicoUsuarioId.setSequencialTopico(topico.getSequencial());
                }
                this.topico = topico;
        }
       
        @ManyToOne
        @ForeignKey(name="fk_unitopicousuario_usuario")
        @MapsId(value="sequencialUsuario")
        @JoinColumn(name = "seq_usuario", nullable=false)
        public Usuario getUsuario() {
                return usuario;
        }
        public void setUsuario(Usuario usuario) {
                if (VerificadorUtil.naoEstaNulo(usuario)) {
                        universidadeTopicoUsuarioId.setSequencialUsuario(usuario.getSequencial());
                }
                this.usuario = usuario;
        }
       
        @Column(name="dth_acesso")
        public Date getUltimoAcesso() {
                return ultimoAcesso;
        }
        public void setUltimoAcesso(Date ultimoAcesso) {
                this.ultimoAcesso = ultimoAcesso;
        }

        @Override
        public int hashCode() {
                final int prime = 31;
                int result = 1;
                result = prime * result + ((universidadeTopicoUsuarioId == null) ? 0 : universidadeTopicoUsuarioId.hashCode());
                return result;
        }

        @Override
        public boolean equals(Object obj) {
                if (this == obj)
                        return true;
                if (obj == null)
                        return false;
                if (getClass() != obj.getClass())
                        return false;
                UniversidadeTopicoUsuario other = (UniversidadeTopicoUsuario) obj;
                if (universidadeTopicoUsuarioId == null) {
                        if (other.universidadeTopicoUsuarioId != null)
                                return false;
                } else if (!universidadeTopicoUsuarioId.equals(other.universidadeTopicoUsuarioId))
                        return false;
                return true;
        }
       
}