package games.strategy.engine.data.changefactory;
import games.strategy.engine.data.Change;
import games.strategy.engine.data.GameData;
import games.strategy.engine.data.ProductionFrontier;
import games.strategy.engine.data.ProductionRule;
class RemoveProductionRule extends Change {
private static final long serialVersionUID = 2312599802275503095L;
private final ProductionRule m_rule;
private final ProductionFrontier m_frontier;
public RemoveProductionRule(final ProductionRule rule, final ProductionFrontier frontier) {
if (rule == null) {
throw new IllegalArgumentException("Null rule");
}
if (frontier == null) {
throw new IllegalArgumentException("Null frontier");
}
m_rule = rule;
m_frontier = frontier;
}
@Override
public void perform(final GameData data) {
m_frontier.removeRule(m_rule);
}
@Override
public Change invert() {
return new AddProductionRule(m_rule, m_frontier);
}
}