From 4bcc2870421fb328cdfe7db28aaa0583379fb257 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <t.fitschen@indiscale.com> Date: Tue, 10 Oct 2023 11:12:41 +0200 Subject: [PATCH] WIP: String IDs --- src/main/java/org/caosdb/server/entity/Entity.java | 2 +- src/main/java/org/caosdb/server/entity/EntityInterface.java | 4 ++++ src/main/java/org/caosdb/server/jobs/LazyEntityResolver.java | 2 ++ .../java/org/caosdb/server/jobs/core/GenerateEntityId.java | 2 +- src/main/java/org/caosdb/server/query/Query.java | 2 +- 5 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/caosdb/server/entity/Entity.java b/src/main/java/org/caosdb/server/entity/Entity.java index 16dbbdd5..b27eaa28 100644 --- a/src/main/java/org/caosdb/server/entity/Entity.java +++ b/src/main/java/org/caosdb/server/entity/Entity.java @@ -654,7 +654,7 @@ public abstract class Entity extends AbstractObservable implements EntityInterfa // Parse ID. Generate error if it isn't an integer. if (element.getAttribute("id") != null && !element.getAttributeValue("id").equals("")) { - this.getId().setId(element.getAttributeValue("id")); + this.setId(element.getAttributeValue("id")); } // Parse NAME. diff --git a/src/main/java/org/caosdb/server/entity/EntityInterface.java b/src/main/java/org/caosdb/server/entity/EntityInterface.java index ba77b5c4..4a74920e 100644 --- a/src/main/java/org/caosdb/server/entity/EntityInterface.java +++ b/src/main/java/org/caosdb/server/entity/EntityInterface.java @@ -194,4 +194,8 @@ public interface EntityInterface public abstract boolean isReferenceList(); public abstract SerializeFieldStrategy getSerializeFieldStrategy(); + + public default void setId(String id) { + getId().setId(id); + } } diff --git a/src/main/java/org/caosdb/server/jobs/LazyEntityResolver.java b/src/main/java/org/caosdb/server/jobs/LazyEntityResolver.java index a85b0ca0..9932962a 100644 --- a/src/main/java/org/caosdb/server/jobs/LazyEntityResolver.java +++ b/src/main/java/org/caosdb/server/jobs/LazyEntityResolver.java @@ -71,6 +71,8 @@ public class LazyEntityResolver extends EntityWrapper { public void resolveAll() { resolveParents(); resolveProperties(); + // release the transaction for the garbage collector + this.transaction = null; } @Override diff --git a/src/main/java/org/caosdb/server/jobs/core/GenerateEntityId.java b/src/main/java/org/caosdb/server/jobs/core/GenerateEntityId.java index 4bb23ab4..e3b21d9b 100644 --- a/src/main/java/org/caosdb/server/jobs/core/GenerateEntityId.java +++ b/src/main/java/org/caosdb/server/jobs/core/GenerateEntityId.java @@ -44,7 +44,7 @@ public class GenerateEntityId extends EntityJob { && getTransaction() instanceof WriteTransactionInterface && entity.getEntityStatus() == EntityStatus.QUALIFIED) { String id = ((WriteTransactionInterface) getTransaction()).generateId(); - entity.getId().setId(id); + entity.setId(id); } } } diff --git a/src/main/java/org/caosdb/server/query/Query.java b/src/main/java/org/caosdb/server/query/Query.java index 038e4d18..0574cd1e 100644 --- a/src/main/java/org/caosdb/server/query/Query.java +++ b/src/main/java/org/caosdb/server/query/Query.java @@ -258,7 +258,7 @@ public class Query implements QueryInterface, ToElementable, TransactionInterfac public boolean isInternal() { try { - return Integer.parseInt(id) < 101; + return Integer.parseInt(id) < 100; } catch (NumberFormatException e) { return false; } -- GitLab