package net.sf.bloodball.fit;

import java.awt.Point;
import java.util.List;

import fit.RowFixture;

import net.sf.bloodball.fit.system.TestSystem;
import net.sf.bloodball.model.player.IPlayer;

public class PlayersOnField extends RowFixture {

  public static class PlayerOnField {
    public String team;
    public int number;
    public int x;
    public int y;
  }

  public Object[] query() throws Exception {
    List players = TestSystem.getPlayersOnField();
    Object[] playerObjects = new PlayerOnField[players.size()];
    for (int index = 0; index < playerObjects.length; index++) {
      IPlayer player = (IPlayer) players.get(index);
      playerObjects[index] = createPlayerOnField(player);
    }
    return playerObjects;
  }

  private PlayerOnField createPlayerOnField(IPlayer player) {
    PlayersOnField.PlayerOnField playerOnField = new PlayersOnField.PlayerOnField();
    playerOnField.team = player.getTeam().getTeam().getName();
    playerOnField.number = player.getTeam().getPlayerNumber(player);
    Point position = TestSystem.getPlayerPosition(player);
    playerOnField.x = position.x;
    playerOnField.y = position.y;
    return playerOnField;
  }

  public Class getTargetClass() {
    return PlayerOnField.class;
  }

}