Get maker reagent from PG db, rework processor (no statics)

This commit is contained in:
P0nk
2023-03-02 08:18:03 +01:00
parent 5cecb7adb6
commit c0c0a2d2d9
11 changed files with 155 additions and 80 deletions

View File

@@ -0,0 +1,28 @@
package database.maker;
import java.util.Map;
import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
public class MakerInfoProvider {
private final MakerDao makerDao;
private final Map<Integer, MakerReagent> reagents = new ConcurrentHashMap<>();
public MakerInfoProvider(MakerDao makerDao) {
this.makerDao = makerDao;
}
public Optional<MakerReagent> getMakerReagent(int itemId) {
final MakerReagent cachedReagent = reagents.get(itemId);
if (cachedReagent != null) {
return Optional.of(cachedReagent);
}
final Optional<MakerReagent> reagentFromDb = makerDao.getReagent(itemId);
if (reagentFromDb.isEmpty()) {
return Optional.empty();
}
reagents.put(itemId, reagentFromDb.get());
return reagentFromDb;
}
}