package tasks; import internetz.Agent; import internetz.Task; import java.util.ArrayList; import java.util.Collection; import java.util.List; import strategies.Strategy.TaskChoice; /** * Central-assignment strategy additional methods * * @author Oskar Jarczyk * @version 1.4 */ public class CentralAssignment { /** * Returns list of agents which don't have any orders assigned * @param agents Input list of agents * @param bussy Input list of busy agents * @return list of agents which are available for work */ public static List<Agent> choseAgents(Collection<Agent> agents, Collection<Agent> bussy) { List<Agent> list = new ArrayList<Agent>(); for (Agent agent : agents) { if (agent.getStrategy().taskChoice .equals(TaskChoice.CENTRAL_ASSIGNMENT)) { if (!bussy.contains(agent)){ CentralAssignmentOrders cao = agent .getCentralAssignmentOrders(); if (cao == null) list.add(agent); } } } return list; } /** * Return orders from a central planer, or a null when no orders exists * @param agent * @return Central assignment planer chosen task */ public Task concludeMath(Agent agent) { Task chosen = null; CentralAssignmentOrders cao = agent.getCentralAssignmentOrders(); chosen = cao == null ? null : cao.getChosenTask(); return chosen; } }