Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.com.clinimuni.vaccinaeweb.domain;
- import java.util.HashSet;
- import java.util.Objects;
- import java.util.Set;
- import javax.persistence.ElementCollection;
- import javax.persistence.EmbeddedId;
- import javax.persistence.Entity;
- import javax.persistence.FetchType;
- import javax.persistence.ManyToOne;
- import javax.persistence.MapsId;
- import javax.persistence.Table;
- /**
- * @author ivocalado
- *
- * Esta classe tem por objetivo representar o relacionamento
- * Many-To-Many entre uma vacina e o calendario vacinal incluindo a
- * lista de doses a serem tomadas para a vacina
- */
- @Entity(name = "VacinaCalendarioVacinal")
- @Table(name = "vacina_calendario_vacinal")
- public class VacinaCalendarioVacinal {
- @EmbeddedId
- private VacinaCalendarioVacinalId id;
- @ManyToOne(fetch = FetchType.LAZY)
- @MapsId("vacinaId")
- private Vacina vacina;
- @ManyToOne(fetch = FetchType.LAZY)
- @MapsId("vacinaCalendarioId")
- private CalendarioVacinal calendario;
- @ElementCollection
- private Set<Integer> dosesAplicacao = new HashSet<>(); // doses a serem aplicadas em meses
- private VacinaCalendarioVacinal() {
- }
- /**
- * @param vacina
- * @param calendario
- */
- public VacinaCalendarioVacinal(Vacina vacina, CalendarioVacinal calendario) {
- this();
- this.vacina = vacina;
- this.calendario = calendario;
- this.id = new VacinaCalendarioVacinalId(vacina.getId(), calendario.getId());
- }
- public void addDose(Integer dose) {
- dosesAplicacao.add(dose);
- }
- public boolean removeDose(Integer dose) {
- return dosesAplicacao.remove(dose);
- }
- /**
- * @return the id
- */
- public VacinaCalendarioVacinalId getId() {
- return id;
- }
- /**
- * @param id the id to set
- */
- public void setId(VacinaCalendarioVacinalId id) {
- this.id = id;
- }
- /**
- * @return the vacina
- */
- public Vacina getVacina() {
- return vacina;
- }
- /**
- * @param vacina the vacina to set
- */
- public void setVacina(Vacina vacina) {
- this.vacina = vacina;
- }
- /**
- * @return the calendario
- */
- public CalendarioVacinal getCalendario() {
- return calendario;
- }
- /**
- * @param calendario the calendario to set
- */
- public void setCalendario(CalendarioVacinal calendario) {
- this.calendario = calendario;
- }
- /**
- * @return the dosesAplicacao
- */
- public Set<Integer> getDosesAplicacao() {
- return dosesAplicacao;
- }
- /**
- * @param dosesAplicacao the dosesAplicacao to set
- */
- public void setDosesAplicacao(Set<Integer> dosesAplicacao) {
- this.dosesAplicacao = dosesAplicacao;
- }
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#hashCode()
- */
- @Override
- public int hashCode() {
- return Objects.hash(calendario, vacina);
- }
- /*
- * (non-Javadoc)
- *
- * @see java.lang.Object#equals(java.lang.Object)
- */
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null) {
- return false;
- }
- if (!(obj instanceof VacinaCalendarioVacinal)) {
- return false;
- }
- VacinaCalendarioVacinal other = (VacinaCalendarioVacinal) obj;
- return Objects.equals(calendario, other.calendario) && Objects.equals(vacina, other.vacina);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement