package br.gov.mj.sislegis.app.model; import java.util.HashSet; import java.util.Set; 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.JoinTable; import javax.persistence.ManyToMany; import javax.xml.bind.annotation.XmlRootElement; import br.gov.mj.sislegis.app.model.pautacomissao.AgendaComissao; import com.fasterxml.jackson.annotation.JsonIgnore; @Entity @XmlRootElement public class Usuario extends AbstractEntity { private static final long serialVersionUID = -8092650497855683601L; public Usuario() { } @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id", updatable = false, nullable = false) private Long id; @Column private String nome; @ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "Usuario_ProposicaoSeguida") private Set<Proposicao> proposicoesSeguidas = new HashSet<Proposicao>(); @ManyToMany(fetch = FetchType.LAZY) @JoinTable(name = "Usuario_Agendas") private Set<AgendaComissao> agendasSeguidas = new HashSet<AgendaComissao>(); @JsonIgnore public Set<Proposicao> getProposicoesSeguidas() { if (proposicoesSeguidas == null) { return new HashSet<Proposicao>(); } else { return proposicoesSeguidas; } } @JsonIgnore public Set<AgendaComissao> getAgendasSeguidas() { if (agendasSeguidas == null) { return new HashSet<AgendaComissao>(); } else { return agendasSeguidas; } } public void addAgendaSeguida(AgendaComissao ag) { agendasSeguidas.add(ag); } public void removeAgendaSeguida(AgendaComissao ag) { agendasSeguidas.remove(ag); } @Column(unique = true) private String email; public Long getId() { return this.id; } public void setId(final Long id) { this.id = id; } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { String result = getClass().getSimpleName() + " " + getId() + ":"; if (nome != null && !nome.trim().isEmpty()) result += "nome: " + nome; if (email != null && !email.trim().isEmpty()) result += ", email: " + email; return result; } }