From 5131163cb600c330ae1ead18d3fa1a70d767fd49 Mon Sep 17 00:00:00 2001 From: Timm Fitschen <timm.fitschen@ds.mpg.de> Date: Tue, 11 Dec 2018 00:23:37 +0100 Subject: [PATCH] BUG: resolve names --- .../server/entity/container/TransactionContainer.java | 7 +++++++ .../java/caosdb/server/jobs/core/CheckDatatypePresent.java | 7 +++++-- .../java/caosdb/server/jobs/core/CheckNamePresent.java | 1 + 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/caosdb/server/entity/container/TransactionContainer.java b/src/main/java/caosdb/server/entity/container/TransactionContainer.java index 58cdb8d9..ff799a4d 100644 --- a/src/main/java/caosdb/server/entity/container/TransactionContainer.java +++ b/src/main/java/caosdb/server/entity/container/TransactionContainer.java @@ -158,6 +158,13 @@ public class TransactionContainer extends Container<Entity> implements ToElement return this.owner; } + /** + * Get the first entity from this container which has this name. + * + * <p>Return null if no matching is in this container. + * + * @param name + */ public EntityInterface getEntityByName(final String name) { for (final EntityInterface e : this) { if (e.hasName() && e.getName().equals(name)) { diff --git a/src/main/java/caosdb/server/jobs/core/CheckDatatypePresent.java b/src/main/java/caosdb/server/jobs/core/CheckDatatypePresent.java index 7948900d..69d36f42 100644 --- a/src/main/java/caosdb/server/jobs/core/CheckDatatypePresent.java +++ b/src/main/java/caosdb/server/jobs/core/CheckDatatypePresent.java @@ -48,10 +48,11 @@ public final class CheckDatatypePresent extends EntityJob { @Override public final void run() { try { - resolveId(getEntity()); // inherit datatype if (!getEntity().hasDatatype()) { + resolveId(getEntity()); + inheritDatatypeFromAbstractEntity(); // still no data type ??? try to get it from parent... @@ -199,7 +200,9 @@ public final class CheckDatatypePresent extends EntityJob { if (!entity.hasId() && entity.hasName()) { try { entity.setId(retrieveValidIDByName(entity.getName())); - entity.setEntityStatus(EntityStatus.VALID); + if (entity.getEntityStatus() != EntityStatus.UNQUALIFIED) { + entity.setEntityStatus(EntityStatus.VALID); + } } catch (final EntityDoesNotExistException exc) { entity.addError(ServerMessages.ENTITY_DOES_NOT_EXIST); } catch (final EntityWasNotUniqueException exc) { diff --git a/src/main/java/caosdb/server/jobs/core/CheckNamePresent.java b/src/main/java/caosdb/server/jobs/core/CheckNamePresent.java index 813c7dc8..d63a9cc5 100644 --- a/src/main/java/caosdb/server/jobs/core/CheckNamePresent.java +++ b/src/main/java/caosdb/server/jobs/core/CheckNamePresent.java @@ -42,6 +42,7 @@ public class CheckNamePresent extends EntityJob { break; case SHOULD: getEntity().addWarning(ServerMessages.ENTITY_HAS_NO_NAME); + break; default: break; } -- GitLab