コード例 #1
0
  /**
   * 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;
  }