Files
VisualSapfor/src/MainModule_/MainModule_.java

60 lines
1.9 KiB
Java
Raw Normal View History

2024-10-12 00:17:51 +03:00
package MainModule_;
import Common.Current_;
import Common.Database.Objects.iDBObject;
2024-10-12 00:17:51 +03:00
import Common.Database.VisualiserDatabase;
import Common.Passes.Pass;
import Common.Passes.PassCode_;
import Common.Utils.TextLog;
2024-10-12 00:17:51 +03:00
import java.util.LinkedHashMap;
//Основной объект визуализатора.
public abstract class MainModule_<D extends VisualiserDatabase> {
D db;
Class<D> db_class;
LinkedHashMap<PassCode_, Pass> passes;
LinkedHashMap<Current_, Object> objects;
2024-10-12 00:17:51 +03:00
public D getDb() {
return db;
}
public MainModule_(Class<D> db_class_in) {
objects = new LinkedHashMap<>();
2024-10-12 00:17:51 +03:00
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);
}
2024-10-12 00:17:51 +03:00
}