Rev 966 | Rev 1139 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package org.tela_botanica.del.client.services;import java.util.ArrayList;import java.util.List;import java.util.Map;import java.util.Set;import org.tela_botanica.del.client.modeles.MoyenneVote;import org.tela_botanica.del.client.modeles.PropositionDetermination;import org.tela_botanica.del.client.modeles.VoteDetermination;import com.google.gwt.user.client.Window;public class CalculVoteDeterminationService {public static List<MoyenneVote> calculerVoteDeterminationPlusPopulaire(List<PropositionDetermination> propositions) {List<MoyenneVote> pairesVotes = new ArrayList<MoyenneVote>();for (PropositionDetermination proposition : propositions) {pairesVotes.add(calculerVoteDetermination(proposition));}java.util.Collections.sort(pairesVotes);return pairesVotes;}public static MoyenneVote calculerVoteDetermination(PropositionDetermination propositionDetermination) {Map<String,VoteDetermination> votes = propositionDetermination.getVotesDeterminations();int nbVotes = votes.size();double scoreVoteIdentifie = 0;double scoreVoteAnonyme = 0;double scoreVote = 0;if(votes.size() > 0) {Set<String> cles = votes.keySet();for (String cle : cles) {String idAuteur = cle;int valeurVote = votes.get(cle).getVote();if(estUnAuteurIdentifie(idAuteur)) {// un votant identifiant compte comme deux votants supplémentaires// il a donc un vote 3 fois supérieurscoreVoteIdentifie += 3*valeurVote;nbVotes += 2;} else {scoreVoteAnonyme += valeurVote;}}scoreVote = ((scoreVoteAnonyme + scoreVoteIdentifie)/(nbVotes))*100;} else {scoreVote = -1;}return new MoyenneVote((new Double(scoreVote)).intValue(), propositionDetermination);}private static boolean estUnAuteurIdentifie(String idAuteur) {boolean estIdentifie = true;try {int intIdAuteur = Integer.parseInt(idAuteur);} catch (NumberFormatException nfe) {estIdentifie = false;}return estIdentifie;}}