package games.strategy.engine.data.changefactory; import games.strategy.engine.data.Change; import games.strategy.engine.data.GameData; import games.strategy.engine.data.properties.GameProperties; class SetPropertyChange extends Change { private static final long serialVersionUID = -1377597975513821508L; private final String m_property; private final Object m_value; private final Object m_oldValue; SetPropertyChange(final String property, final Object value, final GameProperties properties) { m_property = property; m_value = value; m_oldValue = properties.get(property); } private SetPropertyChange(final String property, final Object value, final Object oldValue) { m_property = property; m_value = value; m_oldValue = oldValue; } @Override public Change invert() { return new SetPropertyChange(m_property, m_oldValue, m_value); } @Override protected void perform(final GameData data) { data.getProperties().set(m_property, m_value); } }