package games.strategy.engine.data.changefactory;
import games.strategy.engine.data.Change;
import games.strategy.engine.data.GameData;
import games.strategy.engine.data.PlayerID;
class PlayerWhoAmIChange extends Change {
private static final long serialVersionUID = -1486914230174337300L;
private final String m_startWhoAmI;
private final String m_endWhoAmI;
private final String m_player;
PlayerWhoAmIChange(final String newWhoAmI, final PlayerID player) {
m_startWhoAmI = player.getWhoAmI();
m_endWhoAmI = newWhoAmI;
m_player = player.getName();
}
PlayerWhoAmIChange(final String startWhoAmI, final String endWhoAmI, final String player) {
m_startWhoAmI = startWhoAmI;
m_endWhoAmI = endWhoAmI;
m_player = player;
}
@Override
protected void perform(final GameData data) {
final PlayerID player = data.getPlayerList().getPlayerID(m_player);
player.setWhoAmI(m_endWhoAmI);
}
@Override
public Change invert() {
return new PlayerWhoAmIChange(m_endWhoAmI, m_startWhoAmI, m_player);
}
@Override
public String toString() {
return m_player + " changed from " + m_startWhoAmI + " to " + m_endWhoAmI;
}
}