/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.petah.spring.bai.factory;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.petah.common.util.profiler.Profiler;
import org.petah.spring.bai.delegate.AIDelegate;
import org.petah.spring.bai.delegate.TeamDelegate;
import org.petah.spring.bai.gui.GUIManager;
/**
*
* @author davnei06
*/
public class TeamDelegateFactory {
private static final Map<Integer, TeamDelegate> teamDelegates = new ConcurrentHashMap<Integer, TeamDelegate>();
public static TeamDelegate getTeamDelegate(AIDelegate aiDelegate) {
Profiler.start(TeamDelegateFactory.class, "getTeamDelegate()");
TeamDelegate teamDelegate;
int allianceID = aiDelegate.getAllianceID();
if (teamDelegates.containsKey(allianceID)) {
teamDelegate = teamDelegates.get(allianceID);
teamDelegate.addAIDelegate(aiDelegate);
} else {
teamDelegate = new TeamDelegate(aiDelegate);
teamDelegates.put(allianceID, teamDelegate);
GUIManager.addTeamDelegate(teamDelegate);
}
// FIXME: Group manager assignments
// if (teamManager.ais.size() % 2 == 0) {
// bai.setGroupManager(new PorcGroupManager(bai));
// } else {
// bai.setGroupManager(new DefaultGroupManager(bai));
// }
Profiler.stop(TeamDelegateFactory.class, "getTeamDelegate()");
return teamDelegate;
}
}