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