/** * */ package iamrescue.agent.police.newstrategy; import java.util.ArrayList; import java.util.Collections; import java.util.List; import javolution.util.FastList; import rescuecore2.standard.entities.AmbulanceTeam; import rescuecore2.standard.entities.Building; import rescuecore2.standard.entities.Civilian; import rescuecore2.standard.entities.FireBrigade; import rescuecore2.standard.entities.Human; import rescuecore2.standard.entities.PoliceForce; /** * @author Sebastian * */ public class GoalContainer { private List<PoliceForce> blockedPolice; private List<FireBrigade> blockedFireBrigade; private List<AmbulanceTeam> blockedAmbulance; private List<Civilian> blockedCivilians; private List<Building> blockedUnsearchedBuildings; private List<Building> blockedBurningBuildings; public GoalContainer() { blockedPolice = new FastList<PoliceForce>(); blockedFireBrigade = new FastList<FireBrigade>(); blockedAmbulance = new FastList<AmbulanceTeam>(); blockedCivilians = new FastList<Civilian>(); blockedUnsearchedBuildings = new FastList<Building>(); blockedBurningBuildings = new FastList<Building>(); } /* * public void addAgent(Human human) { blockedAgents.add(human); } */ public void addCivilian(Civilian civilian) { blockedCivilians.add(civilian); } public void addBurningBuilding(Building building) { blockedBurningBuildings.add(building); } public void addUnsearchedBuilding(Building building) { blockedUnsearchedBuildings.add(building); } public void clear() { blockedAmbulance.clear(); blockedPolice.clear(); blockedFireBrigade.clear(); blockedBurningBuildings.clear(); blockedCivilians.clear(); blockedUnsearchedBuildings.clear(); } public List<AmbulanceTeam> getBlockedAmbulance() { return blockedAmbulance; } public List<FireBrigade> getBlockedFireBrigade() { return blockedFireBrigade; } public List<PoliceForce> getBlockedPolice() { return blockedPolice; } /** * @return the blockedBurningBuildings */ public List<Building> getBlockedBurningBuildings() { return Collections.unmodifiableList(blockedBurningBuildings); } /** * @return the blockedCivilians */ public List<Civilian> getBlockedCivilians() { return Collections.unmodifiableList(blockedCivilians); } /** * @return the blockedUnsearchedBuildings */ public List<Building> getBlockedUnsearchedBuildings() { return Collections.unmodifiableList(blockedUnsearchedBuildings); } public void addPoliceForce(PoliceForce agent) { blockedPolice.add(agent); } public void addAmbulanceTeam(AmbulanceTeam agent) { blockedAmbulance.add(agent); } public void addFireBrigade(FireBrigade agent) { blockedFireBrigade.add(agent); } public void addAgent(Human human) { if (human instanceof FireBrigade) { addFireBrigade((FireBrigade) human); } else if (human instanceof AmbulanceTeam) { addAmbulanceTeam((AmbulanceTeam) human); } else { addPoliceForce((PoliceForce) human); } } public List<Human> getBlockedAgents() { List<Human> list = new ArrayList<Human>(); list.addAll(blockedAmbulance); list.addAll(blockedPolice); list.addAll(blockedFireBrigade); return list; } }