From 221ef924da91e6d59068175dc5aa77a34746c0e3 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Thu, 1 Sep 2022 17:32:56 +0200
Subject: [PATCH] WIP: entity-id

---
 .../backend/implementation/MySQL/MySQLGetIDByName.java   | 4 ++--
 .../backend/interfaces/RetrieveEntityACLImpl.java        | 2 +-
 src/main/java/org/caosdb/server/entity/EntityID.java     | 9 +++++++++
 src/main/java/org/caosdb/server/entity/MagicTypes.java   | 8 +-------
 4 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetIDByName.java b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetIDByName.java
index 71062816..c2e28cd3 100644
--- a/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetIDByName.java
+++ b/src/main/java/org/caosdb/server/database/backend/implementation/MySQL/MySQLGetIDByName.java
@@ -24,7 +24,7 @@ package org.caosdb.server.database.backend.implementation.MySQL;
 
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
-import java.util.ArrayList;
+import java.util.LinkedList;
 import java.util.List;
 import org.caosdb.server.database.access.Access;
 import org.caosdb.server.database.backend.interfaces.GetIDByNameImpl;
@@ -67,7 +67,7 @@ public class MySQLGetIDByName extends MySQLTransaction implements GetIDByNameImp
         stmt.setString(2, role);
       }
       try (ResultSet rs = stmt.executeQuery()) {
-        final ArrayList<EntityID> ret = new ArrayList<>();
+        final List<EntityID> ret = new LinkedList<>();
         while (rs.next()) {
           ret.add(new EntityID(rs.getInt("id")));
         }
diff --git a/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java
index 43266922..230d4d34 100644
--- a/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java
+++ b/src/main/java/org/caosdb/server/database/backend/interfaces/RetrieveEntityACLImpl.java
@@ -25,5 +25,5 @@ import org.caosdb.server.database.proto.VerySparseEntity;
 
 public interface RetrieveEntityACLImpl extends BackendTransactionImpl {
 
-  public VerySparseEntity execute(Integer string);
+  public VerySparseEntity execute(Integer id);
 }
diff --git a/src/main/java/org/caosdb/server/entity/EntityID.java b/src/main/java/org/caosdb/server/entity/EntityID.java
index 3ad769b8..6a2d2ca3 100644
--- a/src/main/java/org/caosdb/server/entity/EntityID.java
+++ b/src/main/java/org/caosdb/server/entity/EntityID.java
@@ -3,6 +3,15 @@ package org.caosdb.server.entity;
 import java.io.Serializable;
 import java.util.Objects;
 
+/**
+ * EntityID
+ *
+ * <p>This class is an abstraction layer for the entity id.
+ *
+ * <p>It also allows to link entities together, e.g. an Entity's Property with the corresponding
+ * abstract Property, even when the abstract Property does not have a valid ID yet (during bulk
+ * inserts).
+ */
 public class EntityID implements Serializable {
 
   private static final long serialVersionUID = -9092133023135548179L;
diff --git a/src/main/java/org/caosdb/server/entity/MagicTypes.java b/src/main/java/org/caosdb/server/entity/MagicTypes.java
index 289fae6e..39556385 100644
--- a/src/main/java/org/caosdb/server/entity/MagicTypes.java
+++ b/src/main/java/org/caosdb/server/entity/MagicTypes.java
@@ -31,13 +31,11 @@ import org.caosdb.server.transaction.Retrieve;
 public enum MagicTypes {
   UNIT,
   NAME,
-  DESCRIPTION,
-  ROOT_DIRECTORY;
+  DESCRIPTION;
 
   private static final EntityID UNIT_ID = new EntityID(21);
   private static final EntityID DESCRIPTION_ID = new EntityID(24);
   private static final EntityID NAME_ID = new EntityID(20);
-  private static final EntityID ROOT_DIRECTORY_ID = new EntityID(51);
 
   public EntityID getId() {
     switch (this) {
@@ -47,8 +45,6 @@ public enum MagicTypes {
         return NAME_ID;
       case DESCRIPTION:
         return DESCRIPTION_ID;
-      case ROOT_DIRECTORY:
-        return ROOT_DIRECTORY_ID;
       default:
         return null;
     }
@@ -62,8 +58,6 @@ public enum MagicTypes {
         return NAME;
       case 24:
         return DESCRIPTION;
-      case 51:
-        return ROOT_DIRECTORY;
       default:
         return null;
     }
-- 
GitLab