package games.strategy.engine.history;
public class Event extends IndexedHistoryNode implements Renderable {
private static final long serialVersionUID = -8382102990360177484L;
private final String m_description;
// additional data used for rendering this event
private Object m_renderingData;
public String getDescription() {
return m_description;
}
Event(final String description, final int changeStartIndex) {
super(description, changeStartIndex);
m_description = description;
}
@Override
public Object getRenderingData() {
return m_renderingData;
}
public void setRenderingData(final Object data) {
m_renderingData = data;
}
@Override
public SerializationWriter getWriter() {
return new EventHistorySerializer(m_description, m_renderingData);
}
}
class EventHistorySerializer implements SerializationWriter {
private static final long serialVersionUID = 6404070330823708974L;
private final String m_eventName;
private final Object m_renderingData;
public EventHistorySerializer(final String eventName, final Object renderingData) {
m_eventName = eventName;
m_renderingData = renderingData;
}
@Override
public void write(final HistoryWriter writer) {
writer.startEvent(m_eventName);
if (m_renderingData != null) {
writer.setRenderingData(m_renderingData);
}
}
}