I store my votes within a HashSet
, however I'd like to do a vote count on a Class Result. How do I retrieve these votes and group by quantity?
import java.util.Collection;
import java.util.HashSet;
public class Votacao {
private Long id;
private final static Collection<Voto> VOTOS = new HashSet<>();
public Votacao(Voto voto) {
if(VOTOS.contains(voto)){
System.err.println("Membro já votou!");
}else{
computaVoto(voto);
}
}
public static Collection<Voto> getVotos() {
return VOTOS;
}
private void computaVoto(Voto voto){
VOTOS.add(voto);
}
@Override
public String toString() {
return VOTOS.toString();
}
public Long getId() {
return id;
}
public static Collection<Voto> getVOTOS() {
return VOTOS;
}
}
import javax.persistence.*;
import java.util.Objects;
@Entity(name = "votos")
public class Voto {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@OneToOne
private Membro votante;
@OneToOne
private Encaminhamento voto;
public Voto(Membro membro, Encaminhamento encaminhamento) {
this.setVotante(membro);
this.setVoto(encaminhamento);
}
public Long getId() {
return id;
}
public Membro getVotante() {
return votante;
}
private void setVotante(Membro membro) {
if(membro == null || membro.getNome() == null) {
throw new IllegalArgumentException();
} else {
this.votante = membro;
}
}
public Encaminhamento getVoto() {
return voto;
}
private void setVoto(Encaminhamento voto) {
if(voto == null){
throw new IllegalArgumentException();
} else {
this.voto = voto;
}
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Voto voto = (Voto) o;
return Objects.equals(id, voto.id) &&
Objects.equals(votante, voto.votante);
}
@Override
public int hashCode() {
return Objects.hash(id, votante, voto);
}
@Override
public String toString() {
return getVotante().getId()+" "+ getVotante().getNome() + " " + getVoto().getId() + " " + getVoto().getDescricao();
}
}