package games.strategy.net;
import games.strategy.engine.message.ChannelMessenger;
import games.strategy.engine.message.IChannelMessenger;
import games.strategy.engine.message.IRemoteMessenger;
import games.strategy.engine.message.RemoteMessenger;
import games.strategy.engine.message.unifiedmessenger.UnifiedMessenger;
/**
* Convenience grouping of a messenger, remote messenger and channel messenger.
*/
public class Messengers {
private final IMessenger messenger;
private final IRemoteMessenger remoteMessenger;
private final IChannelMessenger channelMessenger;
public Messengers(final IMessenger messenger) {
this.messenger = messenger;
final UnifiedMessenger unifiedMessenger = new UnifiedMessenger(messenger);
channelMessenger = new ChannelMessenger(unifiedMessenger);
remoteMessenger = new RemoteMessenger(unifiedMessenger);
}
public Messengers(final IMessenger messenger, final IRemoteMessenger remoteMessenger,
final IChannelMessenger channelMessenger) {
this.messenger = messenger;
this.remoteMessenger = remoteMessenger;
this.channelMessenger = channelMessenger;
}
public IChannelMessenger getChannelMessenger() {
return channelMessenger;
}
public IMessenger getMessenger() {
return messenger;
}
public IRemoteMessenger getRemoteMessenger() {
return remoteMessenger;
}
@Override
public String toString() {
return messenger + "\n" + remoteMessenger + "\n" + channelMessenger;
}
}