/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.petah.spring.bai; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArraySet; import org.petah.spring.bai.delegate.AIDelegate; import org.petah.spring.bai.delegate.TeamDelegate; /** * * @author Petah */ public class TeamOvermind { private TeamDelegate teamDelegate; private ConcurrentHashMap<AIDelegate, CopyOnWriteArraySet<Strategy>> aiStrategys = new ConcurrentHashMap<AIDelegate, CopyOnWriteArraySet<Strategy>>(); public TeamOvermind(TeamDelegate teamDelegate) { this.teamDelegate = teamDelegate; } public int getStrategyAmount(Strategy strategy) { int count = 0; for (AIDelegate aiDelegate : aiStrategys.keySet()) { if (isAIStrategy(aiDelegate, strategy)) { count++; } } return count; } public void addAIDelegate(AIDelegate aiDelegate) { aiStrategys.put(aiDelegate, new CopyOnWriteArraySet<Strategy>()); } public boolean isAIStrategy(AIDelegate aiDelegate, Strategy strategy) { return aiStrategys.get(aiDelegate).contains(strategy); } public void addStrategy(AIDelegate aiDelegate, Strategy strategy) { aiStrategys.get(aiDelegate).add(strategy); } public void removeStrategy(AIDelegate aiDelegate, Strategy strategy) { aiStrategys.get(aiDelegate).remove(strategy); } }