package games.strategy.engine.data;
import games.strategy.util.IntegerMap;
public class RepairRule extends DefaultNamed {
private static final long serialVersionUID = -45646671022993959L;
private final IntegerMap<Resource> m_cost = new IntegerMap<>();
private final IntegerMap<NamedAttachable> m_results = new IntegerMap<>();
/** Creates new RepairRule. */
public RepairRule(final String name, final GameData data) {
super(name, data);
}
protected void addCost(final Resource resource, final int quantity) {
m_cost.put(resource, quantity);
}
/**
* Benefits must be a resource or a unit.
*/
protected void addResult(final NamedAttachable obj, final int quantity) {
if (!(obj instanceof UnitType) && !(obj instanceof Resource)) {
throw new IllegalArgumentException("results must be units or resources, not:" + obj.getClass().getName());
}
m_results.put(obj, quantity);
}
public IntegerMap<Resource> getCosts() {
return m_cost.copy();
}
public IntegerMap<NamedAttachable> getResults() {
return m_results;
}
@Override
public String toString() {
return "RepairRule:" + getName();
}
}