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