прмежуточный. в процесе рефакторина лишних джсон. частично в разобранном виде поэтому не сливать!

This commit is contained in:
2025-03-21 23:02:53 +03:00
parent 74146fae4c
commit 10c213feae
14 changed files with 224 additions and 209 deletions

View File

@@ -11,6 +11,7 @@ import org.apache.commons.io.FileUtils;
import java.io.File;
import java.util.LinkedHashMap;
import java.util.Locale;
import java.util.Vector;
//самый общий интерфейс базы данных, независимо от реализации.
public abstract class Database {
@@ -224,6 +225,20 @@ public abstract class Database {
public <O extends DBObject, F extends iDBObject> LinkedHashMap<Integer, F> getMapByFKi(O owner, Class<F> fk_class) {
return getMapByFK(owner, fk_class, java.lang.Integer.class);
}
public <O extends iDBObject, F extends iDBObject> Vector<Integer> getFKi(
Integer owner_pk, Class<O> owner_class, Class<F> fk_class) {
String fk_name = owner_class.getSimpleName().toLowerCase()+"_id";
Vector<Integer> res = new Vector<>();
try {
for (Object o : tables.get(fk_class).Data.values()) {
F f = (F) o;
if (fk_class.getField(fk_name).get(f).equals(owner_pk)) res.add((Integer) f.getPK());
}
} catch (Exception e) {
Utils_.MainLog.PrintException(e);
}
return res;
}
//-
public <O extends DBObject, F extends DBObject> Vector<String> getVectorStringByFK(O owner, Class<F> fk_class) {
Vector<String> res = new Vector<>();