/**
*
*/
package iamrescue.communication.scenario.scenarios;
import iamrescue.agent.ISimulationTimer;
import iamrescue.communication.IMessagingSchedule;
import iamrescue.communication.ISimulationCommunicationConfiguration;
import iamrescue.communication.messages.Message;
import iamrescue.communication.messages.MessageChannel;
import iamrescue.communication.scenario.ICommunicationScenario;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import javolution.util.FastMap;
import rescuecore2.standard.entities.StandardEntityURN;
import rescuecore2.worldmodel.EntityID;
/**
* @author Sebastian
*
*/
public class NoCommunicationScenario implements ICommunicationScenario {
private StandardEntityURN myType;
private final Map<MessageChannel, List<Message>> EMPTY_MAP = new FastMap<MessageChannel, List<Message>>();
private final List<MessageChannel> voiceChannels;
public NoCommunicationScenario(StandardEntityURN myType,
List<MessageChannel> voiceChannels) {
this.myType = myType;
this.voiceChannels = voiceChannels;
}
/*
* (non-Javadoc)
*
* @see
* iamrescue.communication.scenario.ICommunicationScenario#getChannelsToCenters
* ()
*/
@Override
public List<MessageChannel> getChannelsToOtherTeams() {
return new ArrayList<MessageChannel>();
}
/*
* (non-Javadoc)
*
* @see
* iamrescue.communication.scenario.ICommunicationScenario#getChannelsToPlatoons
* ()
*/
@Override
public List<MessageChannel> getChannelsToOwnTeam() {
return new ArrayList<MessageChannel>();
}
/*
* (non-Javadoc)
*
* @seeiamrescue.communication.scenario.ICommunicationScenario#
* getChannelsToSubscribeTo()
*/
@Override
public List<MessageChannel> getChannelsToSubscribeTo() {
return new ArrayList<MessageChannel>();
}
/*
* (non-Javadoc)
*
* @see iamrescue.communication.scenario.ICommunicationScenario#getMyRole()
*/
@Override
public StandardEntityURN getMyRole() {
return myType;
}
/*
* (non-Javadoc)
*
* @see
* iamrescue.communication.scenario.ICommunicationScenario#getScheduler()
*/
@Override
public IMessagingSchedule getScheduler() {
return new DefaultIAMCommunicationsScenario.MultiChannelScheduler(
voiceChannels);
}
/*
* (non-Javadoc)
*
* @see
* iamrescue.communication.scenario.ICommunicationScenario#distributeMessages
* (java.util.List, java.util.List, iamrescue.agent.ISimulationTimer)
*/
@Override
public Map<MessageChannel, List<Message>> distributeMessages(
List<Message> messagesToOwnTeam,
List<Message> messagesToOtherTeams, ISimulationTimer timer) {
return EMPTY_MAP;
}
@Override
public void reinitialiseTeam(Collection<EntityID> toIgnore) {
// TODO Auto-generated method stub
}
@Override
public boolean amICentre() {
// TODO Auto-generated method stub
return false;
}
@Override
public List<EntityID> getMyCentres() {
// TODO Auto-generated method stub
return new ArrayList<EntityID>();
}
}