package bwapi;
class Cache {
private int frame = -1;
private T obj;
void set(T obj, int frame) {
this.frame = frame;
this.obj = obj;
}
boolean valid(int currentFrame) {
return frame == currentFrame;
}
T get() {
return obj;
}
}
class IntegerCache extends Cache {
void setOrAdd(int obj, int frame) {
if (valid(frame)) {
set(get() + obj, frame);
}
else {
set(obj, frame);
}
}
}
class BooleanCache extends Cache{}
class OrderCache extends Cache{}
class UnitTypeCache extends Cache{}
class UpgradeTypeCache extends Cache{}
class TechTypeCache extends Cache{}