package games.strategy.engine.history; import games.strategy.engine.data.PlayerID; public class Step extends IndexedHistoryNode { private static final long serialVersionUID = 1015799886178275645L; private final PlayerID m_player; private final String m_stepName; private final String m_delegateName; /** Creates a new instance of Step. */ Step(final String stepName, final String delegateName, final PlayerID player, final int changeStartIndex, final String displayName) { super(displayName, changeStartIndex); m_stepName = stepName; m_delegateName = delegateName; m_player = player; } public PlayerID getPlayerID() { return m_player; } @Override public SerializationWriter getWriter() { return new StepHistorySerializer(m_stepName, m_delegateName, m_player, super.getTitle()); } public String getDelegateName() { return m_delegateName; } public String getStepName() { return m_stepName; } } class StepHistorySerializer implements SerializationWriter { private static final long serialVersionUID = 3546486775516371557L; private final String m_stepName; private final String m_delegateName; private final PlayerID m_playerID; private final String m_displayName; public StepHistorySerializer(final String stepName, final String delegateName, final PlayerID playerID, final String displayName) { m_stepName = stepName; m_delegateName = delegateName; m_playerID = playerID; m_displayName = displayName; } @Override public void write(final HistoryWriter writer) { writer.startNextStep(m_stepName, m_delegateName, m_playerID, m_displayName); } }