/** * Es el método que se encarga de realizar las votaciones. Va recorriendo las configuraciones de * preferencias de cada uno de los usuarios y va acumulando la suma del valor que especifica para * cada uno de los servicios. Devuelve los votos que recibe cada servicio en un array de Int2D, * siendo x el índice de la configuración del serivicio e y los votos recibidos. * * @param css * @return */ @Override protected ArrayList<MutableInt2D> votingConfigurations(SharedService css) { String configurations[] = css.getConfigurations(); ArrayList<MutableInt2D> votes = new ArrayList<MutableInt2D>(); ArrayList<MutableInt2D> ordered = new ArrayList<MutableInt2D>(); for (int i = 0; i < configurations.length; i++) { votes.add(new MutableInt2D(i, 0)); } /* Se cogen los votos de cada usuario y se suman en las votaciones globales */ for (UserInterface ui : css.getUsers()) { ordered = ui.getNegotiation().getOrderedPreferences(css); for (int i = 0; i < configurations.length; i++) { ArrayList<MutableInt2D> userVotes = getUserVotes(ui); votes.get(ordered.get(i).x).y += userVotes.get(ordered.get(i).x).y; } log.finest("[getUserVotes] Votes for " + ui.getName() + ":" + getUserVotesToString(ui)); } return votes; }