Files
VisualSapfor/src/MainModule_/MainModule_.java

60 lines
1.9 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 extends VisualiserDatabase> {
D db;
Class<D> db_class;
LinkedHashMap<PassCode_, Pass> passes;
LinkedHashMap<Current_, Object> objects;
public D getDb() {
return db;
}
public MainModule_(Class<D> 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);
}
}