From 22d6f232b15dfe348915f649b0a80a4238f5253f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Thu, 7 Jul 2022 00:21:30 +0200 Subject: [PATCH] qs --- .../java/org/caosdb/server/database/DatabaseUtils.java | 3 ++- .../backend/transaction/InsertEntityProperties.java | 10 +++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/caosdb/server/database/DatabaseUtils.java b/src/main/java/org/caosdb/server/database/DatabaseUtils.java index 4f6a58a4..b6dca5e8 100644 --- a/src/main/java/org/caosdb/server/database/DatabaseUtils.java +++ b/src/main/java/org/caosdb/server/database/DatabaseUtils.java @@ -101,11 +101,12 @@ public class DatabaseUtils { processSubPropertiesStage1(stage1Inserts, p); } + /* returns the count of domains in the stage1Inserts */ public static int deriveStage2Inserts( final List<EntityInterface> stage2Inserts, final List<EntityInterface> stage1Inserts) { int domainCount = 0; for (final EntityInterface p : stage1Inserts) { - if (p.hasRole() && p.getRole() == Role.Domain) { + if (p.hasRole() && p.getRole() == Role.Domain) { // should no role be allowed? Fail fast? domainCount++; } if (!p.hasReplacement() && p.hasProperties()) { diff --git a/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityProperties.java b/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityProperties.java index bd5bf63a..3896727e 100644 --- a/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityProperties.java +++ b/src/main/java/org/caosdb/server/database/backend/transaction/InsertEntityProperties.java @@ -56,7 +56,11 @@ public class InsertEntityProperties extends BackendTransaction { final ArrayList<EntityInterface> stage1Inserts = new ArrayList<EntityInterface>(); final ArrayList<EntityInterface> stage2Inserts = new ArrayList<EntityInterface>(); - +/* + * The insertion is split into two stages in order to allow (among other stuff) subproperties. + * In some cases a replacement is needed, then the original property will be in the stage1Inserts + * list and the replacement will be in stage2Inserts. + */ DatabaseUtils.deriveStage1Inserts(stage1Inserts, this.entity); final int domainCount = DatabaseUtils.deriveStage2Inserts(stage2Inserts, stage1Inserts); @@ -67,8 +71,8 @@ public class InsertEntityProperties extends BackendTransaction { insertStages(t, domainIds, stage2Inserts, this.entity.getId(), null); } - private void insertStages( - final InsertEntityPropertiesImpl t, + private void insertStages( // seems to insert a single stage only; bad naming? + final InsertEntityPropertiesImpl t, // TODO bad var name final Deque<Integer> domainIds, final List<EntityInterface> stage1Inserts, final Integer domain, -- GitLab