package es.uv.saic.domain; import java.io.Serializable; import jakarta.persistence.*; import java.util.List; import java.util.stream.Collectors; @Entity @Table(name="organs") @NamedQuery(name="Organ.findAll", query="SELECT o FROM Organ o") public class Organ implements Serializable { private static final long serialVersionUID = 1L; @EmbeddedId private OrganPK id; private Boolean actiu; @Column(name="nom_cas") private String nomCas; @Column(name="nom_val") private String nomVal; private Integer ruct; private String tambit; //bi-directional many-to-one association to Instancia @OneToMany(mappedBy="organ") private List instancias; //bi-directional many-to-one association to Organ @ManyToOne @JoinColumns({ @JoinColumn(name="lugar2", referencedColumnName="lugar"), @JoinColumn(name="tlugar2", referencedColumnName="tlugar") }) private Organ organ; //bi-directional many-to-one association to Organ @OneToMany(mappedBy="organ") private List organsFill; @OneToMany() @JoinColumns({ @JoinColumn(name="lugar", referencedColumnName="lugar"), @JoinColumn(name="tlugar", referencedColumnName="tlugar") }) private List organsEquivalents; //bi-directional many-to-one association to UsuarisRol @OneToMany(mappedBy="organ") private List usuarisRols; @OneToOne() @JoinColumns({ @JoinColumn(name="lugar", referencedColumnName="lugar"), @JoinColumn(name="tlugar", referencedColumnName="tlugar") }) private Acreditacio acreditacio; @Transient private String codis; public Organ() {} public OrganPK getId() { return this.id; } public void setId(OrganPK id) { this.id = id; } public Boolean getActiu() { return this.actiu; } public void setActiu(Boolean actiu) { this.actiu = actiu; } public String getNomCas() { return this.nomCas; } public void setNomCas(String nomCas) { this.nomCas = nomCas; } public String getNomVal() { return this.nomVal; } public void setNomVal(String nomVal) { this.nomVal = nomVal; } public Integer getRuct() { return this.ruct; } public void setRuct(Integer ruct) { this.ruct = ruct; } public String getTambit() { return this.tambit; } public void setTambit(String tambit) { this.tambit = tambit; } public Organ getOrgan() { return this.organ; } public void setOrgan(Organ organ) { this.organ = organ; } public List getOrgansFill() { return organsFill; } public Organ addOrganFill(Organ o) { this.getOrgansFill().add(o); return o; } public Organ removeOrganFill(Organ o) { this.getOrgansFill().remove(o); return o; } public void setOrgansFill(List organsFill) { this.organsFill = organsFill; } public List getInstancies() { return this.instancias; } public void setInstancies(List instancias) { this.instancias = instancias; } public Instancia addInstancia(Instancia instancia) { this.getInstancies().add(instancia); instancia.setOrgan(this); return instancia; } public Instancia removeInstancia(Instancia instancia) { this.getInstancies().remove(instancia); instancia.setOrgan(null); return instancia; } public List getUsuarisRols() { return this.usuarisRols; } public void setUsuarisRols(List usuarisRols) { this.usuarisRols = usuarisRols; } public UsuarisRol addUsuarisRol(UsuarisRol usuarisRol) { getUsuarisRols().add(usuarisRol); usuarisRol.setOrgan(this); return usuarisRol; } public UsuarisRol removeUsuarisRol(UsuarisRol usuarisRol) { getUsuarisRols().remove(usuarisRol); usuarisRol.setOrgan(null); return usuarisRol; } public Acreditacio getAcreditacio() { return acreditacio; } public void setAcreditacio(Acreditacio acreditacio) { this.acreditacio = acreditacio; } @Transient public String getCodis() { return codis; } @Transient public void setCodis() { this.codis = organsEquivalents.stream() .map(i->i.getLugarEq().toString()) .collect(Collectors.joining(", ")); if(this.codis.isEmpty()) { this.codis = this.getId().getLugar().toString(); } else { this.codis = this.getId().getLugar().toString() +", "+ this.codis; } } }