package games.strategy.engine.history;
import games.strategy.engine.framework.IGame;
import games.strategy.engine.framework.IGameModifiedChannel;
import games.strategy.engine.message.IChannelMessenger;
/**
* Has a subset of the historyWriters functionality.
* Delegates should only have access to these functions.
* The rest of the history writers functions should only
* be used by the GameData
*/
public class DelegateHistoryWriter implements IDelegateHistoryWriter {
private final IGameModifiedChannel m_channel;
public DelegateHistoryWriter(final IChannelMessenger messenger) {
m_channel = (IGameModifiedChannel) messenger.getChannelBroadcastor(IGame.GAME_MODIFICATION_CHANNEL);
}
public DelegateHistoryWriter(final IGameModifiedChannel channel) {
m_channel = channel;
}
private IGameModifiedChannel getGameModifiedChannel() {
return m_channel;
}
@Override
public void startEvent(final String eventName, final Object renderingData) {
getGameModifiedChannel().startHistoryEvent(eventName, renderingData);
}
@Override
public void startEvent(final String eventName) {
getGameModifiedChannel().startHistoryEvent(eventName);
}
@Override
public void addChildToEvent(final String child) {
addChildToEvent(child, null);
}
@Override
public void addChildToEvent(final String child, final Object renderingData) {
getGameModifiedChannel().addChildToEvent(child, renderingData);
}
}