package com.smtaiserver.smtaiserver.javaai.ast; import java.util.HashMap; import java.util.Map; import com.smtaiserver.smtaiserver.core.SMTAIServerApp; import com.smtaiserver.smtaiserver.database.SMTDatabase; import com.smtservlet.util.SMTStatic; public class ASTDBMap implements AutoCloseable { private Map _mapId2Database = new HashMap<>(); public SMTDatabase getDatabase(String id) throws Exception { if(SMTStatic.isNullOrEmpty(id)) id = "____SYSTEM____"; SMTDatabase db = _mapId2Database.get(id); if(db == null) { if("____SYSTEM____".equals(id)) db = SMTAIServerApp.getApp().allocDatabase(); else db = SMTAIServerApp.getApp().getDataSource(id).allocDatabase(); _mapId2Database.put(id, db); } return db; } public void close() { for(SMTDatabase db : _mapId2Database.values()) { db.close(); } _mapId2Database.clear(); } }