package MainModule_; import Common.Current_; import Common.Database.Objects.iDBObject; import Common.Database.VisualiserDatabase; import Common.Passes.Pass; import Common.Passes.PassCode_; import Common.Utils.TextLog; import java.util.LinkedHashMap; //Основной объект визуализатора. public abstract class MainModule_ { D db; Class db_class; LinkedHashMap passes; LinkedHashMap objects; public D getDb() { return db; } public MainModule_(Class db_class_in) { objects = new LinkedHashMap<>(); try { db_class = db_class_in; } catch (Exception ex) { ex.printStackTrace(); } } public void ActivateDB() throws Exception { db = db_class.newInstance(); db.Connect(); db.CreateAllTables(); db.prepareTablesStatements(); db.Synchronize(); } public void DeactivateDB() throws Exception{ if (db != null) db.Disconnect(); } //-- public Object get(Current_ name) { if (!objects.containsKey(name)) objects.put(name,null); return objects.get(name); } public Object set(Current_ name, Object object) { if (objects.containsKey(name)) objects.replace(name, object); else objects.put(name, object); return object; } public boolean Check(TextLog Log, Current_... names) { for (Current_ name : names) if (get(name) == null) Log.Writeln_(name.getDescription() + " не выбран(а)"); return Log.isEmpty(); } //применять только для наследников iDBObject public boolean matchCurrentID(Current_ name, int id) { return (get(name) != null) && (((iDBObject) get(name)).id == id); } }